- import Utils
- import json
- import Credits
- from System.IO import File, Path, Directory, DirectoryInfo
- from System.Threading.Tasks import Task
- from collections import OrderedDict
- def __onStart(graphicOnAirItem, momentExecution, workFlowtype):
- if workFlowtype.ToString() != "PreviewToProgram":
- if not Globals["CreditsUserControl"]:
- momentExecution.Message = "Credits Form is not initialized"
- momentExecution.Cancel = True
- return
- selectedType = Globals["CreditsUserControl"].SelectedType
- if not selectedType:
- momentExecution.Message = "Select one Type first"
- momentExecution.Cancel = True
- return
- if selectedType.lower() != "pagination":
- momentExecution.Message = "Invalid Configuration Type '%s'" % selectedType
- momentExecution.Cancel = True
- return
- configurationsObj = Globals["CreditsUserControl"].Configurations
- providerPath = configurationsObj.ProviderPath.ToString()
- if not providerPath.strip():
- momentExecution.Message = "Provider File not set"
- momentExecution.Cancel = True
- return
- if not File.Exists(providerPath):
- momentExecution.Message = "File '%s' not found" % providerPath
- momentExecution.Cancel = True
- return
- if configurationsObj.CardsFolder and not Directory.Exists(configurationsObj.ImagesDirectory):
- momentExecution.Message = "Images Folder doesn't exist"
- momentExecution.Cancel = True
- return
- if configurationsObj.SeparatorImage and not File.Exists(configurationsObj.SeparatorPath):
- momentExecution.Message = "Separator Image not found"
- momentExecution.Cancel = True
- return
- sceneTags = list(graphicOnAirItem.Scene.GetTags())
- creditsObj = Credits.Credits(providerPath, selectedType.lower(), configurationsObj, sceneTags)
- Utils.SetExtraData(graphicOnAirItem.ExtraData, "CreditsObject", creditsObj)
- def __getData(graphicOnAirItem, viewBag, momentExecution):
- viewBag.Clear()
- creditsObj = graphicOnAirItem.ExtraData["CreditsObject"]
- viewBag.SetBool("vReset", True)
- viewBag.SetBool("vStart", False)
- #viewBag.SetFloat("vLineSpace",1)
- viewBag.SetFloat("vSpeed", creditsObj.CardSpeed)
- for i in range(1, 9):
- viewBag.SetString("%s%02d" % (Credits.paginationFunctionTag, i), "")
- viewBag.SetString("%s%02d" % (Credits.paginationNameTag, i), "")
- def __afterProgram(graphicOnAirItem, momentExecution):
- Task.Run(action = lambda : __continueGraphic(graphicOnAirItem, momentExecution))
- def __continueGraphic(graphicOnAirItem, momentExecution):
- emessageboxresult = UserInteraction.ShowMessageBoxYesNo("PAGINATION", "Continue")
- if emessageboxresult != emessageboxresult.Yes:
- return
- __takeItems(graphicOnAirItem)
- def __takeItems(graphicOnAirItem):
- if not graphicOnAirItem.IsOnAir: return
- creditsObj = graphicOnAirItem.ExtraData["CreditsObject"]
- if creditsObj.Index > len(creditsObj.Messages):return
- viewBag = IntelliflowController.CreateViewBag()
- for i in range(1, 9):
- viewBag.SetString("%s%02d" % (Credits.paginationFunctionTag, i), "")
- viewBag.SetString("%s%02d" % (Credits.paginationNameTag, i), "")
- #print creditsObj.Messages[creditsObj.Index]
- #print creditsObj.Messages[creditsObj.Index]
- for enum, page in enumerate(creditsObj.Messages[creditsObj.Index]):
- function = page[0]
- names = [var for var in page[1] if var]
- viewBag.SetString("%s%02d" % (Credits.paginationFunctionTag, enum+1), function)
- viewBag.SetString("%s%02d" % (Credits.paginationNameTag, enum+1), "\r\n".join(names))
- #print "%s%02d --> %s" % (Credits.paginationFunctionTag, enum+1, function)
- graphicOnAirItem.Scene.Show("Change_Out")
- graphicOnAirItem.Scene.Wait("Change_Out")
- IntelliflowController.FillData([graphicOnAirItem], viewBag)
- graphicOnAirItem.Scene.Show("Change_In")
- graphicOnAirItem.Scene.Wait("Change_In")
- creditsObj.Index += 1
- if creditsObj.Index >= len(creditsObj.Messages):
- if not creditsObj.ShowCards:
- Scheduler.Add(Script.RefName, "__Out", Project.Name, graphicOnAirItem, creditsObj.Speed)
- return
- Scheduler.Add(Script.RefName, "__takeCards", Project.Name, graphicOnAirItem, creditsObj.Speed, "Cards")
- else:
- Scheduler.Add(Script.RefName, "__takeItems", Project.Name, graphicOnAirItem, creditsObj.Speed, "Credits")
- def __takeCards(graphicOnAirItem):
- if not graphicOnAirItem.IsOnAir: return
- cardsGraphic = GraphicTemplatesManager.GetGraphicByName("Cards")
- if not cardsGraphic: return
- IntelliflowController.TakeIn(cardsGraphic, OutputManager.ActiveChannelOutput, extraData=graphicOnAirItem.ExtraData)
- def __beforeProgramOut(graphicOnAirItem, momentExecution):
- #print "asd"
- Scheduler.ClearScheduler("Credits")
- Scheduler.ClearScheduler("Cards")
- def __Out(graphicOnAirItem):
- IntelliflowController.TakeOut(graphicOnAirItem)
- #def __afterProgram(graphicOnAirItem, momentExecution):
- # print "__afterProgram"
Untitled
From Emerald Crane, 1 Week ago, written in Plain Text, viewed 2 times.
This paste will join the choir invisible in 2 Weeks.
URL https://paste.afonso.co/view/db4268db
Embed
Download Paste or View Raw
— Expand Paste to full width of browser