mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2025-08-03 09:29:34 +02:00
2021-12-11 Fred Gleason <fredg@paravelsystems.com>
* Added a 'Log' class to the 'rivwebapi' API. * Modified the 'ListLogs()' method to use the 'Log' class in the 'rivwebapi' API. * Added a 'LogLine' class to the 'rivwebapi' API. * Modified the 'ListLog()' method to use the 'LogLine' class in the 'rivwebapi' API. Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
This commit is contained in:
parent
dd3cee96d4
commit
f8f0b937bc
@ -22743,3 +22743,10 @@
|
|||||||
* Modified the 'AddCut()', 'ListCut()' and 'ListCuts()' methods
|
* Modified the 'AddCut()', 'ListCut()' and 'ListCuts()' methods
|
||||||
to use the 'Cut' class in the 'rivwebapi' API.
|
to use the 'Cut' class in the 'rivwebapi' API.
|
||||||
* Added an 'EditCut()' method to the 'rivwebpyapi' API.
|
* Added an 'EditCut()' method to the 'rivwebpyapi' API.
|
||||||
|
2021-12-11 Fred Gleason <fredg@paravelsystems.com>
|
||||||
|
* Added a 'Log' class to the 'rivwebapi' API.
|
||||||
|
* Modified the 'ListLogs()' method to use the 'Log' class in the
|
||||||
|
'rivwebapi' API.
|
||||||
|
* Added a 'LogLine' class to the 'rivwebapi' API.
|
||||||
|
* Modified the 'ListLog()' method to use the 'LogLine' class in the
|
||||||
|
'rivwebapi' API.
|
||||||
|
@ -121,6 +121,102 @@ CUT_FIELDS={
|
|||||||
'talkEndPoint': 'integer'
|
'talkEndPoint': 'integer'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LOG_FIELDS={
|
||||||
|
'name': 'string',
|
||||||
|
'serviceName': 'string',
|
||||||
|
'description': 'string',
|
||||||
|
'originUserName': 'string',
|
||||||
|
'originDatetime': 'datetime',
|
||||||
|
'linkDatetime': 'datetime',
|
||||||
|
'modifiedDatetime': 'datetime',
|
||||||
|
'purgeDate': 'date',
|
||||||
|
'autoRefresh': 'boolean',
|
||||||
|
'startDate': 'date',
|
||||||
|
'endDate': 'date',
|
||||||
|
'scheduledTracks': 'integer',
|
||||||
|
'completedTracks': 'integer',
|
||||||
|
'musicLinks': 'integer',
|
||||||
|
'musicLinked': 'boolean',
|
||||||
|
'trafficLinks': 'integer',
|
||||||
|
'trafficLinked': 'boolean'
|
||||||
|
}
|
||||||
|
|
||||||
|
LOGLINE_FIELDS={
|
||||||
|
'line': 'integer',
|
||||||
|
'id': 'integer',
|
||||||
|
'type': 'string',
|
||||||
|
'cartType': 'string',
|
||||||
|
'cartNumber': 'integer',
|
||||||
|
'cutNumber': 'integer',
|
||||||
|
'groupName': 'string',
|
||||||
|
'groupColor': 'string',
|
||||||
|
'title': 'string',
|
||||||
|
'artist': 'string',
|
||||||
|
'publisher': 'string',
|
||||||
|
'composer': 'string',
|
||||||
|
'album': 'string',
|
||||||
|
'label': 'string',
|
||||||
|
'year': 'integer',
|
||||||
|
'client': 'string',
|
||||||
|
'agency': 'string',
|
||||||
|
'conductor': 'string',
|
||||||
|
'userDefined': 'string',
|
||||||
|
'usageCode': 'integer',
|
||||||
|
'enforceLength': 'boolean',
|
||||||
|
'forcedLength': 'string',
|
||||||
|
'evergreen': 'boolean',
|
||||||
|
'source': 'string',
|
||||||
|
'timeType': 'string',
|
||||||
|
'startTime': 'time',
|
||||||
|
'transitionType': 'string',
|
||||||
|
'cutQuantity': 'integer',
|
||||||
|
'lastCutPlayed': 'integer',
|
||||||
|
'markerComment': 'string',
|
||||||
|
'markerLabel': 'string',
|
||||||
|
'description': 'string',
|
||||||
|
'isrc': 'string',
|
||||||
|
'isci': 'string',
|
||||||
|
'recordingMbId': 'string',
|
||||||
|
'releaseMbId': 'string',
|
||||||
|
'originUser': 'string',
|
||||||
|
'originDateTime': 'datetime',
|
||||||
|
'startPointCart': 'integer',
|
||||||
|
'startPointLog': 'integer',
|
||||||
|
'endPointCart': 'integer',
|
||||||
|
'endPointLog': 'integer',
|
||||||
|
'segueStartPointCart': 'integer',
|
||||||
|
'segueStartPointLog': 'integer',
|
||||||
|
'segueEndPointCart': 'integer',
|
||||||
|
'segueEndPointLog': 'integer',
|
||||||
|
'segueGain': 'integer',
|
||||||
|
'fadeupPointCart': 'integer',
|
||||||
|
'fadeupPointLog': 'integer',
|
||||||
|
'fadeupGain': 'integer',
|
||||||
|
'fadedownPointCart': 'integer',
|
||||||
|
'fadedownPointLog': 'integer',
|
||||||
|
'fadedownGain': 'integer',
|
||||||
|
'duckUpGain': 'integer',
|
||||||
|
'duckDownGain': 'integer',
|
||||||
|
'talkStartPoint': 'integer',
|
||||||
|
'talkEndPoint': 'integer',
|
||||||
|
'hookMode': 'boolean',
|
||||||
|
'hookStartPoint': 'integer',
|
||||||
|
'hookEndPoint': 'integer',
|
||||||
|
'eventLength': 'integer',
|
||||||
|
'linkEventName': 'string',
|
||||||
|
'linkStartTime': 'time',
|
||||||
|
'linkStartSlop': 'integer',
|
||||||
|
'linkEndSlop': 'integer',
|
||||||
|
'linkId': 'integer',
|
||||||
|
'linkEmbedded': 'boolean',
|
||||||
|
'extStartTime': 'time',
|
||||||
|
'extLength': 'integer',
|
||||||
|
'extCartName': 'string',
|
||||||
|
'extData': 'string',
|
||||||
|
'extEventId': 'integer',
|
||||||
|
'extAnncType': 'string'
|
||||||
|
}
|
||||||
|
|
||||||
class RivWebPyApi_ListHandler(ContentHandler):
|
class RivWebPyApi_ListHandler(ContentHandler):
|
||||||
def __init__(self,base_tag,fields):
|
def __init__(self,base_tag,fields):
|
||||||
self.__output=[]
|
self.__output=[]
|
||||||
@ -313,6 +409,40 @@ class Cut(object):
|
|||||||
if(key in self.__values.keys()):
|
if(key in self.__values.keys()):
|
||||||
self.__values[key]=values[key]
|
self.__values[key]=values[key]
|
||||||
|
|
||||||
|
class Log(object):
|
||||||
|
def __init__(self,values={}):
|
||||||
|
if(len(values)==0):
|
||||||
|
self.__values={}
|
||||||
|
for key in LOG_FIELDS:
|
||||||
|
self.__values[key]=None
|
||||||
|
else:
|
||||||
|
self.__values=values
|
||||||
|
|
||||||
|
def values(self):
|
||||||
|
return self.__values
|
||||||
|
|
||||||
|
def setValues(self,values):
|
||||||
|
for key in values:
|
||||||
|
if(key in self.__values.keys()):
|
||||||
|
self.__values[key]=values[key]
|
||||||
|
|
||||||
|
class LogLine(object):
|
||||||
|
def __init__(self,values={}):
|
||||||
|
if(len(values)==0):
|
||||||
|
self.__values={}
|
||||||
|
for key in LOGLINE_FIELDS:
|
||||||
|
self.__values[key]=None
|
||||||
|
else:
|
||||||
|
self.__values=values
|
||||||
|
|
||||||
|
def values(self):
|
||||||
|
return self.__values
|
||||||
|
|
||||||
|
def setValues(self,values):
|
||||||
|
for key in values:
|
||||||
|
if(key in self.__values.keys()):
|
||||||
|
self.__values[key]=values[key]
|
||||||
|
|
||||||
class rivwebpyapi(object):
|
class rivwebpyapi(object):
|
||||||
"""
|
"""
|
||||||
Create a 'RivWebPyApi' object for accessing the Web API.
|
Create a 'RivWebPyApi' object for accessing the Web API.
|
||||||
@ -1399,7 +1529,8 @@ class rivwebpyapi(object):
|
|||||||
|
|
||||||
def ListLog(self,log_name):
|
def ListLog(self,log_name):
|
||||||
"""
|
"""
|
||||||
Returns the contents of a Rivendell log (list of dictionaries).
|
Returns the contents of a Rivendell log
|
||||||
|
(list of rivwebpyapi.LogLine objects).
|
||||||
|
|
||||||
Takes the following argument:
|
Takes the following argument:
|
||||||
|
|
||||||
@ -1426,91 +1557,20 @@ class rivwebpyapi(object):
|
|||||||
#
|
#
|
||||||
# Generate the output dictionary
|
# Generate the output dictionary
|
||||||
#
|
#
|
||||||
fields={
|
handler=RivWebPyApi_ListHandler(base_tag='logLine',
|
||||||
'line': 'integer',
|
fields=LOGLINE_FIELDS)
|
||||||
'id': 'integer',
|
|
||||||
'type': 'string',
|
|
||||||
'cartType': 'string',
|
|
||||||
'cartNumber': 'integer',
|
|
||||||
'cutNumber': 'integer',
|
|
||||||
'groupName': 'string',
|
|
||||||
'groupColor': 'string',
|
|
||||||
'title': 'string',
|
|
||||||
'artist': 'string',
|
|
||||||
'publisher': 'string',
|
|
||||||
'composer': 'string',
|
|
||||||
'album': 'string',
|
|
||||||
'label': 'string',
|
|
||||||
'year': 'integer',
|
|
||||||
'client': 'string',
|
|
||||||
'agency': 'string',
|
|
||||||
'conductor': 'string',
|
|
||||||
'userDefined': 'string',
|
|
||||||
'usageCode': 'integer',
|
|
||||||
'enforceLength': 'boolean',
|
|
||||||
'forcedLength': 'string',
|
|
||||||
'evergreen': 'boolean',
|
|
||||||
'source': 'string',
|
|
||||||
'timeType': 'string',
|
|
||||||
'startTime': 'time',
|
|
||||||
'transitionType': 'string',
|
|
||||||
'cutQuantity': 'integer',
|
|
||||||
'lastCutPlayed': 'integer',
|
|
||||||
'markerComment': 'string',
|
|
||||||
'markerLabel': 'string',
|
|
||||||
'description': 'string',
|
|
||||||
'isrc': 'string',
|
|
||||||
'isci': 'string',
|
|
||||||
'recordingMbId': 'string',
|
|
||||||
'releaseMbId': 'string',
|
|
||||||
'originUser': 'string',
|
|
||||||
'originDateTime': 'datetime',
|
|
||||||
'startPointCart': 'integer',
|
|
||||||
'startPointLog': 'integer',
|
|
||||||
'endPointCart': 'integer',
|
|
||||||
'endPointLog': 'integer',
|
|
||||||
'segueStartPointCart': 'integer',
|
|
||||||
'segueStartPointLog': 'integer',
|
|
||||||
'segueEndPointCart': 'integer',
|
|
||||||
'segueEndPointLog': 'integer',
|
|
||||||
'segueGain': 'integer',
|
|
||||||
'fadeupPointCart': 'integer',
|
|
||||||
'fadeupPointLog': 'integer',
|
|
||||||
'fadeupGain': 'integer',
|
|
||||||
'fadedownPointCart': 'integer',
|
|
||||||
'fadedownPointLog': 'integer',
|
|
||||||
'fadedownGain': 'integer',
|
|
||||||
'duckUpGain': 'integer',
|
|
||||||
'duckDownGain': 'integer',
|
|
||||||
'talkStartPoint': 'integer',
|
|
||||||
'talkEndPoint': 'integer',
|
|
||||||
'hookMode': 'boolean',
|
|
||||||
'hookStartPoint': 'integer',
|
|
||||||
'hookEndPoint': 'integer',
|
|
||||||
'eventLength': 'integer',
|
|
||||||
'linkEventName': 'string',
|
|
||||||
'linkStartTime': 'time',
|
|
||||||
'linkStartSlop': 'integer',
|
|
||||||
'linkEndSlop': 'integer',
|
|
||||||
'linkId': 'integer',
|
|
||||||
'linkEmbedded': 'boolean',
|
|
||||||
'extStartTime': 'time',
|
|
||||||
'extLength': 'integer',
|
|
||||||
'extCartName': 'string',
|
|
||||||
'extData': 'string',
|
|
||||||
'extEventId': 'integer',
|
|
||||||
'extAnncType': 'string'
|
|
||||||
}
|
|
||||||
handler=RivWebPyApi_ListHandler(base_tag='logLine',fields=fields)
|
|
||||||
xml.sax.parseString(r.text,handler)
|
xml.sax.parseString(r.text,handler)
|
||||||
|
out=handler.output()
|
||||||
return handler.output()
|
ret=[]
|
||||||
|
for item in out:
|
||||||
|
ret.append(LogLine(item))
|
||||||
|
return ret
|
||||||
|
|
||||||
def ListLogs(self,service_name='',log_name='',trackable=False,
|
def ListLogs(self,service_name='',log_name='',trackable=False,
|
||||||
filter_string='',recent=False):
|
filter_string='',recent=False):
|
||||||
"""
|
"""
|
||||||
Returns the metadata for a set of Rivendell logs
|
Returns the metadata for a set of Rivendell logs
|
||||||
(list of dictionaries).
|
(list of rivwebpyapi.Log objects).
|
||||||
|
|
||||||
Takes the following arguments:
|
Takes the following arguments:
|
||||||
|
|
||||||
@ -1561,29 +1621,13 @@ class rivwebpyapi(object):
|
|||||||
#
|
#
|
||||||
# Generate the output dictionary
|
# Generate the output dictionary
|
||||||
#
|
#
|
||||||
fields={
|
handler=RivWebPyApi_ListHandler(base_tag='log',fields=LOG_FIELDS)
|
||||||
'name': 'string',
|
|
||||||
'serviceName': 'string',
|
|
||||||
'description': 'string',
|
|
||||||
'originUserName': 'string',
|
|
||||||
'originDatetime': 'datetime',
|
|
||||||
'linkDatetime': 'datetime',
|
|
||||||
'modifiedDatetime': 'datetime',
|
|
||||||
'purgeDate': 'date',
|
|
||||||
'autoRefresh': 'boolean',
|
|
||||||
'startDate': 'date',
|
|
||||||
'endDate': 'date',
|
|
||||||
'scheduledTracks': 'integer',
|
|
||||||
'completedTracks': 'integer',
|
|
||||||
'musicLinks': 'integer',
|
|
||||||
'musicLinked': 'boolean',
|
|
||||||
'trafficLinks': 'integer',
|
|
||||||
'trafficLinked': 'boolean'
|
|
||||||
}
|
|
||||||
handler=RivWebPyApi_ListHandler(base_tag='log',fields=fields)
|
|
||||||
xml.sax.parseString(r.text,handler)
|
xml.sax.parseString(r.text,handler)
|
||||||
|
out=handler.output()
|
||||||
return handler.output()
|
ret=[]
|
||||||
|
for item in out:
|
||||||
|
ret.append(Log(item))
|
||||||
|
return ret
|
||||||
|
|
||||||
def ListSchedulerCodes(self):
|
def ListSchedulerCodes(self):
|
||||||
"""
|
"""
|
||||||
|
@ -76,83 +76,9 @@ except rivwebpyapi.RivWebPyError as err:
|
|||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
#
|
#
|
||||||
# Display the log list
|
# Display the log listing
|
||||||
#
|
#
|
||||||
for ll in loglines:
|
for ll in loglines:
|
||||||
print('line: '+str(ll['line']))
|
for key in ll.values():
|
||||||
print('id: '+str(ll['id']))
|
print(key+': '+str(ll.values()[key]))
|
||||||
print('type: '+str(ll['type']))
|
|
||||||
print('cartType: '+str(ll['cartType']))
|
|
||||||
print('cartNumber: '+str(ll['cartNumber']))
|
|
||||||
print('cutNumber: '+str(ll['cutNumber']))
|
|
||||||
print('groupName: '+str(ll['groupName']))
|
|
||||||
print('groupColor: '+str(ll['groupColor']))
|
|
||||||
print('title: '+str(ll['title']))
|
|
||||||
print('artist: '+str(ll['artist']))
|
|
||||||
print('publisher: '+str(ll['publisher']))
|
|
||||||
print('composer: '+str(ll['composer']))
|
|
||||||
print('album: '+str(ll['album']))
|
|
||||||
print('label: '+str(ll['label']))
|
|
||||||
print('year: '+str(ll['year']))
|
|
||||||
print('client: '+str(ll['client']))
|
|
||||||
print('agency: '+str(ll['agency']))
|
|
||||||
print('conductor: '+str(ll['conductor']))
|
|
||||||
print('userDefined: '+str(ll['userDefined']))
|
|
||||||
print('usageCode: '+str(ll['usageCode']))
|
|
||||||
print('enforceLength: '+str(ll['enforceLength']))
|
|
||||||
print('forcedLength: '+str(ll['forcedLength']))
|
|
||||||
print('evergreen: '+str(ll['evergreen']))
|
|
||||||
print('source: '+str(ll['source']))
|
|
||||||
print('timeType: '+str(ll['timeType']))
|
|
||||||
print('startTime: '+str(ll['startTime']))
|
|
||||||
print('transitionType: '+str(ll['transitionType']))
|
|
||||||
print('cutQuantity: '+str(ll['cutQuantity']))
|
|
||||||
print('lastCutPlayed: '+str(ll['lastCutPlayed']))
|
|
||||||
print('markerComment: '+str(ll['markerComment']))
|
|
||||||
print('markerLabel: '+str(ll['markerComment']))
|
|
||||||
print('description: '+str(ll['description']))
|
|
||||||
print('isrc: '+str(ll['isrc']))
|
|
||||||
print('isci: '+str(ll['isci']))
|
|
||||||
print('recordingMbId: '+str(ll['recordingMbId']))
|
|
||||||
print('releaseMbId: '+str(ll['releaseMbId']))
|
|
||||||
print('originUser: '+str(ll['originUser']))
|
|
||||||
print('originDateTime: '+str(ll['originDateTime']))
|
|
||||||
print('startPointCart: '+str(ll['startPointCart']))
|
|
||||||
print('startPointLog: '+str(ll['startPointLog']))
|
|
||||||
print('endPointCart: '+str(ll['endPointCart']))
|
|
||||||
print('endPointLog: '+str(ll['endPointLog']))
|
|
||||||
print('segueStartPointCart: '+str(ll['segueStartPointCart']))
|
|
||||||
print('segueStartPointLog: '+str(ll['segueStartPointCart']))
|
|
||||||
print('segueEndPointCart: '+str(ll['segueEndPointCart']))
|
|
||||||
print('segueEndPointLog: '+str(ll['segueEndPointLog']))
|
|
||||||
print('segueGain: '+str(ll['segueGain']))
|
|
||||||
print('fadeupPointCart: '+str(ll['fadeupPointCart']))
|
|
||||||
print('fadeupPointLog: '+str(ll['fadeupPointLog']))
|
|
||||||
print('fadeupGain: '+str(ll['fadeupGain']))
|
|
||||||
print('fadedownPointCart: '+str(ll['fadedownPointCart']))
|
|
||||||
print('fadedownPointLog: '+str(ll['fadedownPointLog']))
|
|
||||||
print('fadedownGain: '+str(ll['fadedownGain']))
|
|
||||||
print('duckUpGain: '+str(ll['duckUpGain']))
|
|
||||||
print('duckDownGain: '+str(ll['duckDownGain']))
|
|
||||||
print('talkStartPoint: '+str(ll['talkStartPoint']))
|
|
||||||
print('talkEndPoint: '+str(ll['talkEndPoint']))
|
|
||||||
print('hookMode: '+str(ll['hookMode']))
|
|
||||||
print('hookStartPoint: '+str(ll['hookStartPoint']))
|
|
||||||
print('hookEndPoint: '+str(ll['hookEndPoint']))
|
|
||||||
print('eventLength: '+str(ll['eventLength']))
|
|
||||||
print('linkEventName: '+str(ll['linkEventName']))
|
|
||||||
print('linkStartTime: '+str(ll['linkStartTime']))
|
|
||||||
print('linkStartSlop: '+str(ll['linkStartSlop']))
|
|
||||||
print('linkEndSlop: '+str(ll['linkEndSlop']))
|
|
||||||
print('linkId: '+str(ll['linkId']))
|
|
||||||
print('linkEmbedded: '+str(ll['linkEmbedded']))
|
|
||||||
print('extStartTime: '+str(ll['extStartTime']))
|
|
||||||
print('extLength: '+str(ll['extLength']))
|
|
||||||
print('extCartName: '+str(ll['extCartName']))
|
|
||||||
print('extData: '+str(ll['extData']))
|
|
||||||
print('extEventId: '+str(ll['extEventId']))
|
|
||||||
print('extAnncType: '+str(ll['extAnncType']))
|
|
||||||
print('')
|
print('')
|
||||||
|
|
||||||
|
|
||||||
# print(': '+ll[''])
|
|
||||||
|
@ -84,23 +84,9 @@ except rivwebpyapi.RivWebPyError as err:
|
|||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
#
|
#
|
||||||
# Display the log list
|
# Display the list of logs
|
||||||
#
|
#
|
||||||
for log in logs:
|
for log in logs:
|
||||||
print('name: '+log['name'])
|
for key in log.values():
|
||||||
print('serviceName: '+log['serviceName'])
|
print(key+': '+str(log.values()[key]))
|
||||||
print('description: '+log['description'])
|
|
||||||
print('originUserName: '+log['originUserName'])
|
|
||||||
print('originDatetime: '+str(log['originDatetime']))
|
|
||||||
print('linkDatetime: '+str(log['linkDatetime']))
|
|
||||||
print('modifiedDatetime: '+str(log['modifiedDatetime']))
|
|
||||||
print('startDate: '+str(log['startDate']))
|
|
||||||
print('endDate: '+str(log['endDate']))
|
|
||||||
print('purgeDate: '+str(log['purgeDate']))
|
|
||||||
print('scheduledTracks: '+str(log['scheduledTracks']))
|
|
||||||
print('completedTracks: '+str(log['completedTracks']))
|
|
||||||
print('musicLinks: '+str(log['musicLinks']))
|
|
||||||
print('musicLinked: '+str(log['musicLinked']))
|
|
||||||
print('trafficLinks: '+str(log['trafficLinks']))
|
|
||||||
print('trafficLinked: '+str(log['trafficLinked']))
|
|
||||||
print('')
|
print('')
|
||||||
|
Loading…
x
Reference in New Issue
Block a user