__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