Untitled

From Ivory Pintail, 2 Weeks ago, written in Plain Text, viewed 7 times. This paste will run down the curtain in 1 Week.
URL https://paste.afonso.co/view/b2b553c0 Embed
Download Paste or View Raw
  1. from System.Threading.Tasks import Task
  2. from System.Collections import Hashtable
  3. import AthletesHelper
  4.  
  5. def __afterProgram(graphicOnAirItem, momentExecution):
  6.         if "CurrentEvent" not in graphicOnAirItem.ContextObjects:
  7. #               AthletesHelper.SetMomentExecutionWarning(momentExecution, "No Event Selected!")
  8.                 return
  9.                
  10.         if "Events" not in graphicOnAirItem.ContextObjects:
  11. #               AthletesHelper.SetMomentExecutionWarning(momentExecution, "No Event Selected!")
  12.                 return
  13.                
  14.         if "Header" not in graphicOnAirItem.ContextObjects["CurrentEvent"]:
  15. #               AthletesHelper.SetMomentExecutionWarning(momentExecution, "Event has no Header!")
  16.                 return
  17.        
  18.         if "DocumentCode" not in graphicOnAirItem.ContextObjects["CurrentEvent"]["Header"]:
  19. #               AthletesHelper.SetMomentExecutionWarning(momentExecution, "Event has no DocumentCode!")
  20.                 return
  21.        
  22.         # OBTER TIPO DE PROVA
  23.         documentCode = graphicOnAirItem.ContextObjects["CurrentEvent"]["Header"]["DocumentCode"]
  24.         eventType = None
  25.         if documentCode != "":
  26.                 documentCode = documentCode.ToString()
  27.                
  28.                 if documentCode.Contains("HALFMARA"):
  29.                         code = "Half-Marathon"
  30.                         eventType = "HALFMARA"
  31.                 elif documentCode.Contains("MARATHON"):
  32.                         code = "Marathon"
  33.                         eventType = "MARATHON"
  34.         else:
  35. #               AthletesHelper.SetMomentExecutionWarning(momentExecution, "Event DocumentCode is empty!")
  36.                 return
  37.                
  38.         results = next((dt for dt in DataSourceManager.DataSources if dt.Name == "DT_RESULT"), None)
  39.         if not results:
  40.                 return
  41.         allEvents = [(x["Code"].ToString(), x["Gender"].ToString()) for x in graphicOnAirItem.ContextObjects["Events"] if "Code" in x and "Gender" in x and x["Code"].ToString().Contains(eventType)]
  42.         competitionCode = graphicOnAirItem.ContextObjects["CurrentEvent"]["Header"]["CompetitionCode"].ToString()
  43.         allResults = {}
  44.         # IR A TODOS OS DT_RESULT DE TODAS AS PROVAS
  45.         # CRIA DICIONÁRIO COM RESULTS POR GÉNERO
  46.         for evt in allEvents:
  47.                 dict = {'CompetitionCode': competitionCode, 'Source': '', 'DocumentCode': evt[0]}
  48.                 try:
  49.                         genderResults = results.GetData(dict)  
  50.                 except Exception as e:
  51.                         return
  52.                 allResults[evt[1]] = genderResults
  53.        
  54.         # IR A TODOS OS RESULTADOS E PROCURAR O 1º LUGAR NO SPLIT "F" E RETIRAR O TEMPO
  55.         firstPlaces = {}
  56.         for g, result in allResults.items():
  57.                 firstPlaces[g] = None
  58.                 if "ResultsByRank" not in result: continue
  59.                 first = next((x for x in result["ResultsByRank"] if "Stats" in x and "Items" in x["Stats"] and ((y for y in x["Stats"]["Items"] if "Pos" in y and "Rank" in y and y["Rank"].ToString() == "1" and y["Pos"].ToString().upper() == "F"), None)), None)
  60.                 if first:
  61.                         time = [x["Value"].ToString() for x in first["Stats"]["Items"] if "Value" in x and x["Rank"].ToString() == "1" and x["Pos"].ToString().upper() == "F"]
  62.                         if time:
  63.                                 firstPlaces[g] = time[0]
  64.        
  65.         if "Gender" not in graphicOnAirItem.ContextObjects["CurrentEvent"]:
  66.                 AthletesHelper.SetMomentExecutionWarning(momentExecution, "Unable to get event gender!")
  67.                 return
  68.        
  69.         gender = graphicOnAirItem.ContextObjects["CurrentEvent"]["Gender"]
  70.         if not gender:
  71.                 AthletesHelper.SetMomentExecutionWarning(momentExecution, "Gender is empty!")
  72.                 return
  73.                
  74.         gender = gender.ToString()
  75.                        
  76.         extradata = graphicOnAirItem.ExtraData
  77.         extradata["Gender"] = gender
  78.         extradata["Code"] = code
  79.        
  80.         if "ResultsByRank" not in graphicOnAirItem.ContextObjects["CurrentEvent"] or len(graphicOnAirItem.ContextObjects["CurrentEvent"]["ResultsByRank"]) < 0:
  81.                 AthletesHelper.SetMomentExecutionWarning(momentExecution, "No Results by Rank found in Selected Event!")
  82.                 return
  83.                
  84.  
  85.  
  86.         ath = graphicOnAirItem.ContextObjects["CurrentEvent"]["ResultsByRank"][0]
  87.         if "Stats" in graphicOnAirItem.ContextObjects["CurrentEvent"]["ResultsByRank"][0]:
  88.                 if "Items" in graphicOnAirItem.ContextObjects["CurrentEvent"]["ResultsByRank"][0]["Stats"] and len(graphicOnAirItem.ContextObjects["CurrentEvent"]["ResultsByRank"][0]["Stats"]["Items"]) != 0:
  89.                         inter = graphicOnAirItem.ContextObjects["CurrentEvent"]["ResultsByRank"][0]["Stats"]["Items"]
  90.                        
  91.                         for i in inter:
  92.                                 pos = i["Pos"]
  93.                                 value = i["Value"]
  94.                
  95.                 else:
  96.                         AthletesHelper.SetMomentExecutionWarning(momentExecution, "Athlete has no splits")
  97.                         return
  98.         else:
  99.                 AthletesHelper.SetMomentExecutionWarning(momentExecution, "Couldn't read any splits!")
  100.                 return
  101.                
  102.         if "M" in firstPlaces:
  103.                 graphicM = "CL FINISH M"
  104.                 graphicM = GraphicTemplatesManager.GetGraphicByName(graphicM)
  105.                
  106.                 if not graphicM: return
  107.                 if IntelliflowController.IsGraphicOnAir(graphicM, OutputManager.ActiveChannelOutput): return   
  108.                
  109.                 dicValuesM = Hashtable()
  110.                 dicValuesM.Add("value", firstPlaces["M"])
  111.                
  112.                 TakeIn = lambda: IntelliflowController.TakeIn(graphicM, OutputManager.ActiveChannelOutput, workflowType = IntelliflowController.EWorkflowType.Program, extraData = dicValuesM)
  113.                
  114.         if "W" in firstPlaces:
  115.                 graphic = "CL FINISH W"
  116.                 graphic = GraphicTemplatesManager.GetGraphicByName(graphic)
  117.                
  118.                 if not graphic: return
  119.                 if IntelliflowController.IsGraphicOnAir(graphic, OutputManager.ActiveChannelOutput): return    
  120.                
  121.                 dicValues = Hashtable()
  122.                 dicValues.Add("value", firstPlaces["W"])
  123.                
  124.                 if TakeIn:
  125.                         Task.Run(action = TakeIn).ContinueWith(lambda x: IntelliflowController.TakeIn(graphic, OutputManager.ActiveChannelOutput, workflowType = IntelliflowController.EWorkflowType.Program, extraData = dicValues))
  126.                 else:
  127.                         Task.Run(action = lambda: IntelliflowController.TakeIn(graphic, OutputManager.ActiveChannelOutput, workflowType = IntelliflowController.EWorkflowType.Program, extraData = dicValues))
  128.  
  129.  
  130. def __getData(graphicOnAirItem, viewBag, momentExecution):
  131.         extradata = graphicOnAirItem.ExtraData
  132.         AthletesHelper.SetExtraData(extradata, "STOP UPDATE", False)
  133.  
  134.  
  135. def corte(clockName, clock, gender):
  136.         print "CORTE CLOCK"
  137.         graphic = GraphicTemplatesManager.GetGraphicByName(Script.Name)
  138.         if graphic:
  139.                 graphicOnAirItems = IntelliflowController.GetGraphicOnAirItems(graphic, OutputManager.ActiveChannelOutput)
  140.                 extradata = graphicOnAirItems[0].ExtraData
  141. #               gender = extradata["Gender"]
  142.                 gender = gender
  143.                 code = extradata["Code"]
  144.                
  145.                 dicValues = Hashtable()
  146.                 dicValues.Add("value", clock.ToString())
  147.                
  148.                 codeName = "%s %s" % (code, gender)
  149.                 print "b if -> gender %s" % gender
  150.                 if clockName.endswith(gender) or clockName.endswith("A"):
  151.                         AthletesHelper.SetExtraData(extradata, "STOP UPDATE", True)
  152.                        
  153.                         graphic2 = "CL FINISH W" if gender != "M" else "CL FINISH M"
  154.                         graphic2 = GraphicTemplatesManager.GetGraphicByName(graphic2)
  155.                        
  156.                         if not graphic2: return
  157.                         if IntelliflowController.IsGraphicOnAir(graphic2, OutputManager.ActiveChannelOutput): return   
  158.                                                
  159.                         Task.Run(action = lambda: IntelliflowController.TakeIn(graphic2, OutputManager.ActiveChannelOutput, workflowType = IntelliflowController.EWorkflowType.Program, extraData = dicValues))        
  160.  
  161.  
  162. def corteManual(clockVal, gender):
  163.         print "corteManual -> %s" % gender
  164.         graphic = GraphicTemplatesManager.GetGraphicByName(Script.Name)
  165.         if graphic:
  166.                 graphicOnAirItems = IntelliflowController.GetGraphicOnAirItems(graphic, OutputManager.ActiveChannelOutput)
  167.                
  168.                 dicValues = Hashtable()
  169.                 dicValues.Add("value", clockVal.ToString())
  170.                        
  171.                 graphic2 = "CL FINISH W" if gender != "M" else "CL FINISH M"
  172.                 graphic2 = GraphicTemplatesManager.GetGraphicByName(graphic2)
  173.                
  174.                 if not graphic2: return
  175.                 if IntelliflowController.IsGraphicOnAir(graphic2, OutputManager.ActiveChannelOutput): return   
  176.                                        
  177.                 Task.Run(action = lambda: IntelliflowController.TakeIn(graphic2, OutputManager.ActiveChannelOutput, workflowType = IntelliflowController.EWorkflowType.Program, extraData = dicValues))

Reply to "Untitled"

Here you can reply to the paste above