示例#1
0
 def start(self):
     if get_sonarr_info.is_legacy():
         logging.warning(
             'BAZARR can only sync from Sonarr v3 SignalR feed to get real-time update. You should '
             'consider upgrading your version({}).'.format(
                 get_sonarr_info.version()))
     else:
         logging.info('BAZARR trying to connect to Sonarr SignalR feed...')
         self.configure()
         while not self.connection.started:
             try:
                 self.connection.start()
             except ConnectionError:
                 time.sleep(5)
             except json.decoder.JSONDecodeError:
                 logging.error(
                     "BAZARR cannot parse JSON returned by SignalR feed. This is caused by a permissions "
                     "issue when Sonarr try to access its /config/.config directory."
                     "Typically permissions are too permissive - only the user and group Sonarr runs as should have Read/Write permissions (e.g. files 664 / folders 775)"
                     "You should fix permissions on that directory and restart Sonarr. Also, if you're a Docker image "
                     "user, you should make sure you properly defined PUID/PGID environment variables. "
                     "Otherwise, please contact Sonarr support.")
             else:
                 logging.info(
                     'BAZARR SignalR client for Sonarr is connected and waiting for events.'
                 )
             finally:
                 if not args.dev:
                     scheduler.add_job(update_series,
                                       kwargs={'send_event': True},
                                       max_instances=1)
                     scheduler.add_job(sync_episodes,
                                       kwargs={'send_event': True},
                                       max_instances=1)
示例#2
0
 def get(self):
     system_status = {}
     system_status.update({'bazarr_version': os.environ["BAZARR_VERSION"]})
     system_status.update({'sonarr_version': get_sonarr_info.version()})
     system_status.update({'radarr_version': get_radarr_info.version()})
     system_status.update({'operating_system': platform.platform()})
     system_status.update({'python_version': platform.python_version()})
     system_status.update({'bazarr_directory': os.path.dirname(os.path.dirname(__file__))})
     system_status.update({'bazarr_config_directory': args.config_dir})
     system_status.update({'start_time': startTime})
     return jsonify(data=system_status)
示例#3
0
    def get(self):
        package_version = ''
        if 'BAZARR_PACKAGE_VERSION' in os.environ:
            package_version = os.environ['BAZARR_PACKAGE_VERSION']
        if 'BAZARR_PACKAGE_AUTHOR' in os.environ and os.environ[
                'BAZARR_PACKAGE_AUTHOR'] != '':
            package_version = f'{package_version} by {os.environ["BAZARR_PACKAGE_AUTHOR"]}'

        system_status = {}
        system_status.update({'bazarr_version': os.environ["BAZARR_VERSION"]})
        system_status.update({'package_version': package_version})
        system_status.update({'sonarr_version': get_sonarr_info.version()})
        system_status.update({'radarr_version': get_radarr_info.version()})
        system_status.update({'operating_system': platform.platform()})
        system_status.update({'python_version': platform.python_version()})
        system_status.update({
            'bazarr_directory':
            os.path.dirname(
                os.path.dirname(os.path.dirname(os.path.dirname(__file__))))
        })
        system_status.update({'bazarr_config_directory': args.config_dir})
        system_status.update({'start_time': startTime})

        return jsonify(data=system_status)
示例#4
0
import pickle
import random
import platform
import os
import logging
import codecs

from pyga.requests import Event, Page, Tracker, Session, Visitor, Config
from pyga.entities import CustomVariable

from get_args import args
from config import settings
from utils import get_sonarr_info, get_radarr_info

sonarr_version = get_sonarr_info.version()
radarr_version = get_radarr_info.version()


def track_event(category=None, action=None, label=None):
    if not settings.analytics.getboolean('enabled'):
        return

    anonymousConfig = Config()
    anonymousConfig.anonimize_ip_address = True

    tracker = Tracker('UA-138214134-3', 'none', conf=anonymousConfig)

    try:
        if os.path.isfile(os.path.normpath(os.path.join(args.config_dir, 'config', 'analytics.dat'))):
            with open(os.path.normpath(os.path.join(args.config_dir, 'config', 'analytics.dat')), 'r') as handle:
示例#5
0
            except KeyError:
                return
        elif isinstance(data, list):
            topic = data[0]['name']
            try:
                media_id = data[0]['body']['resource']['id']
                action = data[0]['body']['action']
            except KeyError:
                return

        if topic == 'series':
            update_one_series(series_id=media_id, action=action)
            if episodesChanged:
                # this will happen if a season monitored status is changed.
                sync_episodes(series_id=media_id, send_event=True)
        elif topic == 'episode':
            sync_one_episode(episode_id=media_id)
        elif topic == 'movie':
            update_one_movie(movie_id=media_id, action=action)
    except Exception as e:
        logging.debug(
            'BAZARR an exception occurred while parsing SignalR feed: {}'.
            format(repr(e)))
    finally:
        return


sonarr_signalr_client = SonarrSignalrClientLegacy() if get_sonarr_info.version().startswith(('0.', '2.', '3.')) else \
    SonarrSignalrClient()
radarr_signalr_client = RadarrSignalrClient()