コード例 #1
0
    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()
コード例 #2
0
ファイル: tz_updater.py プロジェクト: Entro-pie/SiCKRAGE
    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