77 lines
3.8 KiB
Python
77 lines
3.8 KiB
Python
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
|
|
|