martastain

Nebula rundown as json export plugin

Jul 19th, 2021 (edited)
576
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.03 KB | None | 0 0
  1. from nebula import *                                                                                                                                                                                                                                                                      
  2.                                                                                                                                                                                                                                                                                            
  3. class Plugin(APIPlugin):
  4.     def main(self, **kwargs):
  5.         try:
  6.             id_channel = int(kwargs.get("id_channel"))
  7.             channel_config = config["playout_channels"][id_channel]
  8.         except:
  9.             log_traceback()
  10.             return NebulaResponse(400, "No such channel")
  11.  
  12.         try:
  13.             start_time = datestr2ts(kwargs.get("date"), *channel_config["day_start"])
  14.         except Exception:
  15.             log_traceback()
  16.             return NebulaResponse(400, "Wrong date specified")
  17.  
  18.  
  19.         event_keys = ["start", "title", "subtitle", "description"]
  20.         asset_keys = ["title", "subtitle", "description", "genre", "id_folder", "intention", "editorial_format"]
  21.  
  22.         result = []
  23.         for event in get_rundown(id_channel, start_time, start_time+(3600*24)):
  24.             edata = {}
  25.             for k in event_keys:
  26.                 if event[k]:
  27.                     edata[k] = event[k]
  28.  
  29.  
  30.             edata["items"] = []
  31.             for item in event.items:
  32.                 idata = {
  33.                     "title" : item["title"],
  34.                     "scheduled_time" : item["rundown_scheduled"],
  35.                     "broadcast_time" : item["rundown_broadcast"],
  36.                 }
  37.                 if item.asset:
  38.                     idata["asset"] = {k : item.asset[k] for k in asset_keys if item.asset[k]}
  39.  
  40.                 edata["items"].append(idata)
  41.             result.append(edata)
  42.  
  43.         return NebulaResponse(200, data=result)    
Add Comment
Please, Sign In to add comment