repo migration
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
|
||||
class cast():
|
||||
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
def listcast(self, seriesid):
|
||||
pass
|
||||
|
||||
def listcredits(self, seriesid):
|
||||
pass
|
||||
|
||||
def __del__(self):
|
||||
pass
|
||||
@@ -0,0 +1,15 @@
|
||||
|
||||
class crew():
|
||||
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
def listcrew(self, seriesid):
|
||||
pass
|
||||
|
||||
def listcredits(self, seriesid):
|
||||
pass
|
||||
|
||||
def __del__(self):
|
||||
pass
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
|
||||
class episodes():
|
||||
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
def fulllisting(self, seriesid):
|
||||
pass
|
||||
|
||||
def seasonlist(self, seriesid, seasonnumber):
|
||||
pass
|
||||
|
||||
def eplist(self, seriesid, seasonnumber, episodenumber):
|
||||
pass
|
||||
|
||||
def __del__(self):
|
||||
pass
|
||||
|
||||
@@ -0,0 +1,256 @@
|
||||
|
||||
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
|
||||
@@ -0,0 +1,18 @@
|
||||
|
||||
class series():
|
||||
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
def search(self, searchquery):
|
||||
pass
|
||||
|
||||
def singlesearch(self, searchquery):
|
||||
pass
|
||||
|
||||
def idsearch(self, searchid):
|
||||
pass
|
||||
|
||||
def __del__(self):
|
||||
pass
|
||||
|
||||
@@ -0,0 +1,231 @@
|
||||
import requests
|
||||
import json
|
||||
|
||||
class Processor():
|
||||
def __init__(self):
|
||||
global loginurl
|
||||
global refreshurl
|
||||
global seriesurl
|
||||
global actorurl
|
||||
global episodeurl
|
||||
global episodequeryurl
|
||||
global episodeparamurl
|
||||
global episodesummaryurl
|
||||
global filterurl
|
||||
global filterparamurl
|
||||
global imageurl
|
||||
global imagequeryurl
|
||||
global imageparamurl
|
||||
global username
|
||||
global apikey
|
||||
global userkey
|
||||
global jwtoken
|
||||
global refreshtoken
|
||||
loginurl = 'https://api.thetvdb.com/login'
|
||||
refreshurl = 'https://api.thetvdb.com/refresh_token'
|
||||
seriesurl = 'https://api.thetvdb.com/series/{id}'
|
||||
episodeidurl = 'https://api.thetvdb.com/episodes/{id}'
|
||||
actorurl='https://api.thetvdb.com/series/{id}/actors'
|
||||
episodeurl='https://api.thetvdb.com/series/{id}/episodes'
|
||||
episodequeryurl='https://api.thetvdb.com/series/{id}/episodes/query'
|
||||
episodeparamurl='https://api.thetvdb.com/series/{id}/episodes/query/params'
|
||||
episodesummaryurl='https://api.thetvdb.com/series/{id}/episodes/summary'
|
||||
filterurl='https://api.thetvdb.com/series/{id}/filter'
|
||||
filterparamurl='https://api.thetvdb.com/series/{id}/filter/params'
|
||||
imageurl='https://api.thetvdb.com/series/{id}/images'
|
||||
imagequeryurl='https://api.thetvdb.com/series/{id}/images/query'
|
||||
imageparamurl='https://api.thetvdb.com/series/{id}/images/query/params'
|
||||
username = 'wpjonesnhcjc'
|
||||
apikey = 'NACCS2LUWCFEFABX'
|
||||
userkey = 'UUSZHUQ8CY7N31CF'
|
||||
#jwtoken = login.run(self)
|
||||
|
||||
def __del__(self):
|
||||
pass
|
||||
|
||||
class login():
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
def run(self):
|
||||
with requests.post(loginurl, json={"username": username, "apikey": apikey, "userkey": userkey}) as r:
|
||||
response = r.json()
|
||||
jwtoken = response['token']
|
||||
#refreshtoken = self.refresh(jwtoken)
|
||||
return(jwtoken)
|
||||
|
||||
def refresh(self, token):
|
||||
token= "Bearer " + token
|
||||
with requests.get(refreshurl, headers={'Authorization': token}) as r:
|
||||
response = r.json()
|
||||
refreshtoken = response['token']
|
||||
return(refreshtoken)
|
||||
|
||||
class loadjson():
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
def loadseries(seriesid, token):
|
||||
url = seriesurl.replace('{id}', seriesid)
|
||||
#print(str(url))
|
||||
seriesdata = loadjson.load(url, token)
|
||||
return(seriesdata)
|
||||
|
||||
def loadepisodes(seriesid, token):
|
||||
url = episodeurl.replace('{id}', seriesid)
|
||||
#print(str(url))
|
||||
seriesdata = loadjson.load(url, token)
|
||||
return(seriesdata)
|
||||
|
||||
def load(url, token):
|
||||
token= "Bearer " + token
|
||||
with requests.get(url, headers={'Authorization': token}) as r:
|
||||
response = r.json()
|
||||
return(response)
|
||||
|
||||
def insert(self, updater, tablename):
|
||||
for key, value in updater.items():
|
||||
ins = tablename.insert().values( key = value )
|
||||
print(str(ins))
|
||||
result = engine.execute(ins)
|
||||
|
||||
def populate(self, jsonurl, seriesid):
|
||||
try:
|
||||
with urllib.request.urlopen(jsonurl) as response:
|
||||
html = response.read()
|
||||
jsoninput = html
|
||||
return jsoninput
|
||||
except:
|
||||
pass
|
||||
|
||||
def __del__(self):
|
||||
pass
|
||||
|
||||
class showprocess():
|
||||
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
def process(self, metadata, tempshowload):
|
||||
dataresult = []
|
||||
tableresult = []
|
||||
if tempshowload == None:
|
||||
pass
|
||||
else:
|
||||
showload = json.loads(tempshowload)
|
||||
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']
|
||||
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'])
|
||||
|
||||
if showload['image']:
|
||||
for key, value in showload['image'].items():
|
||||
newkey = key + 'image'
|
||||
showload[newkey] = value
|
||||
showload.pop('image')
|
||||
else:
|
||||
showload.pop('image')
|
||||
|
||||
if showload['externals']:
|
||||
for key, value in showload['externals'].items():
|
||||
showload[key] = value
|
||||
showload.pop('externals')
|
||||
else:
|
||||
showload.pop('externals')
|
||||
|
||||
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')
|
||||
|
||||
for key, value in showload['_links']['self'].items():
|
||||
showload[key] = value
|
||||
showload.pop('_links')
|
||||
|
||||
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)
|
||||
results.append(tableresult)
|
||||
results.append(showload)
|
||||
return (results)
|
||||
@@ -0,0 +1,105 @@
|
||||
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
|
||||
@@ -0,0 +1,42 @@
|
||||
|
||||
class crew():
|
||||
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
def process(self, crewdata, seriesid):
|
||||
crewlist = []
|
||||
try:
|
||||
for crewmember in crewdata:
|
||||
cmember = {}
|
||||
cmember['seriesid'] = seriesid
|
||||
cmember['crewid'] = crewmember['person']['id']
|
||||
cmember['type'] = crewmember['type']
|
||||
cmember['url'] = crewmember['person']['url']
|
||||
cmember['name'] = crewmember['person']['name']
|
||||
cmember['countryid'] = '0'
|
||||
cmember['birthday'] = crewmember['person']['birthday']
|
||||
cmember['deathday'] = crewmember['person']['deathday']
|
||||
cmember['gender'] = crewmember['person']['gender']
|
||||
if crewmember['person']['image']:
|
||||
cmember['medium'] = crewmember['person']['image']['medium']
|
||||
cmember['original'] = crewmember['person']['image']['original']
|
||||
else:
|
||||
cmember['medium'] = None
|
||||
cmember['original'] = None
|
||||
if crewmember['person']['_links']:
|
||||
cmember['apilink'] = crewmember['person']['_links']['self']['href']
|
||||
else:
|
||||
cmember['apilink'] = None
|
||||
crewlist.append(cmember)
|
||||
except Exception as e:
|
||||
print('Unable to process crew information for seriesid: ' + str(seriesid))
|
||||
else:
|
||||
return(crewlist)
|
||||
|
||||
def listcredits(self, seriesid):
|
||||
pass
|
||||
|
||||
def __del__(self):
|
||||
pass
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
import csv
|
||||
class episodes():
|
||||
|
||||
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
def update_episodes(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)
|
||||
except:
|
||||
print('Unable to import episode data for for seriesid: ' + str(seriesid))
|
||||
else:
|
||||
return(eplist)
|
||||
|
||||
def fulllisting(self, seriesid):
|
||||
pass
|
||||
|
||||
def seasonlist(self, seriesid, seasonnumber):
|
||||
pass
|
||||
|
||||
def process_episodes(self, episoderesults, seriesid, rootdir):
|
||||
queryrows = []
|
||||
if episoderesults:
|
||||
resultlength = len(episoderesults)
|
||||
if resultlength > 0:
|
||||
for idx, episode in enumerate(episoderesults):
|
||||
if episoderesults[idx]['episodesummary'] is None:
|
||||
episoderesults[idx]['episodesummary'] = 'No summary at this time.'
|
||||
querylist = '''INSERT INTO updates.newepdata (episodeid, seriesid, season, episodenumber, episodename, airdate, airtime, episodesummary, airstamp, runtime, eplink, mediumimage, url, originalimage) VALUES\n'''
|
||||
filename = rootdir + '/temp/' + str(seriesid) + '_episodes.sql'
|
||||
sqlfile = open(filename, 'w', encoding="utf-8")
|
||||
sqlfile.write(querylist)
|
||||
try:
|
||||
SQL = '''( '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s' )''' % (episoderesults[idx]['episodeid'],
|
||||
episoderesults[idx]['seriesid'], episoderesults[idx]['season'], episoderesults[idx]['episodenumber'], episoderesults[idx]['episodename'].replace("'", "''"),
|
||||
episoderesults[idx]['airdate'], episoderesults[idx]['airtime'], episoderesults[idx]['episodesummary'].replace("'", "''"), episoderesults[idx]['airstamp'],
|
||||
episoderesults[idx]['runtime'], episoderesults[idx]['eplink'], episoderesults[idx]['mediumimage'], episoderesults[idx]['url'], episoderesults[idx]['originalimage'])
|
||||
#tv.insert_data(engine, episode, metadata.tables['[updates].newepdata'])
|
||||
queryrows.append(SQL)
|
||||
except Exception as e:
|
||||
lprint.logprint('info', 'Unable to process episodes for seriesid: ' + str(cseriesid))
|
||||
else:
|
||||
qlength = len(queryrows) - 1
|
||||
for rowidx, queryrow in enumerate(queryrows):
|
||||
if rowidx == qlength and idx == len(episoderesults) -1:
|
||||
sqlfile.write(queryrow + ';\n')
|
||||
else:
|
||||
sqlfile.write(queryrow + ',\n')
|
||||
sqlfile.close()
|
||||
return(filename, resultlength, querylist)
|
||||
|
||||
def __del__(self):
|
||||
pass
|
||||
|
||||
@@ -0,0 +1,256 @@
|
||||
|
||||
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
|
||||
@@ -0,0 +1,156 @@
|
||||
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user