2021-12-06 Fred Gleason <fredg@paravelsystems.com>

* Added an 'AddCut()' method to the 'rivwebpyapi' API.

Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
This commit is contained in:
Fred Gleason
2021-12-06 12:42:00 -05:00
parent ab28750a5a
commit 089da97031
4 changed files with 210 additions and 1 deletions

View File

@@ -211,6 +211,99 @@ class rivwebpyapi(object):
self.__connection_username=username
self.__connection_password=password
##########################
def AddCut(self,cart_number):
"""
Add a new cut to an existing audio cart. Returns the metadata of
the newly created cut (list of dictionaries).
Takes the following argument:
cart_number - The number of the desired cart, in the range
1 - 999999 (integer)
"""
if((cart_number<1)or(cart_number>999999)):
raise ValueError('invalid cart number')
#
# Build the WebAPI arguments
#
postdata={
'COMMAND': '10',
'LOGIN_NAME': self.__connection_username,
'PASSWORD': self.__connection_password,
'CART_NUMBER': str(cart_number)
}
#
# Fetch the XML
#
r=requests.post(self.__connection_url,data=postdata)
if(r.status_code!=requests.codes.ok):
r.raise_for_status()
#
# Generate the output dictionary
#
fields={
'cutName': 'string',
'cartNumber': 'integer',
'cutNumber': 'integer',
'evergreen': 'boolean',
'description': 'string',
'outcue': 'string',
'isrc': 'string',
'isci': 'string',
'recordingMbId': 'string',
'releaseMbId': 'string',
'length': 'integer',
'originDatetime': 'datetime',
'startDatetime': 'datetime',
'endDatetime': 'datetime',
'sun': 'boolean',
'mon': 'boolean',
'tue': 'boolean',
'wed': 'boolean',
'thu': 'boolean',
'fri': 'boolean',
'sat': 'boolean',
'startDaypart': 'time',
'endDaypart': 'time',
'originName': 'string',
'originLoginName': 'string',
'sourceHostname': 'string',
'weight': 'integer',
'lastPlayDatetime': 'datetime',
'playCounter': 'integer',
'codingFormat': 'integer',
'sampleRate': 'integer',
'bitRate': 'integer',
'channels': 'integer',
'playGain': 'integer',
'startPoint': 'integer',
'endPoint': 'integer',
'fadeupPoint': 'integer',
'fadedownPoint': 'integer',
'segueStartPoint': 'integer',
'segueEndPoint': 'integer',
'segueGain': 'integer',
'hookStartPoint': 'integer',
'hookEndPoint': 'integer',
'talkStartPoint': 'integer',
'talkEndPoint': 'integer'
}
handler=RivWebPyApi_ListHandler(base_tag='cut',fields=fields)
xml.sax.parseString(r.text,handler)
return handler.output()
##########################
def ListCart(self,cart_number,include_cuts=False):
"""
Returns the metadata associated with a Rivendell cart