105 lines
4.9 KiB
Python
105 lines
4.9 KiB
Python
from sqlalchemy.sql.expression import false
|
|
|
|
class cast():
|
|
|
|
def __init__(self):
|
|
pass
|
|
|
|
def process(self, castdata, seriesid):
|
|
datalist = {}
|
|
linkdata = {}
|
|
datalist['actors'] = []
|
|
datalist['characters'] = []
|
|
linklist = []
|
|
for castmember in castdata:
|
|
actordata = {}
|
|
characterdata = {}
|
|
tcharacterdata = castmember['character']
|
|
tactordata = castmember['person']
|
|
tselfdata = castmember['self']
|
|
tvoicedata = castmember['voice']
|
|
try:
|
|
for key, value in tactordata.items():
|
|
if tactordata[key] is None:
|
|
pass
|
|
else:
|
|
if key == 'image':
|
|
for key, value in tactordata['image'].items():
|
|
newkey = key + 'image'
|
|
actordata[newkey] = tactordata['image'][key]
|
|
elif key == '_links':
|
|
for key, value in tactordata['_links']['self'].items():
|
|
actordata['apilink'] = tactordata['_links']['self'][key]
|
|
elif key == 'country':
|
|
for key, value in tactordata['country'].items():
|
|
newkey = 'country' + key
|
|
actordata[newkey] = tactordata['country'][key]
|
|
else:
|
|
actordata[key] = tactordata[key]
|
|
actordata['actorid'] = tactordata['id']
|
|
actordata['actorname'] = tactordata['name']
|
|
if tactordata['country'] == None:
|
|
actordata['countryname'] = None
|
|
actordata['countrytimezone'] = None
|
|
actordata['countrycode'] = None
|
|
if tactordata['birthday'] == None:
|
|
actordata['birthday'] = None
|
|
if tactordata['deathday'] == None:
|
|
actordata['deathday'] = None
|
|
if tactordata['gender'] == None:
|
|
actordata['gender'] = None
|
|
if tactordata['image'] == None:
|
|
actordata['mediumimage'] = None
|
|
actordata['originalimage'] = None
|
|
if tactordata['_links'] == None:
|
|
actordata['apilink'] = None
|
|
except:
|
|
print('Unable to process actor information.')
|
|
else:
|
|
actordata.pop('id')
|
|
|
|
try:
|
|
if tcharacterdata:
|
|
for key, value in tcharacterdata.items():
|
|
if key is None:
|
|
pass
|
|
else:
|
|
if tcharacterdata['image']:
|
|
characterdata['mediumimage'] = tcharacterdata['image']['medium']
|
|
characterdata['originalimage'] = tcharacterdata['image']['original']
|
|
characterdata['apilink'] = tcharacterdata['_links']['self']['href']
|
|
characterdata['tvmazeilink'] = tcharacterdata['url']
|
|
characterdata['characterid'] = tcharacterdata['id']
|
|
characterdata['charactername'] = tcharacterdata['name']
|
|
characterdata['seriesid'] = seriesid
|
|
characterdata['actorid'] = actordata['actorid']
|
|
if tcharacterdata['image'] == None:
|
|
characterdata['mediumimage'] = None
|
|
characterdata['originalimage'] = None
|
|
if tactordata['_links'] == None:
|
|
actordata['apilink'] = None
|
|
if not tselfdata:
|
|
characterdata['self'] = 0
|
|
else:
|
|
characterdata['self'] = 1
|
|
if not tvoicedata:
|
|
characterdata['voice'] = 0
|
|
else:
|
|
characterdata['voice'] = 1
|
|
except Exception as e:
|
|
print('Unable to process character information. -> ' + str(e))
|
|
datalist['characters'].append(characterdata)
|
|
datalist['actors'].append(actordata)
|
|
linkdata = {'actorid': actordata['actorid'], 'characterid': characterdata['characterid']}
|
|
linklist.append(linkdata)
|
|
return(datalist, linklist)
|
|
# except Exception as e:
|
|
# print('Unable to process cast data: ' + str(e))
|
|
# else:
|
|
# return(datalist, linklist)
|
|
|
|
def listcredits(self, seriesid):
|
|
pass
|
|
|
|
def __del__(self):
|
|
pass |