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)
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)
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)
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:
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()