def update_network_timezone(self, network, timezone): session = sickrage.app.cache_db.session() 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 })) finally: session.commit()
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() 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 })) finally: session.commit() # cleanup del network_timezones