- import clr
- clr.AddReference("Wtvision.Sports.Tools.UefaDigitalAPIImporter")
- from Wtvision.Sports import UefaDigitalApiProxy
- clr.AddReference("Wtvision.Sports.Models")
- from Wtvision.Sports.Models import ModelsTools
- from System.Threading.Tasks import Task
- from System import Array, DateTime
- from System.IO import Path, File
- import helper
- import smartpaging
- def __onStart(graphicOnAirItem, momentExecution, workFlowtype):
- extradata = graphicOnAirItem.ExtraData
- if not extradata.ContainsKey("ExternalTake"):
- helper.SetExtraData(extradata, "ExternalTake", "True")
- def __getData(graphicOnAirItem, viewBag, momentExecution):
- extradata = graphicOnAirItem.ExtraData
- competitionId = Game.Competition.IdCompetition
- logosPath = Path.Combine(graphicOnAirItem.GraphicsEngine.Options.RootPath, graphicOnAirItem.Scene.Path, "Images", "Badges")
- teamId = Game.AwayTeam.ExternalId
- seasonYear = Game.Competition.Season.ToString()
- stagesToShow = ["LEAGUE PHASE"]
- if extradata["ExternalTake"] == "True":
- matches = UefaDigitalApiProxy.GetMatches(offset= "0",limit = "500",competitionId = Array[str]([Game.Competition.IdCompetition]),teamId = teamId, seasonYear = seasonYear )
- #Teams = UefaDigitalApiProxy.GetTeams(None, None, Game.Competition.IdCompetition, Game.Competition.Season, None, None, "0", "500")
- filtered_matches = filter(lambda match: match.Round.Translations.ShortName["EN"].ToString().upper() in stagesToShow, matches)
- sorted_matches = sorted(filtered_matches, key=lambda match: match.KickOffTime.Date)
- helper.SetExtraData(extradata, "total", len(sorted_matches))
- helper.SetExtraData(extradata, "index", 0)
- helper.SetExtraData(extradata, "pageIndex", 0)
- helper.SetExtraData(extradata, "pages", (smartpaging.NonUniformPaging(len(sorted_matches), 4)))
- helper.SetExtraData(extradata, "summary", (sorted_matches))
- index = extradata["index"]
- pageIndex = extradata["pageIndex"]
- pages = extradata["pages"]
- summary = extradata["summary"]
- pageEnd = pages[pageIndex]
- summary = summary[index:(index + int(pageEnd))]
- ## TITULO QUE TEM A POSSIÇÃO DA EQUIPA NO LEAGUE PHASE
- uefaGroups = UefaDigitalApiProxy.GetStandings(Game.Competition.IdCompetition, Game.Competition.Season)
- hometeamId = Game.HomeTeam.ExternalId
- awayteamId = Game.AwayTeam.ExternalId
- for uefaGroup in uefaGroups:
- awayTeam = filter(lambda x : x.Team.Id.ToString() == awayteamId.ToString(), uefaGroup.Items)
- homeTeam = filter(lambda x : x.Team.Id.ToString() == hometeamId.ToString(), uefaGroup.Items)
- if awayTeam and homeTeam:
- group = uefaGroup
- if not group:
- momentExecution.Message = "THERE IS NO GROUPS!!"
- momentExecution.Cancel = True
- return
- atLeastOneGame = False
- matchDay = Game.Attributes["MatchDayLongName"]
- matchDay = matchDay.split(" ")
- matchDayNumber = matchDay[1]
- leaguePhaseMaxGames = 8
- for f in group.Items:
- if f.Team.InternationalName.upper() == Game.AwayTeam.ShortName.upper():
- if int(matchDayNumber) > leaguePhaseMaxGames:
- positionStatus = "FINAL"
- else:
- positionStatus = "CURRENT"
- if f.Rank == 1 or f.Rank == 21 or f.Rank == 31:
- viewBag.SetTranslatedText("tTitle", "%s POSITION %sST" % (positionStatus, f.Rank))
- elif f.Rank == 2 or f.Rank == 22 or f.Rank == 32:
- viewBag.SetTranslatedText("tTitle", "%s POSITION %sND" % (positionStatus, f.Rank))
- elif f.Rank == 3 or f.Rank == 23 or f.Rank == 33:
- viewBag.SetTranslatedText("tTitle", "%s POSITION %sRD" % (positionStatus, f.Rank))
- else:
- viewBag.SetTranslatedText("tTitle", "%s POSITION %sTH" % (positionStatus, f.Rank))
- if f.Rank <= 8:
- viewBag.SetString("vTypeTitle", 1)
- elif f.Rank > 8 and f.Rank <= 24:
- viewBag.SetString("vTypeTitle", 2)
- else:
- viewBag.SetString("vTypeTitle", 3)
- ##################################
- viewBag.SetFloat("vLines",int(pageEnd))
- viewBag.SetString("tTeamName", Game.AwayTeam.ShortName.upper())
- team_path = Path.Combine(logosPath, "%s.png" % (Game.AwayTeam.RefName))
- if File.Exists(team_path):
- viewBag.SetImage("lgBadge", team_path)
- else:
- viewBag.SetImage("lgBadge", "Images/vaz.png")
- for enum,match in enumerate(summary,1):
- home_full_name = next((name.Value for name in match.HomeTeam.Translations.DisplayOfficialName if name.Value != ""), None)
- home_display_name = next((name.Value for name in match.HomeTeam.Translations.DisplayName if name.Value != ""), None)
- home_ref_name = ModelsTools.GetRefName(home_full_name)
- home_team_path = Path.Combine(logosPath, "%s.png"%(home_ref_name))
- away_full_name = next((name.Value for name in match.AwayTeam.Translations.DisplayOfficialName if name.Value != ""), None)
- away_display_name = next((name.Value for name in match.AwayTeam.Translations.DisplayName if name.Value != ""), None)
- away_ref_name = ModelsTools.GetRefName(away_full_name)
- away_team_path = Path.Combine(logosPath, "%s.png"%(away_ref_name))
- if File.Exists(home_team_path):
- viewBag.SetImage("lgTeamHome%02d" % enum, home_team_path)
- else:
- viewBag.SetImage("lgTeamHome%02d" % enum, "Images/vaz.png")
- if File.Exists(away_team_path):
- viewBag.SetImage("lgTeamAway%02d" % enum, away_team_path)
- else:
- viewBag.SetImage("lgTeamAway%02d" % enum, "Images/vaz.png")
- viewBag.SetVisibility("vMatchdayVisibility%02d" % enum, True)
- viewBag.SetTranslatedText("tMatchday%02d" % enum, "{{%s}}.{{MATCHDAY}}|filter:ToUpper " % match.Matchday.LongName)
- viewBag.SetString("tHomeTeamName%02d" % enum, home_display_name.upper())
- viewBag.SetString("tAwayTeamName%02d" % enum, away_display_name.upper())
- if match.Status.ToString() == "FINISHED":
- atLeastOneGame = True
- viewBag.SetFloat("vTypeGameInfo%02d" % enum, 1)
- viewBag.SetString("tHomeScore%02d" % enum, match.Score.Regular.Home)
- viewBag.SetString("tAwayScore%02d" % enum, match.Score.Regular.Away)
- elif match.Status.ToString() == "UPCOMING":
- viewBag.SetFloat("vTypeGameInfo%02d" % enum, 2)
- time_diff = match.KickOffTime.DateTime - DateTime.Now
- if time_diff.Days < 1:
- viewBag.SetTranslatedText("tGameInfo%02d" % enum,"{{%s}}.{{Summary_Results}}|filter:ToUpper " % "TONIGHT")
- else:
- day = match.KickOffTime.DateTime.ToString("dd")
- month = match.KickOffTime.DateTime.ToString("MMM")
- viewBag.SetTranslatedText("tGameInfo%02d" % enum,"%s {{%s}}.{{Summary_Results}}|filter:ToUpper " % (day, month))
- elif match.Status.ToString() == "LIVE":
- viewBag.SetFloat("vTypeGameInfo%02d" % enum, 1)
- viewBag.SetString("tHomeScore%02d" % enum, "(%s" % match.Score.Regular.Home)
- viewBag.SetString("tAwayScore%02d" % enum, "%s)" % match.Score.Regular.Away)
- if not atLeastOneGame:
- viewBag.SetString("vTypeTitle", 0)
- helper.SetExtraData(extradata, "ExternalTake", "True")
- helper.SetExtraData(extradata, "index", index + int(pageEnd))
- helper.SetExtraData(extradata, "pageIndex", pageIndex+1)
- def __afterProgram(graphicOnAirItem, momentExecution):
- extradata = graphicOnAirItem.ExtraData
- pages = extradata["pages"]
- delay = int(Project.ProjectSettings["TeamProgressGS (ms)"]) / int(len(pages))
- Task.Delay(int(delay)).ContinueWith(lambda x: __continueGraphic(graphicOnAirItem, momentExecution))
- helper.SetExtraData(extradata, "ExternalTake", "False")
- def __continueGraphic(graphicOnAirItem, momentExecution):
- extradata = graphicOnAirItem.ExtraData
- index = extradata["index"]
- total = extradata["total"]
- if index < total:
- helper.SetExtraData(extradata, "NextPage", "True")
- IntelliflowController.TakeInNextPage(graphicOnAirItem.Graphic, OutputManager.ActiveChannelOutput, workflowType=IntelliflowController.EWorkflowType.Program, )
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
— Expand Paste to full width of browser