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:
Fred Gleason 2021-12-11 13:16:15 -05:00
parent dd3cee96d4
commit f8f0b937bc
4 changed files with 159 additions and 196 deletions

View File

@ -22743,3 +22743,10 @@
* Modified the 'AddCut()', 'ListCut()' and 'ListCuts()' methods
to use the 'Cut' class in the 'rivwebapi' 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.

View File

@ -121,6 +121,102 @@ CUT_FIELDS={
'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):
def __init__(self,base_tag,fields):
self.__output=[]
@ -313,6 +409,40 @@ class Cut(object):
if(key in self.__values.keys()):
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):
"""
Create a 'RivWebPyApi' object for accessing the Web API.
@ -1399,7 +1529,8 @@ class rivwebpyapi(object):
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:
@ -1426,91 +1557,20 @@ class rivwebpyapi(object):
#
# Generate the output dictionary
#
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'
}
handler=RivWebPyApi_ListHandler(base_tag='logLine',fields=fields)
handler=RivWebPyApi_ListHandler(base_tag='logLine',
fields=LOGLINE_FIELDS)
xml.sax.parseString(r.text,handler)
return handler.output()
out=handler.output()
ret=[]
for item in out:
ret.append(LogLine(item))
return ret
def ListLogs(self,service_name='',log_name='',trackable=False,
filter_string='',recent=False):
"""
Returns the metadata for a set of Rivendell logs
(list of dictionaries).
(list of rivwebpyapi.Log objects).
Takes the following arguments:
@ -1561,29 +1621,13 @@ class rivwebpyapi(object):
#
# Generate the output dictionary
#
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)
handler=RivWebPyApi_ListHandler(base_tag='log',fields=LOG_FIELDS)
xml.sax.parseString(r.text,handler)
return handler.output()
out=handler.output()
ret=[]
for item in out:
ret.append(Log(item))
return ret
def ListSchedulerCodes(self):
"""

View File

@ -76,83 +76,9 @@ except rivwebpyapi.RivWebPyError as err:
sys.exit(1)
#
# Display the log list
# Display the log listing
#
for ll in loglines:
print('line: '+str(ll['line']))
print('id: '+str(ll['id']))
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']))
for key in ll.values():
print(key+': '+str(ll.values()[key]))
print('')
# print(': '+ll[''])

View File

@ -84,23 +84,9 @@ except rivwebpyapi.RivWebPyError as err:
sys.exit(1)
#
# Display the log list
# Display the list of logs
#
for log in logs:
print('name: '+log['name'])
print('serviceName: '+log['serviceName'])
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']))
for key in log.values():
print(key+': '+str(log.values()[key]))
print('')