def update_network_dict(): """Update timezone information from SR repositories""" url = 'https://cdn.sickrage.ca/network_timezones/' try: url_data = WebSession().get(url).text except Exception: sickrage.app.log.warning( 'Updating network timezones failed, this can happen from time to time. URL: %s' % url) return d = {} try: for line in url_data.splitlines(): (key, val) = line.strip().rsplit(':', 1) if key is None or val is None: continue d[key] = val except (IOError, OSError): pass queries = [] for network, timezone in d.items(): existing = network in network_dict if not existing: try: sickrage.app.cache_db.get('network_timezones', network) except RecordNotFound: sickrage.app.cache_db.insert({ '_t': 'network_timezones', 'network_name': ss(network), 'timezone': timezone }) elif network_dict[network] is not timezone: try: dbData = sickrage.app.cache_db.get('network_timezones', network) dbData['timezone'] = timezone sickrage.app.cache_db.update(dbData) except RecordNotFound: continue if existing: del network_dict[network] for x in network_dict: try: sickrage.app.cache_db.delete( sickrage.app.cache_db.get('network_timezones', x)) except RecordNotFound: continue load_network_dict()
def update_network_timezones(self): """Update timezone information from SR repositories""" session = sickrage.app.cache_db.session() network_timezones = {} try: url_data = WebSession().get('https://cdn.sickrage.ca/network_timezones/').text except Exception: sickrage.app.log.warning('Updating network timezones failed.') return try: for line in url_data.splitlines(): (key, val) = line.strip().rsplit(':', 1) if all([key, val]): network_timezones[key] = val except (IOError, OSError): pass for x in session.query(CacheDB.NetworkTimezone): if x.network_name not in network_timezones: session.query(CacheDB.NetworkTimezone).filter_by(network_name=x.network_name).delete() session.commit() sql_to_add = [] sql_to_update = [] for network, timezone in network_timezones.items(): try: dbData = session.query(CacheDB.NetworkTimezone).filter_by(network_name=network).one() if dbData.timezone != timezone: dbData.timezone = timezone sql_to_update.append(dbData.as_dict()) except orm.exc.NoResultFound: sql_to_add.append({ 'network_name': network, 'timezone': timezone }) if len(sql_to_add): session.bulk_insert_mappings(CacheDB.NetworkTimezone, sql_to_add) session.commit() if len(sql_to_update): session.bulk_update_mappings(CacheDB.NetworkTimezone, sql_to_update) session.commit() # cleanup del network_timezones
def update_network_timezones(self, session=None): """Update timezone information from SR repositories""" network_timezones = {} try: url_data = WebSession().get( 'https://cdn.sickrage.ca/network_timezones/').text except Exception: sickrage.app.log.warning('Updating network timezones failed.') return try: for line in url_data.splitlines(): (key, val) = line.strip().rsplit(':', 1) if all([key, val]): network_timezones[key] = val except (IOError, OSError): pass for x in session.query(CacheDB.NetworkTimezone): if x.network_name not in network_timezones: session.query(CacheDB.NetworkTimezone).filter_by( network_name=x.network_name).delete() for network, timezone in network_timezones.items(): try: dbData = session.query(CacheDB.NetworkTimezone).filter_by( network_name=network).one() if dbData.timezone != timezone: dbData.timezone = timezone except orm.exc.NoResultFound: session.add( CacheDB.NetworkTimezone(**{ 'network_name': network, 'timezone': timezone })) # cleanup del network_timezones
def update_network_timezones(self): """Update timezone information from SR repositories""" network_timezones = {} try: url_data = WebSession().get('https://cdn.sickrage.ca/network_timezones/').text except Exception: sickrage.app.log.warning('Updating network timezones failed.') return try: for line in url_data.splitlines(): (key, val) = line.strip().rsplit(':', 1) if all([key, val]): network_timezones[key] = val except (IOError, OSError): pass for x in sickrage.app.cache_db.all('network_timezones'): if x['network_name'] not in network_timezones: sickrage.app.cache_db.delete(x) for network, timezone in network_timezones.items(): dbData = sickrage.app.cache_db.get('network_timezones', network) if not dbData: sickrage.app.cache_db.insert({ '_t': 'network_timezones', 'network_name': ss(network), 'timezone': timezone }) elif dbData['timezone'] != timezone: dbData['timezone'] = timezone sickrage.app.cache_db.update(dbData) # cleanup del network_timezones