import clr clr.AddReference("Wtvision.Sports.Tools.UefaDigitalAPIImporter") from Wtvision.Sports import UefaDigitalApiProxy from Wtvision.Sports.Models import ModelsTools from System import Array, DateTime def __getData(graphicOnAirItem, viewBag, momentExecution): __ClearAllTags(viewBag) brackets = UefaDigitalAPIImporter.GetCurrentChampionshipBrackets() brackets.FillTeamSlots() # preencher os slots language = UefaDigitalAPIImporter.Options.Language roundCount = 0 groupCount = 0 slotCount = 0 teamCount = 0 enum = 0 # OBTER QUEM ESTA LIVE - TESTES matchId = Game.ExternalId active_game_events = UefaDigitalApiProxy.GetMatch(matchId = matchId) leg = active_game_events.Type.ToString().upper() matchDayId = Game.Attributes["MatchDayId"] matches = UefaDigitalApiProxy.GetMatches(offset= "0",limit = "500",competitionId = Array[str]([Game.Competition.IdCompetition]), matchDayId = Array[str]([matchDayId])) matchId = Game.ExternalId matches = sorted(matches, key=lambda match: match.KickOffTime.DateTime) matches = [match for match in matches if match.Type.ToString().upper() == leg] ## ONLY LEG GAMES current_date = next(iter([match for match in matches if match.Id == matchId]), None) # Get myGame matches = matches = [match for match in matches if match.KickOffTime.Date == current_date.KickOffTime.Date] # JUST FOR TODAY GAMES all_matches = matches matches_live = [match for match in matches if match.Status.ToString().upper() == "LIVE"] matches_finished = [match for match in matches if match.Status.ToString().upper() == "FINISHED"] matches_upcoming = [match for match in matches if match.Status.ToString().upper() == "UPCOMING"] for m in all_matches: UserInteraction.NotifyWarning("UEFA", "%s vs %s | status: %s" % (m.HomeTeam.Translations.DisplayName[str(language)].ToString(), m.AwayTeam.Translations.DisplayName[str(language)].ToString(), m.Status.ToString().upper())) if Game.HomeTeam.Name == m.HomeTeam.Translations.DisplayName[str(language)].ToString() and Game.AwayTeam.Name == m.AwayTeam.Translations.DisplayName[str(language)].ToString(): myGameDateTime = m.KickOffTime.DateTime kopoListLeft = [] r16ListLeft = [] quarterFinalsListLeft = [] semiFinalListLeft = [] kopoListRight = [] r16ListRight = [] quarterFinalsListRight = [] semiFinalListRight = [] finalList = [] for i in brackets.Rounds: roundCount += 1 for j in i.Groups: # CASA DO BRACKET groupCount += 1 enum += 1 slots = {} for l in j.Slots: slotCount += 1 for m in l.Teams: teamCount += 1 teamName = next((name.Value for name in m.Team.Translations.DisplayName if name.Key == str(language)), None) # Nome para slots teamId = m.TeamId teamInitials = m.Team.TeamCode teamFullName = next((fullTeamName.Value for fullTeamName in m.Team.Translations.DisplayOfficialName if fullTeamName.Key == str(language)), None) teamRefName = ModelsTools.GetRefName(teamFullName) teamPosition = m.Position if roundCount == 1: ## KNCOKOUT PLAY-OFFS if slotCount %2 == 1: slots["HomeTeamName"] = teamName.ToUpper() slots["HomeTeamRefName"] = teamRefName slots["HomeTeamInitials"] = teamInitials slots["HomeTeamId"] = teamId else: slots["AwayTeamName"] = teamName.ToUpper() slots["AwayTeamRefName"] = teamRefName slots["AwayTeamInitials"] = teamInitials slots["AwayTeamId"] = teamId elif roundCount == 2: ## ROUND OF 16 if slotCount == 1: slots["HomeTeamName"] = teamName.ToUpper() slots["HomeTeamRefName"] = teamRefName slots["HomeTeamInitials"] = teamInitials slots["HomeTeamId"] = teamId elif slotCount == 2: if len(l.Teams) != 2: slots["AwayTeamName"] = teamName.ToUpper() slots["AwayTeamRefName"] = teamRefName slots["AwayTeamInitials"] = teamInitials slots["AwayTeamId"] = teamId elif roundCount == 3: ## QUARTER FINALS if not teamName.ToString().Contains("Winner"): if slotCount %2 == 1: slots["HomeTeamName"] = teamName.ToUpper() slots["HomeTeamRefName"] = teamRefName slots["HomeTeamInitials"] = teamInitials slots["HomeTeamId"] = teamId else: slots["AwayTeamName"] = teamName.ToUpper() slots["AwayTeamRefName"] = teamRefName slots["AwayTeamInitials"] = teamInitials slots["AwayTeamId"] = teamId elif roundCount == 4: ## SEMI FINALS if not teamName.ToString().Contains("Winner"): if slotCount %2 == 1: slots["HomeTeamName"] = teamName.ToUpper() slots["HomeTeamRefName"] = teamRefName slots["HomeTeamInitials"] = teamInitials slots["HomeTeamId"] = teamId for match in all_matches: if match.Leg.Number == 1: if match.HomeTeam.Translations.DisplayName[str(language)].ToString() == teamName.ToString(): thisMatchDateTime = match.KickOffTime.DateTime isLive = True if thisMatchDateTime.ToString() == myGameDateTime.ToString() else False slots["Home_IsLive"] = isLive elif match.Leg.Number == 2: if match.AwayTeam.Translations.DisplayName[str(language)].ToString() == teamName.ToString(): thisMatchDateTime = match.KickOffTime.DateTime isLive = True if thisMatchDateTime.ToString() == myGameDateTime.ToString() else False slots["Home_IsLive"] = isLive else: slots["AwayTeamName"] = teamName.ToUpper() slots["AwayTeamRefName"] = teamRefName slots["AwayTeamInitials"] = teamInitials slots["AwayTeamId"] = teamId for match in all_matches: if match.Leg.Number == 1: if match.AwayTeam.Translations.DisplayName[str(language)].ToString() == teamName.ToString(): thisMatchDateTime = match.KickOffTime.DateTime isLive = True if thisMatchDateTime.ToString() == myGameDateTime.ToString() else False slots["Away_IsLive"] = isLive elif match.Leg.Number == 2: if match.HomeTeam.Translations.DisplayName[str(language)].ToString() == teamName.ToString(): thisMatchDateTime = match.KickOffTime.DateTime isLive = True if thisMatchDateTime.ToString() == myGameDateTime.ToString() else False slots["Away_IsLive"] = isLive elif roundCount == 5: ## FINALS if not teamName.ToString().Contains("Winner"): if slotCount %2 == 1: slots["HomeTeamName"] = teamName.ToUpper() slots["HomeTeamRefName"] = teamRefName slots["HomeTeamInitials"] = teamInitials slots["HomeTeamId"] = teamId else: slots["AwayTeamName"] = teamName.ToUpper() slots["AwayTeamRefName"] = teamRefName slots["AwayTeamInitials"] = teamInitials slots["AwayTeamId"] = teamId teamCount = 0 if roundCount == 1: if groupCount <= 4: kopoListLeft.append(slots) else: kopoListRight.append(slots) elif roundCount == 2: if groupCount <= 4: r16ListLeft.append(slots) else: r16ListRight.append(slots) elif roundCount == 3: if groupCount <= 2: quarterFinalsListLeft.append(slots) else: quarterFinalsListRight.append(slots) elif roundCount == 4: if groupCount <= 1: semiFinalListLeft.append(slots) else: semiFinalListRight.append(slots) elif roundCount == 5: finalList.append(slots) slotCount = 0 groupCount = 0 slotCount = 0 kopoListLeft = kopoListLeft r16ListLeft = r16ListLeft quarterFinalsListLeft = quarterFinalsListLeft semiFinalListLeft = semiFinalListLeft kopoListRight = kopoListRight r16ListRight = r16ListRight quarterFinalsListRight = quarterFinalsListRight semiFinalListRight = semiFinalListRight finalList = finalList enum = 0 gamesHighlight = [] for slot in kopoListLeft: ## Kockout Playoffs LEFT SIDE enum += 1 viewBag.SetTranslatedText("tHomeTeamName%02d" % enum, "{{%s}}" % slot["HomeTeamInitials"]) viewBag.SetTranslatedText("tAwayTeamName%02d" % enum, "{{%s}}" % slot["AwayTeamInitials"]) viewBag.SetImage("lgHomeTeamBadge%02d" % enum, "Images\\Badges\\%s.png" % slot["HomeTeamRefName"]) viewBag.SetImage("lgAwayTeamBadge%02d" % enum, "Images\\Badges\\%s.png" % slot["AwayTeamRefName"]) for slot in kopoListRight: ## Kockout Playoffs RIGHT SIDE enum += 1 viewBag.SetTranslatedText("tHomeTeamName%02d" % enum, "{{%s}}" % slot["HomeTeamInitials"]) viewBag.SetTranslatedText("tAwayTeamName%02d" % enum, "{{%s}}" % slot["AwayTeamInitials"]) viewBag.SetImage("lgHomeTeamBadge%02d" % enum, "Images\\Badges\\%s.png" % slot["HomeTeamRefName"]) viewBag.SetImage("lgAwayTeamBadge%02d" % enum, "Images\\Badges\\%s.png" % slot["AwayTeamRefName"]) count = 0 for slot in r16ListLeft: ## Round of 16 LEFT SIDE enum += 1 viewBag.SetTranslatedText("tHomeTeamName%02d" % enum, "{{%s}}" % slot["HomeTeamInitials"]) viewBag.SetTranslatedText("tAwayTeamName%02d" % enum, "{{%s}}" % slot["AwayTeamInitials"]) viewBag.SetImage("lgHomeTeamBadge%02d" % enum, "Images\\Badges\\%s.png" % slot["HomeTeamRefName"]) viewBag.SetImage("lgAwayTeamBadge%02d" % enum, "Images\\Badges\\%s.png" % slot["AwayTeamRefName"]) for slot in r16ListRight:## Round of 16 RIGHT SIDE enum += 1 viewBag.SetTranslatedText("tHomeTeamName%02d" % enum, "{{%s}}" % slot["HomeTeamInitials"]) viewBag.SetTranslatedText("tAwayTeamName%02d" % enum, "{{%s}}" % slot["AwayTeamInitials"]) viewBag.SetImage("lgHomeTeamBadge%02d" % enum, "Images\\Badges\\%s.png" % slot["HomeTeamRefName"]) viewBag.SetImage("lgAwayTeamBadge%02d" % enum, "Images\\Badges\\%s.png" % slot["AwayTeamRefName"]) for slot in quarterFinalsListLeft: ## Quarter Finals LEFT SIDE enum += 1 viewBag.SetTranslatedText("tHomeTeamName%02d" % enum, "{{%s}}" % slot["HomeTeamInitials"]) viewBag.SetTranslatedText("tAwayTeamName%02d" % enum, "{{%s}}" % slot["AwayTeamInitials"]) viewBag.SetImage("lgHomeTeamBadge%02d" % enum, "Images\\Badges\\%s.png" % slot["HomeTeamRefName"]) viewBag.SetImage("lgAwayTeamBadge%02d" % enum, "Images\\Badges\\%s.png" % slot["AwayTeamRefName"]) for slot in quarterFinalsListRight: ## Quarter Finals RIGHT SIDE enum += 1 viewBag.SetTranslatedText("tHomeTeamName%02d" % enum, "{{%s}}" % slot["HomeTeamInitials"]) viewBag.SetTranslatedText("tAwayTeamName%02d" % enum, "{{%s}}" % slot["AwayTeamInitials"]) viewBag.SetImage("lgHomeTeamBadge%02d" % enum, "Images\\Badges\\%s.png" % slot["HomeTeamRefName"]) viewBag.SetImage("lgAwayTeamBadge%02d" % enum, "Images\\Badges\\%s.png" % slot["AwayTeamRefName"]) for slot in semiFinalListLeft: ## Semi Final LEFT SIDE enum += 1 if "HomeTeamName" in slot and slot["HomeTeamName"] != None and slot["HomeTeamName"] != "": viewBag.SetTranslatedText("tHomeTeamName%02d" % enum, "{{%s}}.{{STANDINGS}}" % slot["HomeTeamName"]) viewBag.SetImage("lgHomeTeamBadge%02d" % enum, "Images\\Badges\\%s.png" % slot["HomeTeamRefName"]) if "Home_IsLive" in slot: home_isLive = slot["Home_IsLive"] if "AwayTeamName" in slot and slot["AwayTeamName"] != None and slot["AwayTeamName"] != "": viewBag.SetTranslatedText("tAwayTeamName%02d" % enum, "{{%s}}.{{STANDINGS}}" % slot["AwayTeamName"]) viewBag.SetImage("lgAwayTeamBadge%02d" % enum, "Images\\Badges\\%s.png" % slot["AwayTeamRefName"]) if "Away_IsLive" in slot: away_isLive = slot["Away_IsLive"] count += 1 if "Home_IsLive" in slot and "Away_IsLive" in slot: if home_isLive and away_isLive: highLight = True viewBag.SetFloat("vGamesFade%02d" % count, 0) print "SHOW HIGHLIGHT R16_LEFT %s - %s" % (slot["HomeTeamName"], slot["AwayTeamName"]) for slot in semiFinalListRight: ## Semi Final RIGHT SIDE enum += 1 if "HomeTeamName" in slot and slot["HomeTeamName"] != None and slot["HomeTeamName"] != "": viewBag.SetTranslatedText("tHomeTeamName%02d" % enum, "{{%s}}.{{STANDINGS}}" % slot["HomeTeamName"]) viewBag.SetImage("lgHomeTeamBadge%02d" % enum, "Images\\Badges\\%s.png" % slot["HomeTeamRefName"]) if "Home_IsLive" in slot: home_isLive = slot["Home_IsLive"] if "AwayTeamName" in slot and slot["AwayTeamName"] != None and slot["AwayTeamName"] != "": viewBag.SetTranslatedText("tAwayTeamName%02d" % enum, "{{%s}}.{{STANDINGS}}" % slot["AwayTeamName"]) viewBag.SetImage("lgAwayTeamBadge%02d" % enum, "Images\\Badges\\%s.png" % slot["AwayTeamRefName"]) if "Away_IsLive" in slot: away_isLive = slot["Away_IsLive"] count += 1 if "Home_IsLive" in slot and "Away_IsLive" in slot: if home_isLive and away_isLive: highLight = True viewBag.SetFloat("vGamesFade%02d" % count, 0) print "SHOW HIGHLIGHT R16_LEFT %s - %s" % (slot["HomeTeamName"], slot["AwayTeamName"]) for slot in finalList: ## Final if "HomeTeamName" in slot and slot["HomeTeamName"] != None and slot["HomeTeamName"] != "": viewBag.SetString("vFinalType", 2) viewBag.SetImage("lgHomeTeamFinalBadge", "Images\\Badges\\%s.png" % slot["HomeTeamRefName"]) if "AwayTeamName" in slot and slot["AwayTeamName"] != None and slot["AwayTeamName"] != "": viewBag.SetImage("lgAwayTeamFinalBadge", "Images\\Badges\\%s.png" % slot["AwayTeamRefName"]) # POS MATCH OF MY MATCH OPPENED for m in all_matches: if Game.HomeTeam.Name.ToString() == m.HomeTeam.Translations.DisplayName[str(language)].ToString() and Game.AwayTeam.Name.ToString() == m.AwayTeam.Translations.DisplayName[str(language)].ToString(): if m.Status.ToString().upper() == "FINISHED": for i in range(1, 5): viewBag.SetFloat("vGamesFade%02d" % i, 0) def __ClearAllTags(viewBag): viewBag.SetString("lgFinalBadge", "Images\\vaz.png") viewBag.SetString("lgHomeTeamFinalBadge", "Images\\vaz.png") viewBag.SetString("lgAwayTeamFinalBadge", "Images\\vaz.png") viewBag.SetTranslatedText("tFinalInfo", "FINAL") viewBag.SetTranslatedText("tKnockoutInfo", "KOPO") viewBag.SetTranslatedText("tRoundOff16Info", "R16") viewBag.SetTranslatedText("tQuarterInfo", "QF") viewBag.SetTranslatedText("tSemiFinalInfo", "SF") viewBag.SetTranslatedText("tTitle", "ROAD TO THE FINAL") viewBag.SetString("vFinalType", 1) viewBag.SetString("vSemiFinalInfoHomeVisibility", True) viewBag.SetString("vSemiFinalInfoAwayVisibility", True) for j in range(1, 9): viewBag.SetFloat("vGamesFade%02d" % j, 1) for l in range(17, 23): viewBag.SetString("vAwayType%02d" % l, 1) viewBag.SetString("vHomeType%02d" % l, 1) viewBag.SetVisibility("vHomeTeamHighlight%02d" % l, False) viewBag.SetVisibility("vAwayTeamHighlight%02d" % l, False) for i in range(0, 23): viewBag.SetImage("lgHomeTeamBadge%02d" % i, "Images\\vaz.png") viewBag.SetImage("lgHomeTeamBadge%02d_01" % i, "Images\\vaz.png") viewBag.SetImage("lgHomeTeamBadge%02d_02" % i, "Images\\vaz.png") viewBag.SetImage("lgAwayTeamBadge%02d" % i, "Images\\vaz.png") viewBag.SetImage("lgAwayTeamBadge%02d_01" % i, "Images\\vaz.png") viewBag.SetImage("lgAwayTeamBadge%02d_02" % i, "Images\\vaz.png") viewBag.SetString("tHomeTeamName%02d" % i, "") viewBag.SetString("tHomeTeamName%02d_01" % i, "") viewBag.SetString("tHomeTeamName%02d_02" % i, "") viewBag.SetString("tAwayTeamName%02d" % i, "") viewBag.SetString("tAwayTeamName%02d_01" % i, "") viewBag.SetString("tAwayTeamName%02d_02" % i, "") viewBag.SetString("tAwayTeamNumber%02d_01" % i, "") viewBag.SetString("tAwayTeamNumber%02d_02" % i, "")