def backupDatabase(version): log.info(u'Backing up database before upgrade') if not helpers.backup_versioned_file(db.dbFilename(), version): log.error(u'Database backup failed, abort upgrading database') sys.exit(1) else: log.info(u'Proceeding with upgrade')
def config(monkeypatch, app_config): python_version = 'Python Test v1.2.3.4' monkeypatch.setattr(sys, 'version', python_version) os_user = app_config('OS_USER', 'superuser') app_config('LOCALE', (None, 'ABC')) app_locale = 'Unknown.ABC' config_data = NonEmptyDict() config_data['anonRedirect'] = app.ANON_REDIRECT config_data['animeSplitHome'] = app.ANIME_SPLIT_HOME config_data['comingEpsSort'] = app.COMING_EPS_SORT config_data['datePreset'] = app.DATE_PRESET config_data['fuzzyDating'] = app.FUZZY_DATING config_data['themeName'] = app.THEME_NAME config_data['posterSortby'] = app.POSTER_SORTBY config_data['posterSortdir'] = app.POSTER_SORTDIR config_data['rootDirs'] = app.ROOT_DIRS config_data['sortArticle'] = app.SORT_ARTICLE config_data['timePreset'] = app.TIME_PRESET config_data['trimZero'] = app.TRIM_ZERO config_data['fanartBackground'] = app.FANART_BACKGROUND config_data['fanartBackgroundOpacity'] = float( app.FANART_BACKGROUND_OPACITY or 0) config_data['branch'] = app.BRANCH config_data['commitHash'] = app.CUR_COMMIT_HASH config_data['release'] = app.APP_VERSION config_data['sslVersion'] = app.OPENSSL_VERSION config_data['pythonVersion'] = sys.version config_data['databaseVersion'] = NonEmptyDict() config_data['databaseVersion']['major'] = app.MAJOR_DB_VERSION config_data['databaseVersion']['minor'] = app.MINOR_DB_VERSION config_data['os'] = platform.platform() config_data['locale'] = app_locale config_data['localUser'] = os_user config_data['programDir'] = app.PROG_DIR config_data['configFile'] = app.CONFIG_FILE config_data['dbFilename'] = db.dbFilename() config_data['cacheDir'] = app.CACHE_DIR config_data['logDir'] = app.LOG_DIR config_data['appArgs'] = app.MY_ARGS config_data['webRoot'] = app.WEB_ROOT config_data['githubUrl'] = app.GITHUB_IO_URL config_data['wikiUrl'] = app.WIKI_URL config_data['sourceUrl'] = app.APPLICATION_URL config_data['downloadUrl'] = app.DOWNLOAD_URL config_data['subtitlesMulti'] = app.SUBTITLES_MULTI config_data['namingForceFolders'] = app.NAMING_FORCE_FOLDERS config_data['subtitles'] = NonEmptyDict() config_data['subtitles']['enabled'] = bool(app.USE_SUBTITLES) config_data['kodi'] = NonEmptyDict() config_data['kodi']['enabled'] = bool(app.USE_KODI and app.KODI_UPDATE_LIBRARY) config_data['plex'] = NonEmptyDict() config_data['plex']['server'] = NonEmptyDict() config_data['plex']['server']['enabled'] = bool(app.USE_PLEX_SERVER) config_data['plex']['server']['notify'] = NonEmptyDict() config_data['plex']['server']['notify']['snatch'] = bool( app.PLEX_NOTIFY_ONSNATCH) config_data['plex']['server']['notify']['download'] = bool( app.PLEX_NOTIFY_ONDOWNLOAD) config_data['plex']['server']['notify']['subtitleDownload'] = bool( app.PLEX_NOTIFY_ONSUBTITLEDOWNLOAD) config_data['plex']['server']['updateLibrary'] = bool( app.PLEX_UPDATE_LIBRARY) config_data['plex']['server']['host'] = app.PLEX_SERVER_HOST config_data['plex']['server']['token'] = app.PLEX_SERVER_TOKEN config_data['plex']['server']['username'] = app.PLEX_SERVER_USERNAME config_data['plex']['server']['password'] = app.PLEX_SERVER_PASSWORD config_data['plex']['client'] = NonEmptyDict() config_data['plex']['client']['enabled'] = bool(app.USE_PLEX_CLIENT) config_data['plex']['client']['username'] = app.PLEX_CLIENT_USERNAME config_data['plex']['client']['password'] = app.PLEX_CLIENT_PASSWORD config_data['plex']['client']['host'] = app.PLEX_CLIENT_HOST config_data['emby'] = NonEmptyDict() config_data['emby']['enabled'] = bool(app.USE_EMBY) config_data['torrents'] = NonEmptyDict() config_data['torrents']['enabled'] = bool(app.USE_TORRENTS) config_data['torrents']['method'] = app.TORRENT_METHOD config_data['torrents']['username'] = app.TORRENT_USERNAME config_data['torrents']['password'] = app.TORRENT_PASSWORD config_data['torrents']['label'] = app.TORRENT_LABEL config_data['torrents']['labelAnime'] = app.TORRENT_LABEL_ANIME config_data['torrents']['verifySSL'] = app.TORRENT_VERIFY_CERT config_data['torrents']['path'] = app.TORRENT_PATH config_data['torrents']['seedTime'] = app.TORRENT_SEED_TIME config_data['torrents']['paused'] = app.TORRENT_PAUSED config_data['torrents']['highBandwidth'] = app.TORRENT_HIGH_BANDWIDTH config_data['torrents']['host'] = app.TORRENT_HOST config_data['torrents']['rpcurl'] = app.TORRENT_RPCURL config_data['torrents']['authType'] = app.TORRENT_AUTH_TYPE config_data['nzb'] = NonEmptyDict() config_data['nzb']['enabled'] = bool(app.USE_NZBS) config_data['nzb']['username'] = app.NZBGET_USERNAME config_data['nzb']['password'] = app.NZBGET_PASSWORD # app.NZBGET_CATEGORY # app.NZBGET_CATEGORY_BACKLOG # app.NZBGET_CATEGORY_ANIME # app.NZBGET_CATEGORY_ANIME_BACKLOG config_data['nzb']['host'] = app.NZBGET_HOST config_data['nzb']['priority'] = app.NZBGET_PRIORITY config_data['layout'] = NonEmptyDict() config_data['layout']['schedule'] = app.COMING_EPS_LAYOUT config_data['layout']['history'] = app.HISTORY_LAYOUT config_data['layout']['home'] = app.HOME_LAYOUT config_data['layout']['show'] = NonEmptyDict() config_data['layout']['show']['allSeasons'] = bool(app.DISPLAY_ALL_SEASONS) config_data['layout']['show']['specials'] = bool(app.DISPLAY_SHOW_SPECIALS) config_data['selectedRootIndex'] = int( app.SELECTED_ROOT ) if app.SELECTED_ROOT is not None else -1 # All paths config_data['backlogOverview'] = NonEmptyDict() config_data['backlogOverview']['period'] = app.BACKLOG_PERIOD config_data['backlogOverview']['status'] = app.BACKLOG_STATUS return config_data
def get(self, identifier, path_param=None): """Query general configuration. :param identifier: :param path_param: :type path_param: str """ if identifier and identifier != 'main': return self._not_found('Config not found') config_data = NonEmptyDict() config_data['anonRedirect'] = app.ANON_REDIRECT config_data['animeSplitHome'] = app.ANIME_SPLIT_HOME config_data['comingEpsSort'] = app.COMING_EPS_SORT config_data['datePreset'] = app.DATE_PRESET config_data['fuzzyDating'] = app.FUZZY_DATING config_data['themeName'] = app.THEME_NAME config_data['posterSortby'] = app.POSTER_SORTBY config_data['posterSortdir'] = app.POSTER_SORTDIR config_data['rootDirs'] = app.ROOT_DIRS config_data['sortArticle'] = app.SORT_ARTICLE config_data['timePreset'] = app.TIME_PRESET config_data['trimZero'] = app.TRIM_ZERO config_data['fanartBackground'] = app.FANART_BACKGROUND config_data['fanartBackgroundOpacity'] = float( app.FANART_BACKGROUND_OPACITY or 0) config_data['branch'] = app.BRANCH config_data['commitHash'] = app.CUR_COMMIT_HASH config_data['release'] = app.APP_VERSION config_data['sslVersion'] = app.OPENSSL_VERSION config_data['pythonVersion'] = sys.version config_data['databaseVersion'] = NonEmptyDict() config_data['databaseVersion']['major'] = app.MAJOR_DB_VERSION config_data['databaseVersion']['minor'] = app.MINOR_DB_VERSION config_data['os'] = platform.platform() config_data['locale'] = '.'.join( [text_type(loc or 'Unknown') for loc in app.LOCALE]) config_data['localUser'] = app.OS_USER or 'Unknown' config_data['programDir'] = app.PROG_DIR config_data['configFile'] = app.CONFIG_FILE config_data['dbFilename'] = db.dbFilename() config_data['cacheDir'] = app.CACHE_DIR config_data['logDir'] = app.LOG_DIR config_data['appArgs'] = app.MY_ARGS config_data['webRoot'] = app.WEB_ROOT config_data['githubUrl'] = app.GITHUB_IO_URL config_data['wikiUrl'] = app.WIKI_URL config_data['sourceUrl'] = app.APPLICATION_URL config_data['downloadUrl'] = app.DOWNLOAD_URL config_data['subtitlesMulti'] = app.SUBTITLES_MULTI config_data['namingForceFolders'] = app.NAMING_FORCE_FOLDERS config_data['subtitles'] = NonEmptyDict() config_data['subtitles']['enabled'] = bool(app.USE_SUBTITLES) config_data['kodi'] = NonEmptyDict() config_data['kodi']['enabled'] = bool(app.USE_KODI and app.KODI_UPDATE_LIBRARY) config_data['plex'] = NonEmptyDict() config_data['plex']['server'] = NonEmptyDict() config_data['plex']['server']['enabled'] = bool(app.USE_PLEX_SERVER) config_data['plex']['server']['notify'] = NonEmptyDict() config_data['plex']['server']['notify']['snatch'] = bool( app.PLEX_NOTIFY_ONSNATCH) config_data['plex']['server']['notify']['download'] = bool( app.PLEX_NOTIFY_ONDOWNLOAD) config_data['plex']['server']['notify']['subtitleDownload'] = bool( app.PLEX_NOTIFY_ONSUBTITLEDOWNLOAD) config_data['plex']['server']['updateLibrary'] = bool( app.PLEX_UPDATE_LIBRARY) config_data['plex']['server']['host'] = app.PLEX_SERVER_HOST config_data['plex']['server']['token'] = app.PLEX_SERVER_TOKEN config_data['plex']['server']['username'] = app.PLEX_SERVER_USERNAME config_data['plex']['server']['password'] = app.PLEX_SERVER_PASSWORD config_data['plex']['client'] = NonEmptyDict() config_data['plex']['client']['enabled'] = bool(app.USE_PLEX_CLIENT) config_data['plex']['client']['username'] = app.PLEX_CLIENT_USERNAME config_data['plex']['client']['password'] = app.PLEX_CLIENT_PASSWORD config_data['plex']['client']['host'] = app.PLEX_CLIENT_HOST config_data['emby'] = NonEmptyDict() config_data['emby']['enabled'] = bool(app.USE_EMBY) config_data['torrents'] = NonEmptyDict() config_data['torrents']['enabled'] = bool(app.USE_TORRENTS) config_data['torrents']['method'] = app.TORRENT_METHOD config_data['torrents']['username'] = app.TORRENT_USERNAME config_data['torrents']['password'] = app.TORRENT_PASSWORD config_data['torrents']['label'] = app.TORRENT_LABEL config_data['torrents']['labelAnime'] = app.TORRENT_LABEL_ANIME config_data['torrents']['verifySSL'] = app.TORRENT_VERIFY_CERT config_data['torrents']['path'] = app.TORRENT_PATH config_data['torrents']['seedTime'] = app.TORRENT_SEED_TIME config_data['torrents']['paused'] = app.TORRENT_PAUSED config_data['torrents']['highBandwidth'] = app.TORRENT_HIGH_BANDWIDTH config_data['torrents']['host'] = app.TORRENT_HOST config_data['torrents']['rpcurl'] = app.TORRENT_RPCURL config_data['torrents']['authType'] = app.TORRENT_AUTH_TYPE config_data['nzb'] = NonEmptyDict() config_data['nzb']['enabled'] = bool(app.USE_NZBS) config_data['nzb']['username'] = app.NZBGET_USERNAME config_data['nzb']['password'] = app.NZBGET_PASSWORD # app.NZBGET_CATEGORY # app.NZBGET_CATEGORY_BACKLOG # app.NZBGET_CATEGORY_ANIME # app.NZBGET_CATEGORY_ANIME_BACKLOG config_data['nzb']['host'] = app.NZBGET_HOST config_data['nzb']['priority'] = app.NZBGET_PRIORITY config_data['layout'] = NonEmptyDict() config_data['layout']['schedule'] = app.COMING_EPS_LAYOUT config_data['layout']['history'] = app.HISTORY_LAYOUT config_data['layout']['home'] = app.HOME_LAYOUT config_data['layout']['show'] = NonEmptyDict() config_data['layout']['show']['allSeasons'] = bool( app.DISPLAY_ALL_SEASONS) config_data['layout']['show']['specials'] = bool( app.DISPLAY_SHOW_SPECIALS) config_data['selectedRootIndex'] = int( app.SELECTED_ROOT ) if app.SELECTED_ROOT is not None else -1 # All paths config_data['backlogOverview'] = NonEmptyDict() config_data['backlogOverview']['period'] = app.BACKLOG_PERIOD config_data['backlogOverview']['status'] = app.BACKLOG_STATUS if not identifier: return self._paginate([config_data]) if path_param: if path_param not in config_data: return self._bad_request( '{key} is a invalid path'.format(key=path_param)) config_data = config_data[path_param] return self._ok(data=config_data)
def config(monkeypatch, app_config): python_version = 'Python Test v1.2.3.4' monkeypatch.setattr(sys, 'version', python_version) os_user = app_config('OS_USER', 'superuser') app_config('LOCALE', (None, 'ABC')) app_locale = 'Unknown.ABC' return { 'anonRedirect': app.ANON_REDIRECT, 'anonSplitHome': app.ANIME_SPLIT_HOME, 'comingEpsLayout': app.COMING_EPS_LAYOUT, 'comingEpsSort': app.COMING_EPS_SORT, 'datePreset': app.DATE_PRESET, 'fuzzyDating': app.FUZZY_DATING, 'historyLayout': app.HISTORY_LAYOUT, 'homeLayout': app.HOME_LAYOUT, 'themeName': app.THEME_NAME, 'posterSortby': app.POSTER_SORTBY, 'posterSortdir': app.POSTER_SORTDIR, 'rootDirs': app.ROOT_DIRS, 'sortArticle': app.SORT_ARTICLE, 'timePreset': app.TIME_PRESET, 'trimZero': app.TRIM_ZERO, 'fanartBackground': app.FANART_BACKGROUND, 'fanartBackgroundOpacity': app.FANART_BACKGROUND_OPACITY, 'branch': app.BRANCH, 'commitHash': app.CUR_COMMIT_HASH, 'release': app.APP_VERSION, 'sslVersion': app.OPENSSL_VERSION, 'pythonVersion': python_version, 'databaseVersion': { 'major': app.MAJOR_DB_VERSION, 'minor': app.MINOR_DB_VERSION }, 'os': platform.platform(), 'locale': app_locale, 'localUser': os_user, 'programDir': app.PROG_DIR, 'configFile': app.CONFIG_FILE, 'dbFilename': db.dbFilename(), 'cacheDir': app.CACHE_DIR, 'logDir': app.LOG_DIR, 'appArgs': app.MY_ARGS, 'webRoot': app.WEB_ROOT, 'githubUrl': app.GITHUB_IO_URL, 'wikiUrl': app.WIKI_URL, 'sourceUrl': app.APPLICATION_URL, 'displayAllSeasons': app.DISPLAY_ALL_SEASONS, 'displayShowSpecials': app.DISPLAY_SHOW_SPECIALS, 'downloadUrl': app.DOWNLOAD_URL, 'subtitlesMulti': app.SUBTITLES_MULTI, 'namingForceFolders': app.NAMING_FORCE_FOLDERS, 'subtitles': { 'enabled': bool(app.USE_SUBTITLES) }, 'kodi': { 'enabled': bool(app.USE_KODI and app.KODI_UPDATE_LIBRARY) }, 'plex': { 'server': { 'enabled': bool(app.USE_PLEX_SERVER and app.PLEX_UPDATE_LIBRARY) }, 'client': { 'enabled': False # Replace this with plex client code } }, 'emby': { 'enabled': bool(app.USE_EMBY) }, 'torrents': { 'enabled': bool(app.USE_TORRENTS and app.TORRENT_METHOD != 'blackhole' and (app.ENABLE_HTTPS and app.TORRENT_HOST[:5] == 'https' or not app.ENABLE_HTTPS and app.TORRENT_HOST[:5] == 'http:')) } }