Files
2025-05-20 12:02:07 -04:00

106 lines
4.4 KiB
Python

__author__ = 'Wendell Jones'
import json
import progressbar
from url.process import Loadurl
class Jsonload():
def __init__(self):
pass
def load(self, rawdata):
jdata = {}
jdata = json.loads(rawdata)
newdata = self.dump(jdata)
return(newdata)
def dump(self, rawdata):
jdata = json.dumps(rawdata, indent=4)
return(jdata)
def jconvert(self, inputdata):
outputdata = json.loads(inputdata)
return(outputdata)
def populate_cache(self, jdata, jfile):
try:
with open(jfile, 'w') as datafile:
datafile.write(jdata)
except:
print('Unable to save cache file.')
else:
datafile.close()
def fetch_json(self, weburl, seriesid, cachefile):
uprocess = Loadurl()
try:
webdata = uprocess.get_data(weburl)
jdata = self.load(webdata)
except Exception as e:
print('Unable to get JSON data for ' + str(seriesid) + ': ' + str(e))
else:
if jdata == '[]':
pass
else:
self.populate_cache(jdata, cachefile)
def processSeriesJson(self, seriesdata):
seriesresults = {}
networkchannel = {}
webchannel = {}
country = {}
seriesresults['id'] = seriesdata['id']
seriesresults['url'] = seriesdata['url']
seriesresults['name'] = seriesdata['name']
seriesresults['type'] = seriesdata['type']
seriesresults['language'] = seriesdata['language']
seriesresults['genres'] = ', '.join(seriesdata['genres'])
seriesresults['status'] = seriesdata['status']
seriesresults['runtime'] = seriesdata['runtime']
seriesresults['premiered'] = seriesdata['premiered']
seriesresults['officalsite'] = seriesdata['officialSite']
if len(seriesdata['schedule']['days']) > 0:
seriesresults['days'] = seriesdata['schedule']['days'][0]
seriesresults['time'] = seriesdata['schedule']['time']
seriesresults['rating'] = seriesdata['rating']['average']
seriesresults['weight'] = seriesdata['weight']
seriesresults['networkid'] = seriesdata['id']
seriesresults['webchannel'] = seriesdata['id']
seriesresults['tvrage'] = seriesdata['externals']['tvrage']
seriesresults['thetvdb'] = seriesdata['externals']['thetvdb']
seriesresults['imdb'] = seriesdata['externals']['imdb']
if seriesdata['image']:
seriesresults['medium'] = seriesdata['image']['medium']
seriesresults['original'] = seriesdata['image']['original']
seriesresults['summary'] = seriesdata['summary']
seriesresults['serieslink'] = seriesdata['_links']['self']['href']
if 'previousepisode' in seriesdata['_links'].keys():
seriesresults['previousepisode'] = seriesdata['_links']['previousepisode']['href']
if 'nextepisode' in seriesdata['_links'].keys():
seriesresults['nextepisode'] = seriesdata['_links']['nextepisode']['href']
if seriesdata['network'] and seriesdata['network'] != None:
networkchannel['id'] = seriesdata['network']['id']
networkchannel['name'] = seriesdata['network']['name']
#networkchannel['countryid'] = country['id']
if seriesdata['network']['country']:
# country['id'] = "auto incremented id"
country['name'] = seriesdata['network']['country']['name']
country['code'] = seriesdata['network']['country']['code']
country['timezone'] = seriesdata['network']['country']['timezone']
if seriesdata['webChannel'] and seriesdata['webChannel'] != None:
webchannel['id'] = seriesdata['webChannel']['id']
webchannel['name'] = seriesdata['webChannel']['name']
#webchannel['countryid'] = country['id']
if seriesdata['webChannel']['country']:
# country['id'] = "auto incremented id"
country['name'] = seriesdata['webchannel']['country']['name']
country['code'] = seriesdata['webchannel']['country']['code']
country['timezone'] = seriesdata['webchannel']['country']['timezone']
return(seriesresults, networkchannel, country, webchannel)
def __del__(self):
pass