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

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