Untitled

From Baby Elephant, 2 Weeks ago, written in Plain Text, viewed 4 times. This paste will hop the perch in 1 Week.
URL https://paste.afonso.co/view/241586ec Embed
Download Paste or View Raw
  1. import clr
  2. clr.AddReference("Wtvision.Sports.Tools.UefaDigitalAPIImporter")
  3. from Wtvision.Sports import UefaDigitalApiProxy
  4. clr.AddReference("Wtvision.Sports.Models")
  5. from Wtvision.Sports.Models import ModelsTools
  6. from System.Threading.Tasks import Task
  7. from System import Array, DateTime
  8. from System.IO import Path, File
  9. import helper
  10. import smartpaging
  11.  
  12. def __onStart(graphicOnAirItem, momentExecution, workFlowtype):
  13.         extradata = graphicOnAirItem.ExtraData
  14.  
  15.         if not extradata.ContainsKey("ExternalTake"):
  16.                 helper.SetExtraData(extradata, "ExternalTake", "True")
  17.  
  18. def __getData(graphicOnAirItem, viewBag, momentExecution):
  19.  
  20.         extradata = graphicOnAirItem.ExtraData
  21.         competitionId = Game.Competition.IdCompetition
  22.         logosPath = Path.Combine(graphicOnAirItem.GraphicsEngine.Options.RootPath, graphicOnAirItem.Scene.Path, "Images", "Badges")
  23.         teamId = Game.AwayTeam.ExternalId
  24.         seasonYear = Game.Competition.Season.ToString()
  25.         stagesToShow = ["LEAGUE PHASE"]
  26.         if extradata["ExternalTake"] == "True":
  27.                 matches = UefaDigitalApiProxy.GetMatches(offset= "0",limit = "500",competitionId = Array[str]([Game.Competition.IdCompetition]),teamId = teamId, seasonYear = seasonYear )
  28.                 #Teams = UefaDigitalApiProxy.GetTeams(None, None, Game.Competition.IdCompetition, Game.Competition.Season, None, None, "0", "500")
  29.                 filtered_matches = filter(lambda match: match.Round.Translations.ShortName["EN"].ToString().upper() in stagesToShow, matches)
  30.                 sorted_matches = sorted(filtered_matches, key=lambda match: match.KickOffTime.Date)
  31.                
  32.                 helper.SetExtraData(extradata, "total", len(sorted_matches))
  33.                 helper.SetExtraData(extradata, "index", 0)
  34.                 helper.SetExtraData(extradata, "pageIndex", 0)
  35.                 helper.SetExtraData(extradata, "pages", (smartpaging.NonUniformPaging(len(sorted_matches), 4)))
  36.                 helper.SetExtraData(extradata, "summary", (sorted_matches))
  37.                
  38.         index = extradata["index"]
  39.         pageIndex = extradata["pageIndex"]
  40.         pages = extradata["pages"]
  41.         summary = extradata["summary"]
  42.         pageEnd = pages[pageIndex]
  43.         summary = summary[index:(index + int(pageEnd))]
  44.        
  45.        
  46.         ## TITULO QUE TEM A POSSIÇÃO DA EQUIPA NO LEAGUE PHASE
  47.         uefaGroups = UefaDigitalApiProxy.GetStandings(Game.Competition.IdCompetition, Game.Competition.Season)
  48.         hometeamId = Game.HomeTeam.ExternalId
  49.         awayteamId = Game.AwayTeam.ExternalId
  50.         for uefaGroup in uefaGroups:   
  51.                 awayTeam = filter(lambda x : x.Team.Id.ToString() == awayteamId.ToString(), uefaGroup.Items)
  52.                 homeTeam = filter(lambda x : x.Team.Id.ToString() == hometeamId.ToString(), uefaGroup.Items)
  53.                 if awayTeam and homeTeam:
  54.                         group = uefaGroup
  55.        
  56.         if not group:
  57.                         momentExecution.Message = "THERE IS NO GROUPS!!"
  58.                         momentExecution.Cancel = True
  59.                         return
  60.         atLeastOneGame = False 
  61.        
  62.         matchDay =  Game.Attributes["MatchDayLongName"]
  63.         matchDay = matchDay.split(" ")
  64.         matchDayNumber = matchDay[1]
  65.         leaguePhaseMaxGames = 8
  66.  
  67.         for f in group.Items:
  68.                 if f.Team.InternationalName.upper() == Game.AwayTeam.ShortName.upper():
  69.                        
  70.                         if int(matchDayNumber) > leaguePhaseMaxGames:
  71.                                 positionStatus = "FINAL"
  72.                         else:
  73.                                 positionStatus = "CURRENT"
  74.                        
  75.                         if f.Rank == 1 or f.Rank == 21 or f.Rank == 31:
  76.                                 viewBag.SetTranslatedText("tTitle", "%s POSITION %sST" % (positionStatus, f.Rank))             
  77.                         elif f.Rank == 2 or f.Rank == 22 or f.Rank == 32:
  78.                                 viewBag.SetTranslatedText("tTitle", "%s POSITION %sND" % (positionStatus, f.Rank))
  79.                         elif f.Rank == 3 or f.Rank == 23 or f.Rank == 33:
  80.                                 viewBag.SetTranslatedText("tTitle", "%s POSITION %sRD" % (positionStatus, f.Rank))
  81.                         else:
  82.                                 viewBag.SetTranslatedText("tTitle", "%s POSITION %sTH" % (positionStatus, f.Rank))
  83.                                
  84.                         if f.Rank <= 8:
  85.                                 viewBag.SetString("vTypeTitle", 1)
  86.                        
  87.                         elif f.Rank > 8 and f.Rank <= 24:
  88.                                 viewBag.SetString("vTypeTitle", 2)
  89.                         else:
  90.                                 viewBag.SetString("vTypeTitle", 3)
  91.         ##################################
  92.        
  93.        
  94.         viewBag.SetFloat("vLines",int(pageEnd))
  95.         viewBag.SetString("tTeamName", Game.AwayTeam.ShortName.upper())
  96.        
  97.         team_path = Path.Combine(logosPath, "%s.png" % (Game.AwayTeam.RefName))
  98.         if File.Exists(team_path):
  99.                 viewBag.SetImage("lgBadge", team_path)
  100.         else:
  101.                 viewBag.SetImage("lgBadge", "Images/vaz.png")
  102.        
  103.         for enum,match in enumerate(summary,1):
  104.                 home_full_name = next((name.Value for name in match.HomeTeam.Translations.DisplayOfficialName if name.Value != ""), None)
  105.                 home_display_name = next((name.Value for name in match.HomeTeam.Translations.DisplayName if name.Value != ""), None)
  106.  
  107.                 home_ref_name = ModelsTools.GetRefName(home_full_name)
  108.                 home_team_path = Path.Combine(logosPath, "%s.png"%(home_ref_name))
  109.                
  110.                 away_full_name = next((name.Value for name in match.AwayTeam.Translations.DisplayOfficialName if name.Value != ""), None)
  111.                 away_display_name = next((name.Value for name in match.AwayTeam.Translations.DisplayName if name.Value != ""), None)
  112.                 away_ref_name = ModelsTools.GetRefName(away_full_name)
  113.                 away_team_path = Path.Combine(logosPath, "%s.png"%(away_ref_name))
  114.  
  115.                 if File.Exists(home_team_path):
  116.                         viewBag.SetImage("lgTeamHome%02d" % enum, home_team_path)
  117.                 else:
  118.                         viewBag.SetImage("lgTeamHome%02d" % enum, "Images/vaz.png")
  119.                        
  120.                 if File.Exists(away_team_path):
  121.                         viewBag.SetImage("lgTeamAway%02d" % enum, away_team_path)
  122.                 else:
  123.                         viewBag.SetImage("lgTeamAway%02d" % enum, "Images/vaz.png")
  124.                
  125.                 viewBag.SetVisibility("vMatchdayVisibility%02d" % enum, True)
  126.                 viewBag.SetTranslatedText("tMatchday%02d" % enum, "{{%s}}.{{MATCHDAY}}|filter:ToUpper " % match.Matchday.LongName)
  127.                 viewBag.SetString("tHomeTeamName%02d" % enum, home_display_name.upper())
  128.                 viewBag.SetString("tAwayTeamName%02d" % enum, away_display_name.upper())
  129.  
  130.                 if match.Status.ToString() == "FINISHED":
  131.                         atLeastOneGame = True
  132.                         viewBag.SetFloat("vTypeGameInfo%02d" % enum, 1)
  133.                         viewBag.SetString("tHomeScore%02d" % enum, match.Score.Regular.Home)
  134.                         viewBag.SetString("tAwayScore%02d" % enum, match.Score.Regular.Away)
  135.                 elif match.Status.ToString() == "UPCOMING":
  136.                         viewBag.SetFloat("vTypeGameInfo%02d" % enum, 2)
  137.                         time_diff = match.KickOffTime.DateTime - DateTime.Now
  138.                         if time_diff.Days < 1:
  139.                                 viewBag.SetTranslatedText("tGameInfo%02d" % enum,"{{%s}}.{{Summary_Results}}|filter:ToUpper " % "TONIGHT")
  140.                         else:
  141.                                 day = match.KickOffTime.DateTime.ToString("dd")
  142.                                 month = match.KickOffTime.DateTime.ToString("MMM")
  143.                                 viewBag.SetTranslatedText("tGameInfo%02d" % enum,"%s {{%s}}.{{Summary_Results}}|filter:ToUpper " % (day, month))
  144.                 elif match.Status.ToString() == "LIVE":
  145.                         viewBag.SetFloat("vTypeGameInfo%02d" % enum, 1)
  146.                         viewBag.SetString("tHomeScore%02d" % enum, "(%s" % match.Score.Regular.Home)
  147.                         viewBag.SetString("tAwayScore%02d" % enum, "%s)" % match.Score.Regular.Away)
  148.        
  149.         if not atLeastOneGame: 
  150.                 viewBag.SetString("vTypeTitle", 0)
  151.         helper.SetExtraData(extradata, "ExternalTake", "True")
  152.         helper.SetExtraData(extradata, "index", index + int(pageEnd))
  153.         helper.SetExtraData(extradata, "pageIndex", pageIndex+1)
  154.  
  155. def __afterProgram(graphicOnAirItem, momentExecution):
  156.        
  157.         extradata = graphicOnAirItem.ExtraData
  158.         pages = extradata["pages"]
  159.         delay = int(Project.ProjectSettings["TeamProgressGS (ms)"]) / int(len(pages))
  160.         Task.Delay(int(delay)).ContinueWith(lambda x: __continueGraphic(graphicOnAirItem, momentExecution))
  161.         helper.SetExtraData(extradata, "ExternalTake", "False")
  162.  
  163. def __continueGraphic(graphicOnAirItem, momentExecution):
  164.         extradata = graphicOnAirItem.ExtraData
  165.         index = extradata["index"]
  166.         total = extradata["total"]
  167.        
  168.         if index < total:
  169.                 helper.SetExtraData(extradata, "NextPage", "True")
  170.                 IntelliflowController.TakeInNextPage(graphicOnAirItem.Graphic, OutputManager.ActiveChannelOutput, workflowType=IntelliflowController.EWorkflowType.Program, )
  171.  
  172.  

Reply to "Untitled"

Here you can reply to the paste above