Files
new_dbsync/api/tvmaze/series.py
T
2025-05-20 12:02:07 -04:00

157 lines
6.4 KiB
Python

class tvshow():
def __init__(self):
pass
def process(self, metadata, seriesdata, seriesid):
webresult = []
networkresult = []
webworkchannel = []
networkchannel = []
if seriesdata == None:
pass
else:
networkid = None
try:
network = {}
for key, value in seriesdata['network'].items():
if key == 'country':
for key, value in seriesdata['network']['country'].items():
if key == 'name':
newkey = 'country'
network[newkey] = seriesdata['network']['country'][key]
else:
newkey = 'country' + key
network[newkey] = seriesdata['network']['country'][key]
else:
newkey = 'network' + key
network[newkey] = seriesdata['network'][key]
except:
#print('Failed to insert network information.')
#seriesdata['networkid'] = '0'
pass
else:
seriesdata.pop('network')
seriesdata['networkid'] = network['networkid']
networkresult.append(network)
networkchannel.append(metadata.tables['updates.tvnetworknewvals'])
#insertresult = insert_data(network, tables[4])
try:
webchannel = {}
if seriesdata['webChannel']:
for key, value in seriesdata['webChannel'].items():
if key == 'country':
if seriesdata['webChannel'][key] is None:
pass
else:
for key, value in seriesdata['webChannel']['country'].items():
newkey = 'webChannelcountry'+ key
webchannel[newkey] = value
else:
webchannel[key] = value
if key == 'name':
newkey = 'webChannel' + key
webchannel[newkey] = value
if key == 'timezone':
newkey = 'webChannelcountry'+ key
webchannel[newkey] = value
except:
#print('Failed to insert webchannel information.')
seriesdata['webchannelid'] = '0'
pass
else:
#seriesdata.pop('webChannel')
webchannel['id'] = '0'
seriesdata['webchannelid'] = webchannel['id']
webchannel['name'] = 'Not Applicable'
webchannel['webchannelname'] = webchannel['name']
#webchannel['networkid'] = webchannel['id']
try:
webresult.append(webchannel)
webworkchannel.append(metadata.tables['updates.tvwebchannelnewvals'])
#insertresult = insert_data(webchannel, tables[5])
except sqlalchemy.exc.IntegrityError as e:
pass
except Exception as e:
#print('Failed to insert webchannel information.')
pass
try:
seriesdata['seriesid'] = seriesdata['id']
except:
pass
#print('TV Show: ' + seriesdata['seriesname'])
try:
if seriesdata['image']:
for key, value in seriesdata['image'].items():
newkey = key + 'image'
seriesdata[newkey] = value
seriesdata.pop('image')
else:
seriesdata.pop('image')
except:
pass
try:
if seriesdata['externals']:
for key, value in seriesdata['externals'].items():
seriesdata[key] = value
seriesdata.pop('externals')
else:
seriesdata.pop('externals')
except KeyError as e:
pass
try:
if seriesdata['rating']:
for key, value in seriesdata['rating'].items():
seriesdata['rating'] = value
if seriesdata['schedule']:
seriesdata['time'] = seriesdata['schedule']['time']
seriesdata['days'] = ", ".join(seriesdata['schedule']['days'])
seriesdata.pop('schedule')
except KeyError as e:
pass
try:
for key, value in seriesdata['_links']['self'].items():
seriesdata[key] = value
seriesdata.pop('_links')
except KeyError as e:
pass
else:
seriesdata.pop('id')
if seriesdata['genres']:
seriesdata['genres'] = ", ".join(seriesdata['genres'])
# Finish transforming to match table columns
seriesdata['seriesname'] = seriesdata.pop('name')
seriesdata['tvrageid'] = seriesdata.pop('tvrage')
seriesdata['tvdbid'] = seriesdata.pop('thetvdb')
seriesdata['imdbid'] = seriesdata.pop('imdb')
seriesdata['serieslanguage'] = seriesdata.pop('language')
seriesdata['seriesstatus'] = seriesdata.pop('status')
seriesdata['airdays'] = seriesdata.pop('days')
seriesdata['airtime'] = seriesdata.pop('time')
seriesdata['showtype'] = seriesdata.pop('type')
seriesdata['overview'] = seriesdata.pop('summary')
seriesdata['showurl'] = seriesdata.pop('url')
seriesdata['apilink'] = seriesdata.pop('href')
seriesdata['officialsite'] = seriesdata.pop('officialSite')
results = {'networkdata': networkresult, 'networktable': networkchannel,
'webdata': webresult, 'webtable': webchannel,
'seriesdata': seriesdata}
#results.append(tableresult)
#results.append(seriesdata)
return (results)
def __del__(self):
pass