257 lines
11 KiB
Python
257 lines
11 KiB
Python
|
|
class show():
|
|
|
|
def __init__(self):
|
|
pass
|
|
|
|
def process(self, metadata, showload, seriesid):
|
|
dataresult = []
|
|
tableresult = []
|
|
if showload == None:
|
|
pass
|
|
else:
|
|
networkid = None
|
|
try:
|
|
network = {}
|
|
for key, value in showload['network'].items():
|
|
if key == 'country':
|
|
for key, value in showload['network']['country'].items():
|
|
if key == 'name':
|
|
newkey = 'country'
|
|
network[newkey] = showload['network']['country'][key]
|
|
else:
|
|
newkey = 'country' + key
|
|
network[newkey] = showload['network']['country'][key]
|
|
else:
|
|
newkey = 'network' + key
|
|
network[newkey] = showload['network'][key]
|
|
except:
|
|
#print('Failed to insert network information.')
|
|
showload['networkid'] = 0
|
|
else:
|
|
showload.pop('network')
|
|
showload['networkid'] = network['networkid']
|
|
dataresult.append(network)
|
|
tableresult.append(metadata.tables['[updates].tvnetworknewvals'])
|
|
#insertresult = insert_data(network, tables[4])
|
|
try:
|
|
webchannel = {}
|
|
for key, value in showload['webChannel'].items():
|
|
if key == 'country':
|
|
if showload['webChannel'][key] is None:
|
|
pass
|
|
else:
|
|
for key, value in showload['webChannel']['country'].items():
|
|
newkey = 'webChannelcountry'+ key
|
|
webchannel[newkey] = value
|
|
else:
|
|
webchannel[key] = value
|
|
if key == 'name':
|
|
newkey = 'webChannel' + key
|
|
webhchannel[newkey] = value
|
|
if key == 'timezone':
|
|
newkey = 'webChannelcountry'+ key
|
|
webchannel[newkey] = value
|
|
except:
|
|
#print('Failed to insert webchannel information.')
|
|
showload['webchannelid'] = '0'
|
|
else:
|
|
showload.pop('webChannel')
|
|
showload['webchannelid'] = webchannel['id']
|
|
webchannel['webchannelname'] = webchannel['name']
|
|
webchannel['networkid'] = webchannel['id']
|
|
try:
|
|
dataresult.append(webchannel)
|
|
tableresult.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.')
|
|
try:
|
|
showload['seriesid'] = showload['id']
|
|
except:
|
|
pass
|
|
|
|
#print('TV Show: ' + showload['seriesname'])
|
|
|
|
try:
|
|
if showload['image']:
|
|
for key, value in showload['image'].items():
|
|
newkey = key + 'image'
|
|
showload[newkey] = value
|
|
showload.pop('image')
|
|
else:
|
|
showload.pop('image')
|
|
except:
|
|
pass
|
|
|
|
try:
|
|
if showload['externals']:
|
|
for key, value in showload['externals'].items():
|
|
showload[key] = value
|
|
showload.pop('externals')
|
|
else:
|
|
showload.pop('externals')
|
|
except KeyError as e:
|
|
pass
|
|
|
|
try:
|
|
if showload['rating']:
|
|
for key, value in showload['rating'].items():
|
|
showload['rating'] = value
|
|
|
|
if showload['schedule']:
|
|
showload['time'] = showload['schedule']['time']
|
|
showload['days'] = ", ".join(showload['schedule']['days'])
|
|
showload.pop('schedule')
|
|
except KeyError as e:
|
|
pass
|
|
|
|
try:
|
|
for key, value in showload['_links']['self'].items():
|
|
showload[key] = value
|
|
showload.pop('_links')
|
|
except KeyError as e:
|
|
pass
|
|
else:
|
|
showload.pop('id')
|
|
|
|
showload['genres'] = ", ".join(showload['genres'])
|
|
|
|
# Finish transforming to match table columns
|
|
showload['seriesname'] = showload.pop('name')
|
|
showload['tvrageid'] = showload.pop('tvrage')
|
|
showload['tvdbid'] = showload.pop('thetvdb')
|
|
showload['imdbid'] = showload.pop('imdb')
|
|
showload['serieslanguage'] = showload.pop('language')
|
|
showload['seriesstatus'] = showload.pop('status')
|
|
showload['airdays'] = showload.pop('days')
|
|
showload['airtime'] = showload.pop('time')
|
|
showload['showtype'] = showload.pop('type')
|
|
showload['overview'] = showload.pop('summary')
|
|
showload['showurl'] = showload.pop('url')
|
|
showload['apilink'] = showload.pop('href')
|
|
showload['officialsite'] = showload.pop('officialSite')
|
|
|
|
results = []
|
|
results.append([dataresult, tableresult, showload])
|
|
#results.append(tableresult)
|
|
#results.append(showload)
|
|
return (results)
|
|
|
|
|
|
def __del__(self):
|
|
pass
|
|
|
|
class cast():
|
|
def __init__(self):
|
|
pass
|
|
|
|
def process(self, cdata, seriesid):
|
|
datalist = {}
|
|
datalist['actors'] = []
|
|
datalist['characters'] = []
|
|
try:
|
|
castload = json.loads(cdata)
|
|
for idx, castdata in enumerate(castload):
|
|
actordata = {}
|
|
characterdata = {}
|
|
tcharacterdata = castload[idx]['character']
|
|
tactordata = castload[idx]['person']
|
|
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']
|
|
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']
|
|
except Exception as e:
|
|
print('Unable to process character information. -> ' + str(e))
|
|
|
|
datalist['characters'].append(characterdata)
|
|
datalist['actors'].append(actordata)
|
|
linkdata = {}
|
|
linkdata['actorid'] = actordata['actorid']
|
|
linkdata['characterid'] = characterdata['characterid']
|
|
#return(datalist)
|
|
except Exception as e:
|
|
#print('Line 389: ' + str(e))
|
|
pass
|
|
else:
|
|
return(datalist)
|
|
def __del__(self):
|
|
pass
|
|
|
|
class Episode():
|
|
|
|
def __init__(self):
|
|
pass
|
|
|
|
def process(self, epload, seriesid):
|
|
if epload:
|
|
eplist = []
|
|
try:
|
|
for epdata in epload:
|
|
epdata['seriesid'] = seriesid
|
|
if epdata['image']:
|
|
for key, value in epdata['image'].items():
|
|
newkey = key + 'image'
|
|
epdata[newkey] = value
|
|
epdata.pop('image')
|
|
else:
|
|
epdata['mediumimage'] = 'None'
|
|
epdata['originalimage'] = 'None'
|
|
epdata.pop('image')
|
|
|
|
for key, value in epdata['_links']['self'].items():
|
|
epdata['eplink'] = value
|
|
epdata.pop('_links')
|
|
|
|
epdata['episodeid'] = epdata.pop('id')
|
|
epdata['episodename'] = epdata.pop('name')
|
|
epdata['episodesummary'] = epdata.pop('summary')
|
|
epdata['episodenumber'] = epdata.pop('number')
|
|
eplist.append(epdata)
|
|
return eplist
|
|
except:
|
|
print('Unable to import episode data for for seriesid: ' + str(seriesid))
|
|
else:
|
|
return None
|
|
|
|
def __del__(self):
|
|
pass
|