Exemplo n.º 1
0
def config_main(monkeypatch, app_config):
    python_version = 'Python Test v1.2.3.4'
    monkeypatch.setattr(sys, 'version', python_version)
    app_config('PID', 4321)
    os_user = app_config('OS_USER', 'superuser')
    app_config('LOCALE', (None, 'ABC'))
    app_locale = 'Unknown.ABC'

    # postProcessing.naming
    app_config('NAMING_ANIME', 3)

    config_data = {}
    config_data['anonRedirect'] = app.ANON_REDIRECT
    config_data['animeSplitHome'] = bool(app.ANIME_SPLIT_HOME)
    config_data['animeSplitHomeInTabs'] = bool(app.ANIME_SPLIT_HOME_IN_TABS)
    config_data['comingEpsSort'] = app.COMING_EPS_SORT
    config_data['comingEpsDisplayPaused'] = bool(app.COMING_EPS_DISPLAY_PAUSED)
    config_data['datePreset'] = app.DATE_PRESET
    config_data['fuzzyDating'] = bool(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'] = bool(app.SORT_ARTICLE)
    config_data['timePreset'] = app.TIME_PRESET
    config_data['trimZero'] = bool(app.TRIM_ZERO)
    config_data['fanartBackground'] = bool(app.FANART_BACKGROUND)
    config_data['fanartBackgroundOpacity'] = float(
        app.FANART_BACKGROUND_OPACITY or 0)
    config_data['gitUsername'] = app.GIT_USERNAME
    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'] = {}
    config_data['databaseVersion']['major'] = app.MAJOR_DB_VERSION
    config_data['databaseVersion']['minor'] = app.MINOR_DB_VERSION
    config_data['os'] = platform.platform()
    config_data['pid'] = app.PID
    config_data['locale'] = app_locale
    config_data['localUser'] = os_user
    config_data['programDir'] = app.PROG_DIR
    config_data['dataDir'] = app.DATA_DIR
    config_data['configFile'] = app.CONFIG_FILE
    config_data['dbPath'] = db.DBConnection().path
    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['runsInDocker'] = bool(app.RUNS_IN_DOCKER)
    config_data['githubUrl'] = app.GITHUB_IO_URL
    config_data['wikiUrl'] = app.WIKI_URL
    config_data['donationsUrl'] = app.DONATIONS_URL
    config_data['sourceUrl'] = app.APPLICATION_URL
    config_data['downloadUrl'] = app.DOWNLOAD_URL
    config_data['subtitlesMulti'] = bool(app.SUBTITLES_MULTI)
    config_data['namingForceFolders'] = bool(app.NAMING_FORCE_FOLDERS)
    config_data['subtitles'] = {}
    config_data['subtitles']['enabled'] = bool(app.USE_SUBTITLES)
    config_data['recentShows'] = app.SHOWS_RECENT

    # Pick a random series to show as background.
    # TODO: Recreate this in Vue when the webapp has a reliable list of shows to choose from.
    config_data['randomShowSlug'] = ''

    config_data['showDefaults'] = {}
    config_data['showDefaults']['status'] = app.STATUS_DEFAULT
    config_data['showDefaults']['statusAfter'] = app.STATUS_DEFAULT_AFTER
    config_data['showDefaults']['quality'] = app.QUALITY_DEFAULT
    config_data['showDefaults']['subtitles'] = bool(app.SUBTITLES_DEFAULT)
    config_data['showDefaults']['seasonFolders'] = bool(
        app.SEASON_FOLDERS_DEFAULT)
    config_data['showDefaults']['anime'] = bool(app.ANIME_DEFAULT)
    config_data['showDefaults']['scene'] = bool(app.SCENE_DEFAULT)

    config_data['news'] = {}
    config_data['news']['lastRead'] = app.NEWS_LAST_READ
    config_data['news']['latest'] = app.NEWS_LATEST
    config_data['news']['unread'] = app.NEWS_UNREAD

    config_data['logs'] = {}
    config_data['logs']['debug'] = bool(app.DEBUG)
    config_data['logs']['dbDebug'] = bool(app.DBDEBUG)
    config_data['logs']['loggingLevels'] = {
        k.lower(): v
        for k, v in iteritems(logger.LOGGING_LEVELS)
    }
    config_data['logs']['numErrors'] = len(classes.ErrorViewer.errors)
    config_data['logs']['numWarnings'] = len(classes.WarningViewer.errors)

    config_data['failedDownloads'] = {}
    config_data['failedDownloads']['enabled'] = bool(app.USE_FAILED_DOWNLOADS)
    config_data['failedDownloads']['deleteFailed'] = bool(app.DELETE_FAILED)

    config_data['layout'] = {}
    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'] = {}
    config_data['layout']['show']['allSeasons'] = bool(app.DISPLAY_ALL_SEASONS)
    config_data['layout']['show']['specials'] = bool(app.DISPLAY_SHOW_SPECIALS)
    config_data['layout']['show']['showListOrder'] = app.SHOW_LIST_ORDER

    config_data['selectedRootIndex'] = int(
        app.SELECTED_ROOT
    ) if app.SELECTED_ROOT is not None else -1  # All paths

    config_data['backlogOverview'] = {}
    config_data['backlogOverview']['period'] = app.BACKLOG_PERIOD
    config_data['backlogOverview']['status'] = app.BACKLOG_STATUS

    config_data['indexers'] = {}
    config_data['indexers']['config'] = get_indexer_config()

    config_data['postProcessing'] = {}
    config_data['postProcessing']['naming'] = {}
    config_data['postProcessing']['naming']['pattern'] = app.NAMING_PATTERN
    config_data['postProcessing']['naming']['multiEp'] = int(
        app.NAMING_MULTI_EP)
    config_data['postProcessing']['naming'][
        'patternAirByDate'] = app.NAMING_ABD_PATTERN
    config_data['postProcessing']['naming'][
        'patternSports'] = app.NAMING_SPORTS_PATTERN
    config_data['postProcessing']['naming'][
        'patternAnime'] = app.NAMING_ANIME_PATTERN
    config_data['postProcessing']['naming'][
        'enableCustomNamingAirByDate'] = bool(app.NAMING_CUSTOM_ABD)
    config_data['postProcessing']['naming']['enableCustomNamingSports'] = bool(
        app.NAMING_CUSTOM_SPORTS)
    config_data['postProcessing']['naming']['enableCustomNamingAnime'] = bool(
        app.NAMING_CUSTOM_ANIME)
    config_data['postProcessing']['naming']['animeMultiEp'] = int(
        app.NAMING_ANIME_MULTI_EP)
    config_data['postProcessing']['naming']['animeNamingType'] = int(
        app.NAMING_ANIME)
    config_data['postProcessing']['naming']['stripYear'] = bool(
        app.NAMING_STRIP_YEAR)
    config_data['postProcessing']['showDownloadDir'] = app.TV_DOWNLOAD_DIR
    config_data['postProcessing']['processAutomatically'] = bool(
        app.PROCESS_AUTOMATICALLY)
    config_data['postProcessing']['postponeIfSyncFiles'] = bool(
        app.POSTPONE_IF_SYNC_FILES)
    config_data['postProcessing']['postponeIfNoSubs'] = bool(
        app.POSTPONE_IF_NO_SUBS)
    config_data['postProcessing']['renameEpisodes'] = bool(app.RENAME_EPISODES)
    config_data['postProcessing']['createMissingShowDirs'] = bool(
        app.CREATE_MISSING_SHOW_DIRS)
    config_data['postProcessing']['addShowsWithoutDir'] = bool(
        app.ADD_SHOWS_WO_DIR)
    config_data['postProcessing']['moveAssociatedFiles'] = bool(
        app.MOVE_ASSOCIATED_FILES)
    config_data['postProcessing']['nfoRename'] = bool(app.NFO_RENAME)
    config_data['postProcessing']['airdateEpisodes'] = bool(
        app.AIRDATE_EPISODES)
    config_data['postProcessing']['unpack'] = bool(app.UNPACK)
    config_data['postProcessing']['deleteRarContent'] = bool(
        app.DELRARCONTENTS)
    config_data['postProcessing']['noDelete'] = bool(app.NO_DELETE)
    config_data['postProcessing']['processMethod'] = app.PROCESS_METHOD
    config_data['postProcessing']['reflinkAvailable'] = bool(
        pkgutil.find_loader('reflink'))
    config_data['postProcessing']['autoPostprocessorFrequency'] = int(
        app.AUTOPOSTPROCESSOR_FREQUENCY)
    config_data['postProcessing']['syncFiles'] = app.SYNC_FILES
    config_data['postProcessing'][
        'fileTimestampTimezone'] = app.FILE_TIMESTAMP_TIMEZONE
    config_data['postProcessing']['allowedExtensions'] = list(
        app.ALLOWED_EXTENSIONS)
    config_data['postProcessing']['extraScripts'] = app.EXTRA_SCRIPTS
    config_data['postProcessing']['extraScriptsUrl'] = app.EXTRA_SCRIPTS_URL
    config_data['postProcessing']['multiEpStrings'] = {
        text_type(k): v
        for k, v in iteritems(common.MULTI_EP_STRINGS)
    }

    return config_data
Exemplo n.º 2
0
    def data_main():
        """Main."""
        section_data = NonEmptyDict()

        section_data['anonRedirect'] = app.ANON_REDIRECT
        section_data['animeSplitHome'] = bool(app.ANIME_SPLIT_HOME)
        section_data['animeSplitHomeInTabs'] = bool(
            app.ANIME_SPLIT_HOME_IN_TABS)
        section_data['comingEpsSort'] = app.COMING_EPS_SORT
        section_data['comingEpsDisplayPaused'] = bool(
            app.COMING_EPS_DISPLAY_PAUSED)
        section_data['datePreset'] = app.DATE_PRESET
        section_data['fuzzyDating'] = bool(app.FUZZY_DATING)
        section_data['themeName'] = app.THEME_NAME
        section_data['posterSortby'] = app.POSTER_SORTBY
        section_data['posterSortdir'] = app.POSTER_SORTDIR
        section_data['rootDirs'] = app.ROOT_DIRS
        section_data['sortArticle'] = bool(app.SORT_ARTICLE)
        section_data['timePreset'] = app.TIME_PRESET
        section_data['trimZero'] = bool(app.TRIM_ZERO)
        section_data['fanartBackground'] = bool(app.FANART_BACKGROUND)
        section_data['fanartBackgroundOpacity'] = float(
            app.FANART_BACKGROUND_OPACITY or 0)
        section_data['gitUsername'] = app.GIT_USERNAME
        section_data['branch'] = app.BRANCH
        section_data['commitHash'] = app.CUR_COMMIT_HASH
        section_data['release'] = app.APP_VERSION
        section_data['sslVersion'] = app.OPENSSL_VERSION
        section_data['pythonVersion'] = sys.version
        section_data['databaseVersion'] = NonEmptyDict()
        section_data['databaseVersion']['major'] = app.MAJOR_DB_VERSION
        section_data['databaseVersion']['minor'] = app.MINOR_DB_VERSION
        section_data['os'] = platform.platform()
        section_data['pid'] = app.PID
        section_data['locale'] = '.'.join(
            [text_type(loc or 'Unknown') for loc in app.LOCALE])
        section_data['localUser'] = app.OS_USER or 'Unknown'
        section_data['programDir'] = app.PROG_DIR
        section_data['dataDir'] = app.DATA_DIR
        section_data['configFile'] = app.CONFIG_FILE
        section_data['dbPath'] = db.DBConnection().path
        section_data['cacheDir'] = app.CACHE_DIR
        section_data['logDir'] = app.LOG_DIR
        section_data['appArgs'] = app.MY_ARGS
        section_data['webRoot'] = app.WEB_ROOT
        section_data['githubUrl'] = app.GITHUB_IO_URL
        section_data['wikiUrl'] = app.WIKI_URL
        section_data['donationsUrl'] = app.DONATIONS_URL
        section_data['sourceUrl'] = app.APPLICATION_URL
        section_data['downloadUrl'] = app.DOWNLOAD_URL
        section_data['subtitlesMulti'] = bool(app.SUBTITLES_MULTI)
        section_data['namingForceFolders'] = bool(app.NAMING_FORCE_FOLDERS)
        section_data['subtitles'] = NonEmptyDict()
        section_data['subtitles']['enabled'] = bool(app.USE_SUBTITLES)
        section_data['recentShows'] = app.SHOWS_RECENT

        section_data['showDefaults'] = {}
        section_data['showDefaults']['status'] = app.STATUS_DEFAULT
        section_data['showDefaults']['statusAfter'] = app.STATUS_DEFAULT_AFTER
        section_data['showDefaults']['quality'] = app.QUALITY_DEFAULT
        section_data['showDefaults']['subtitles'] = bool(app.SUBTITLES_DEFAULT)
        section_data['showDefaults']['seasonFolders'] = bool(
            app.SEASON_FOLDERS_DEFAULT)
        section_data['showDefaults']['anime'] = bool(app.ANIME_DEFAULT)
        section_data['showDefaults']['scene'] = bool(app.SCENE_DEFAULT)

        section_data['news'] = NonEmptyDict()
        section_data['news']['lastRead'] = app.NEWS_LAST_READ
        section_data['news']['latest'] = app.NEWS_LATEST
        section_data['news']['unread'] = app.NEWS_UNREAD

        section_data['logs'] = NonEmptyDict()
        section_data['logs']['loggingLevels'] = {
            k.lower(): v
            for k, v in iteritems(logger.LOGGING_LEVELS)
        }
        section_data['logs']['numErrors'] = len(classes.ErrorViewer.errors)
        section_data['logs']['numWarnings'] = len(classes.WarningViewer.errors)

        section_data['failedDownloads'] = NonEmptyDict()
        section_data['failedDownloads']['enabled'] = bool(
            app.USE_FAILED_DOWNLOADS)
        section_data['failedDownloads']['deleteFailed'] = bool(
            app.DELETE_FAILED)

        section_data['kodi'] = NonEmptyDict()
        section_data['kodi']['enabled'] = bool(app.USE_KODI)
        section_data['kodi']['alwaysOn'] = bool(app.KODI_ALWAYS_ON)
        section_data['kodi']['notify'] = NonEmptyDict()
        section_data['kodi']['notify']['snatch'] = bool(
            app.KODI_NOTIFY_ONSNATCH)
        section_data['kodi']['notify']['download'] = bool(
            app.KODI_NOTIFY_ONDOWNLOAD)
        section_data['kodi']['notify']['subtitleDownload'] = bool(
            app.KODI_NOTIFY_ONSUBTITLEDOWNLOAD)
        section_data['kodi']['update'] = NonEmptyDict()
        section_data['kodi']['update']['library'] = bool(
            app.KODI_UPDATE_LIBRARY)
        section_data['kodi']['update']['full'] = bool(app.KODI_UPDATE_FULL)
        section_data['kodi']['update']['onlyFirst'] = bool(
            app.KODI_UPDATE_ONLYFIRST)
        section_data['kodi']['host'] = app.KODI_HOST
        section_data['kodi']['username'] = app.KODI_USERNAME
        section_data['kodi']['libraryCleanPending'] = bool(
            app.KODI_LIBRARY_CLEAN_PENDING)
        section_data['kodi']['cleanLibrary'] = bool(app.KODI_CLEAN_LIBRARY)

        section_data['plex'] = NonEmptyDict()
        section_data['plex']['server'] = NonEmptyDict()
        section_data['plex']['server']['enabled'] = bool(app.USE_PLEX_SERVER)
        section_data['plex']['server']['notify'] = NonEmptyDict()
        section_data['plex']['server']['notify']['snatch'] = bool(
            app.PLEX_NOTIFY_ONSNATCH)
        section_data['plex']['server']['notify']['download'] = bool(
            app.PLEX_NOTIFY_ONDOWNLOAD)
        section_data['plex']['server']['notify']['subtitleDownload'] = bool(
            app.PLEX_NOTIFY_ONSUBTITLEDOWNLOAD)
        section_data['plex']['server']['updateLibrary'] = bool(
            app.PLEX_UPDATE_LIBRARY)
        section_data['plex']['server']['host'] = app.PLEX_SERVER_HOST
        section_data['plex']['server']['username'] = app.PLEX_SERVER_USERNAME
        section_data['plex']['client'] = NonEmptyDict()
        section_data['plex']['client']['enabled'] = bool(app.USE_PLEX_CLIENT)
        section_data['plex']['client']['username'] = app.PLEX_CLIENT_USERNAME
        section_data['plex']['client']['host'] = app.PLEX_CLIENT_HOST

        section_data['emby'] = NonEmptyDict()
        section_data['emby']['enabled'] = bool(app.USE_EMBY)
        section_data['emby']['host'] = app.EMBY_HOST

        section_data['torrents'] = NonEmptyDict()
        section_data['torrents']['authType'] = app.TORRENT_AUTH_TYPE
        section_data['torrents']['dir'] = app.TORRENT_DIR
        section_data['torrents']['enabled'] = bool(app.USE_TORRENTS)
        section_data['torrents']['highBandwidth'] = app.TORRENT_HIGH_BANDWIDTH
        section_data['torrents']['host'] = app.TORRENT_HOST
        section_data['torrents']['label'] = app.TORRENT_LABEL
        section_data['torrents']['labelAnime'] = app.TORRENT_LABEL_ANIME
        section_data['torrents']['method'] = app.TORRENT_METHOD
        section_data['torrents']['path'] = app.TORRENT_PATH
        section_data['torrents']['paused'] = bool(app.TORRENT_PAUSED)
        section_data['torrents']['rpcurl'] = app.TORRENT_RPCURL
        section_data['torrents']['seedLocation'] = app.TORRENT_SEED_LOCATION
        section_data['torrents']['seedTime'] = app.TORRENT_SEED_TIME
        section_data['torrents']['username'] = app.TORRENT_USERNAME
        section_data['torrents']['verifySSL'] = bool(app.TORRENT_VERIFY_CERT)

        section_data['nzb'] = NonEmptyDict()
        section_data['nzb']['enabled'] = bool(app.USE_NZBS)
        section_data['nzb']['dir'] = app.NZB_DIR
        section_data['nzb']['method'] = app.NZB_METHOD
        section_data['nzb']['nzbget'] = NonEmptyDict()
        section_data['nzb']['nzbget']['category'] = app.NZBGET_CATEGORY
        section_data['nzb']['nzbget'][
            'categoryAnime'] = app.NZBGET_CATEGORY_ANIME
        section_data['nzb']['nzbget'][
            'categoryAnimeBacklog'] = app.NZBGET_CATEGORY_ANIME_BACKLOG
        section_data['nzb']['nzbget'][
            'categoryBacklog'] = app.NZBGET_CATEGORY_BACKLOG
        section_data['nzb']['nzbget']['host'] = app.NZBGET_HOST
        section_data['nzb']['nzbget']['priority'] = app.NZBGET_PRIORITY
        section_data['nzb']['nzbget']['useHttps'] = bool(app.NZBGET_USE_HTTPS)
        section_data['nzb']['nzbget']['username'] = app.NZBGET_USERNAME

        section_data['nzb']['sabnzbd'] = NonEmptyDict()
        section_data['nzb']['sabnzbd']['category'] = app.SAB_CATEGORY
        section_data['nzb']['sabnzbd'][
            'categoryAnime'] = app.SAB_CATEGORY_ANIME
        section_data['nzb']['sabnzbd'][
            'categoryAnimeBacklog'] = app.SAB_CATEGORY_ANIME_BACKLOG
        section_data['nzb']['sabnzbd'][
            'categoryBacklog'] = app.SAB_CATEGORY_BACKLOG
        section_data['nzb']['sabnzbd']['forced'] = bool(app.SAB_FORCED)
        section_data['nzb']['sabnzbd']['host'] = app.SAB_HOST
        section_data['nzb']['sabnzbd']['username'] = app.SAB_USERNAME

        section_data['layout'] = NonEmptyDict()
        section_data['layout']['schedule'] = app.COMING_EPS_LAYOUT
        section_data['layout']['history'] = app.HISTORY_LAYOUT
        section_data['layout']['home'] = app.HOME_LAYOUT
        section_data['layout']['show'] = NonEmptyDict()
        section_data['layout']['show']['allSeasons'] = bool(
            app.DISPLAY_ALL_SEASONS)
        section_data['layout']['show']['specials'] = bool(
            app.DISPLAY_SHOW_SPECIALS)
        section_data['layout']['show']['showListOrder'] = app.SHOW_LIST_ORDER

        section_data['selectedRootIndex'] = int(
            app.SELECTED_ROOT
        ) if app.SELECTED_ROOT is not None else -1  # All paths

        section_data['backlogOverview'] = NonEmptyDict()
        section_data['backlogOverview']['period'] = app.BACKLOG_PERIOD
        section_data['backlogOverview']['status'] = app.BACKLOG_STATUS

        section_data['indexers'] = NonEmptyDict()
        section_data['indexers']['config'] = get_indexer_config()

        section_data['postProcessing'] = NonEmptyDict()
        section_data['postProcessing']['naming'] = NonEmptyDict()
        section_data['postProcessing']['naming'][
            'pattern'] = app.NAMING_PATTERN
        section_data['postProcessing']['naming']['multiEp'] = int(
            app.NAMING_MULTI_EP)
        section_data['postProcessing']['naming'][
            'patternAirByDate'] = app.NAMING_ABD_PATTERN
        section_data['postProcessing']['naming'][
            'patternSports'] = app.NAMING_SPORTS_PATTERN
        section_data['postProcessing']['naming'][
            'patternAnime'] = app.NAMING_ANIME_PATTERN
        section_data['postProcessing']['naming'][
            'enableCustomNamingAirByDate'] = bool(app.NAMING_CUSTOM_ABD)
        section_data['postProcessing']['naming'][
            'enableCustomNamingSports'] = bool(app.NAMING_CUSTOM_SPORTS)
        section_data['postProcessing']['naming'][
            'enableCustomNamingAnime'] = bool(app.NAMING_CUSTOM_ANIME)
        section_data['postProcessing']['naming']['animeMultiEp'] = int(
            app.NAMING_ANIME_MULTI_EP)
        section_data['postProcessing']['naming']['animeNamingType'] = int(
            app.NAMING_ANIME)
        section_data['postProcessing']['naming']['stripYear'] = bool(
            app.NAMING_STRIP_YEAR)
        section_data['postProcessing']['showDownloadDir'] = app.TV_DOWNLOAD_DIR
        section_data['postProcessing']['processAutomatically'] = bool(
            app.PROCESS_AUTOMATICALLY)
        section_data['postProcessing']['postponeIfSyncFiles'] = bool(
            app.POSTPONE_IF_SYNC_FILES)
        section_data['postProcessing']['postponeIfNoSubs'] = bool(
            app.POSTPONE_IF_NO_SUBS)
        section_data['postProcessing']['renameEpisodes'] = bool(
            app.RENAME_EPISODES)
        section_data['postProcessing']['createMissingShowDirs'] = bool(
            app.CREATE_MISSING_SHOW_DIRS)
        section_data['postProcessing']['addShowsWithoutDir'] = bool(
            app.ADD_SHOWS_WO_DIR)
        section_data['postProcessing']['moveAssociatedFiles'] = bool(
            app.MOVE_ASSOCIATED_FILES)
        section_data['postProcessing']['nfoRename'] = bool(app.NFO_RENAME)
        section_data['postProcessing']['airdateEpisodes'] = bool(
            app.AIRDATE_EPISODES)
        section_data['postProcessing']['unpack'] = bool(app.UNPACK)
        section_data['postProcessing']['deleteRarContent'] = bool(
            app.DELRARCONTENTS)
        section_data['postProcessing']['noDelete'] = bool(app.NO_DELETE)
        section_data['postProcessing']['processMethod'] = app.PROCESS_METHOD
        section_data['postProcessing']['reflinkAvailable'] = bool(
            pkgutil.find_loader('reflink'))
        section_data['postProcessing']['autoPostprocessorFrequency'] = int(
            app.AUTOPOSTPROCESSOR_FREQUENCY)
        section_data['postProcessing']['syncFiles'] = app.SYNC_FILES
        section_data['postProcessing'][
            'fileTimestampTimezone'] = app.FILE_TIMESTAMP_TIMEZONE
        section_data['postProcessing'][
            'allowedExtensions'] = app.ALLOWED_EXTENSIONS
        section_data['postProcessing']['extraScripts'] = app.EXTRA_SCRIPTS
        section_data['postProcessing'][
            'extraScriptsUrl'] = app.EXTRA_SCRIPTS_URL
        section_data['postProcessing'][
            'multiEpStrings'] = common.MULTI_EP_STRINGS

        return section_data
Exemplo n.º 3
0
    def data_main():
        """Main."""
        section_data = NonEmptyDict()

        section_data['anonRedirect'] = app.ANON_REDIRECT
        section_data['animeSplitHome'] = bool(app.ANIME_SPLIT_HOME)
        section_data['animeSplitHomeInTabs'] = bool(
            app.ANIME_SPLIT_HOME_IN_TABS)
        section_data['comingEpsSort'] = app.COMING_EPS_SORT
        section_data['comingEpsDisplayPaused'] = bool(
            app.COMING_EPS_DISPLAY_PAUSED)
        section_data['datePreset'] = app.DATE_PRESET
        section_data['fuzzyDating'] = bool(app.FUZZY_DATING)
        section_data['themeName'] = app.THEME_NAME
        section_data['posterSortby'] = app.POSTER_SORTBY
        section_data['posterSortdir'] = app.POSTER_SORTDIR
        section_data['rootDirs'] = app.ROOT_DIRS
        section_data['sortArticle'] = bool(app.SORT_ARTICLE)
        section_data['timePreset'] = app.TIME_PRESET
        section_data['trimZero'] = bool(app.TRIM_ZERO)
        section_data['fanartBackground'] = bool(app.FANART_BACKGROUND)
        section_data['fanartBackgroundOpacity'] = float(
            app.FANART_BACKGROUND_OPACITY or 0)
        section_data['branch'] = app.BRANCH
        section_data['commitHash'] = app.CUR_COMMIT_HASH
        section_data['release'] = app.APP_VERSION
        section_data['sslVersion'] = app.OPENSSL_VERSION
        section_data['pythonVersion'] = sys.version
        section_data['databaseVersion'] = NonEmptyDict()
        section_data['databaseVersion']['major'] = app.MAJOR_DB_VERSION
        section_data['databaseVersion']['minor'] = app.MINOR_DB_VERSION
        section_data['os'] = platform.platform()
        section_data['pid'] = app.PID
        section_data['locale'] = '.'.join(
            [text_type(loc or 'Unknown') for loc in app.LOCALE])
        section_data['localUser'] = app.OS_USER or 'Unknown'
        section_data['programDir'] = app.PROG_DIR
        section_data['configFile'] = app.CONFIG_FILE
        section_data['dbPath'] = db.DBConnection().path
        section_data['cacheDir'] = app.CACHE_DIR
        section_data['logDir'] = app.LOG_DIR
        section_data['appArgs'] = app.MY_ARGS
        section_data['webRoot'] = app.WEB_ROOT
        section_data['githubUrl'] = app.GITHUB_IO_URL
        section_data['wikiUrl'] = app.WIKI_URL
        section_data['donationsUrl'] = app.DONATIONS_URL
        section_data['sourceUrl'] = app.APPLICATION_URL
        section_data['downloadUrl'] = app.DOWNLOAD_URL
        section_data['subtitlesMulti'] = bool(app.SUBTITLES_MULTI)
        section_data['namingForceFolders'] = bool(app.NAMING_FORCE_FOLDERS)
        section_data['subtitles'] = NonEmptyDict()
        section_data['subtitles']['enabled'] = bool(app.USE_SUBTITLES)
        section_data['recentShows'] = app.SHOWS_RECENT

        section_data['news'] = NonEmptyDict()
        section_data['news']['lastRead'] = app.NEWS_LAST_READ
        section_data['news']['latest'] = app.NEWS_LATEST
        section_data['news']['unread'] = app.NEWS_UNREAD

        section_data['logs'] = NonEmptyDict()
        section_data['logs']['loggingLevels'] = {
            k.lower(): v
            for k, v in iteritems(logger.LOGGING_LEVELS)
        }
        section_data['logs']['numErrors'] = len(classes.ErrorViewer.errors)
        section_data['logs']['numWarnings'] = len(classes.WarningViewer.errors)

        section_data['failedDownloads'] = NonEmptyDict()
        section_data['failedDownloads']['enabled'] = bool(
            app.USE_FAILED_DOWNLOADS)
        section_data['failedDownloads']['deleteFailed'] = bool(
            app.DELETE_FAILED)

        section_data['kodi'] = NonEmptyDict()
        section_data['kodi']['enabled'] = bool(app.USE_KODI)
        section_data['kodi']['alwaysOn'] = bool(app.KODI_ALWAYS_ON)
        section_data['kodi']['notify'] = NonEmptyDict()
        section_data['kodi']['notify']['snatch'] = bool(
            app.KODI_NOTIFY_ONSNATCH)
        section_data['kodi']['notify']['download'] = bool(
            app.KODI_NOTIFY_ONDOWNLOAD)
        section_data['kodi']['notify']['subtitleDownload'] = bool(
            app.KODI_NOTIFY_ONSUBTITLEDOWNLOAD)
        section_data['kodi']['update'] = NonEmptyDict()
        section_data['kodi']['update']['library'] = bool(
            app.KODI_UPDATE_LIBRARY)
        section_data['kodi']['update']['full'] = bool(app.KODI_UPDATE_FULL)
        section_data['kodi']['update']['onlyFirst'] = bool(
            app.KODI_UPDATE_ONLYFIRST)
        section_data['kodi']['host'] = app.KODI_HOST
        section_data['kodi']['username'] = app.KODI_USERNAME
        section_data['kodi']['libraryCleanPending'] = bool(
            app.KODI_LIBRARY_CLEAN_PENDING)
        section_data['kodi']['cleanLibrary'] = bool(app.KODI_CLEAN_LIBRARY)

        section_data['plex'] = NonEmptyDict()
        section_data['plex']['server'] = NonEmptyDict()
        section_data['plex']['server']['enabled'] = bool(app.USE_PLEX_SERVER)
        section_data['plex']['server']['notify'] = NonEmptyDict()
        section_data['plex']['server']['notify']['snatch'] = bool(
            app.PLEX_NOTIFY_ONSNATCH)
        section_data['plex']['server']['notify']['download'] = bool(
            app.PLEX_NOTIFY_ONDOWNLOAD)
        section_data['plex']['server']['notify']['subtitleDownload'] = bool(
            app.PLEX_NOTIFY_ONSUBTITLEDOWNLOAD)
        section_data['plex']['server']['updateLibrary'] = bool(
            app.PLEX_UPDATE_LIBRARY)
        section_data['plex']['server']['host'] = app.PLEX_SERVER_HOST
        section_data['plex']['server']['username'] = app.PLEX_SERVER_USERNAME
        section_data['plex']['client'] = NonEmptyDict()
        section_data['plex']['client']['enabled'] = bool(app.USE_PLEX_CLIENT)
        section_data['plex']['client']['username'] = app.PLEX_CLIENT_USERNAME
        section_data['plex']['client']['host'] = app.PLEX_CLIENT_HOST

        section_data['emby'] = NonEmptyDict()
        section_data['emby']['enabled'] = bool(app.USE_EMBY)
        section_data['emby']['host'] = app.EMBY_HOST

        section_data['torrents'] = NonEmptyDict()
        section_data['torrents']['authType'] = app.TORRENT_AUTH_TYPE
        section_data['torrents']['dir'] = app.TORRENT_DIR
        section_data['torrents']['enabled'] = bool(app.USE_TORRENTS)
        section_data['torrents']['highBandwidth'] = app.TORRENT_HIGH_BANDWIDTH
        section_data['torrents']['host'] = app.TORRENT_HOST
        section_data['torrents']['label'] = app.TORRENT_LABEL
        section_data['torrents']['labelAnime'] = app.TORRENT_LABEL_ANIME
        section_data['torrents']['method'] = app.TORRENT_METHOD
        section_data['torrents']['path'] = app.TORRENT_PATH
        section_data['torrents']['paused'] = bool(app.TORRENT_PAUSED)
        section_data['torrents']['rpcurl'] = app.TORRENT_RPCURL
        section_data['torrents']['seedLocation'] = app.TORRENT_SEED_LOCATION
        section_data['torrents']['seedTime'] = app.TORRENT_SEED_TIME
        section_data['torrents']['username'] = app.TORRENT_USERNAME
        section_data['torrents']['verifySSL'] = bool(app.TORRENT_VERIFY_CERT)

        section_data['nzb'] = NonEmptyDict()
        section_data['nzb']['enabled'] = bool(app.USE_NZBS)
        section_data['nzb']['dir'] = app.NZB_DIR
        section_data['nzb']['method'] = app.NZB_METHOD
        section_data['nzb']['nzbget'] = NonEmptyDict()
        section_data['nzb']['nzbget']['category'] = app.NZBGET_CATEGORY
        section_data['nzb']['nzbget'][
            'categoryAnime'] = app.NZBGET_CATEGORY_ANIME
        section_data['nzb']['nzbget'][
            'categoryAnimeBacklog'] = app.NZBGET_CATEGORY_ANIME_BACKLOG
        section_data['nzb']['nzbget'][
            'categoryBacklog'] = app.NZBGET_CATEGORY_BACKLOG
        section_data['nzb']['nzbget']['host'] = app.NZBGET_HOST
        section_data['nzb']['nzbget']['priority'] = app.NZBGET_PRIORITY
        section_data['nzb']['nzbget']['useHttps'] = bool(app.NZBGET_USE_HTTPS)
        section_data['nzb']['nzbget']['username'] = app.NZBGET_USERNAME

        section_data['nzb']['sabnzbd'] = NonEmptyDict()
        section_data['nzb']['sabnzbd']['category'] = app.SAB_CATEGORY
        section_data['nzb']['sabnzbd'][
            'categoryAnime'] = app.SAB_CATEGORY_ANIME
        section_data['nzb']['sabnzbd'][
            'categoryAnimeBacklog'] = app.SAB_CATEGORY_ANIME_BACKLOG
        section_data['nzb']['sabnzbd'][
            'categoryBacklog'] = app.SAB_CATEGORY_BACKLOG
        section_data['nzb']['sabnzbd']['forced'] = bool(app.SAB_FORCED)
        section_data['nzb']['sabnzbd']['host'] = app.SAB_HOST
        section_data['nzb']['sabnzbd']['username'] = app.SAB_USERNAME

        section_data['layout'] = NonEmptyDict()
        section_data['layout']['schedule'] = app.COMING_EPS_LAYOUT
        section_data['layout']['history'] = app.HISTORY_LAYOUT
        section_data['layout']['home'] = app.HOME_LAYOUT
        section_data['layout']['show'] = NonEmptyDict()
        section_data['layout']['show']['allSeasons'] = bool(
            app.DISPLAY_ALL_SEASONS)
        section_data['layout']['show']['specials'] = bool(
            app.DISPLAY_SHOW_SPECIALS)
        section_data['layout']['show']['showListOrder'] = app.SHOW_LIST_ORDER

        section_data['selectedRootIndex'] = int(
            app.SELECTED_ROOT
        ) if app.SELECTED_ROOT is not None else -1  # All paths

        section_data['backlogOverview'] = NonEmptyDict()
        section_data['backlogOverview']['period'] = app.BACKLOG_PERIOD
        section_data['backlogOverview']['status'] = app.BACKLOG_STATUS

        section_data['indexers'] = NonEmptyDict()
        section_data['indexers']['config'] = get_indexer_config()

        section_data['postProcessing'] = NonEmptyDict()
        section_data['postProcessing']['processMethod'] = app.PROCESS_METHOD
        section_data['postProcessing']['postponeIfNoSubs'] = bool(
            app.POSTPONE_IF_NO_SUBS)

        return section_data
Exemplo n.º 4
0
    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['animeSplitHomeInTabs'] = app.ANIME_SPLIT_HOME_IN_TABS
        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['dbPath'] = db.DBConnection().path
        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['layout']['show']['showListOrder'] = app.SHOW_LIST_ORDER
        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
        config_data['indexers'] = NonEmptyDict()
        config_data['indexers']['config'] = get_indexer_config()

        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)
Exemplo n.º 5
0
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'] = bool(app.ANIME_SPLIT_HOME)
    config_data['animeSplitHomeInTabs'] = bool(app.ANIME_SPLIT_HOME_IN_TABS)
    config_data['comingEpsSort'] = app.COMING_EPS_SORT
    config_data['comingEpsDisplayPaused'] = bool(app.COMING_EPS_DISPLAY_PAUSED)
    config_data['datePreset'] = app.DATE_PRESET
    config_data['fuzzyDating'] = bool(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'] = bool(app.SORT_ARTICLE)
    config_data['timePreset'] = app.TIME_PRESET
    config_data['trimZero'] = bool(app.TRIM_ZERO)
    config_data['fanartBackground'] = bool(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['dbPath'] = db.DBConnection().path
    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'] = bool(app.SUBTITLES_MULTI)
    config_data['namingForceFolders'] = bool(app.NAMING_FORCE_FOLDERS)
    config_data['subtitles'] = NonEmptyDict()
    config_data['subtitles']['enabled'] = bool(app.USE_SUBTITLES)

    config_data['news'] = NonEmptyDict()
    config_data['news']['lastRead'] = app.NEWS_LAST_READ
    config_data['news']['latest'] = app.NEWS_LATEST
    config_data['news']['unread'] = app.NEWS_UNREAD

    config_data['kodi'] = NonEmptyDict()
    config_data['kodi']['enabled'] = bool(app.USE_KODI)
    config_data['kodi']['alwaysOn'] = bool(app.KODI_ALWAYS_ON)
    config_data['kodi']['notify'] = NonEmptyDict()
    config_data['kodi']['notify']['snatch'] = bool(app.KODI_NOTIFY_ONSNATCH)
    config_data['kodi']['notify']['download'] = bool(
        app.KODI_NOTIFY_ONDOWNLOAD)
    config_data['kodi']['notify']['subtitleDownload'] = bool(
        app.KODI_NOTIFY_ONSUBTITLEDOWNLOAD)
    config_data['kodi']['update'] = NonEmptyDict()
    config_data['kodi']['update']['library'] = bool(app.KODI_UPDATE_LIBRARY)
    config_data['kodi']['update']['full'] = bool(app.KODI_UPDATE_FULL)
    config_data['kodi']['update']['onlyFirst'] = bool(
        app.KODI_UPDATE_ONLYFIRST)
    config_data['kodi']['host'] = app.KODI_HOST
    config_data['kodi']['username'] = app.KODI_USERNAME
    # config_data['kodi']['password'] = app.KODI_PASSWORD
    config_data['kodi']['libraryCleanPending'] = bool(
        app.KODI_LIBRARY_CLEAN_PENDING)
    config_data['kodi']['cleanLibrary'] = bool(app.KODI_CLEAN_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']['authType'] = app.TORRENT_AUTH_TYPE
    config_data['torrents']['dir'] = app.TORRENT_DIR
    config_data['torrents']['enabled'] = bool(app.USE_TORRENTS)
    config_data['torrents']['highBandwidth'] = app.TORRENT_HIGH_BANDWIDTH
    config_data['torrents']['host'] = app.TORRENT_HOST
    config_data['torrents']['label'] = app.TORRENT_LABEL
    config_data['torrents']['labelAnime'] = app.TORRENT_LABEL_ANIME
    config_data['torrents']['method'] = app.TORRENT_METHOD
    # config_data['torrents']['password'] = app.TORRENT_PASSWORD
    config_data['torrents']['path'] = app.TORRENT_PATH
    config_data['torrents']['paused'] = bool(app.TORRENT_PAUSED)
    config_data['torrents']['rpcurl'] = app.TORRENT_RPCURL
    config_data['torrents']['seedLocation'] = app.TORRENT_SEED_LOCATION
    config_data['torrents']['seedTime'] = app.TORRENT_SEED_TIME
    config_data['torrents']['username'] = app.TORRENT_USERNAME
    config_data['torrents']['verifySSL'] = bool(app.TORRENT_VERIFY_CERT)

    config_data['nzb'] = NonEmptyDict()
    config_data['nzb']['enabled'] = bool(app.USE_NZBS)
    config_data['nzb']['dir'] = app.NZB_DIR
    config_data['nzb']['method'] = app.NZB_METHOD
    config_data['nzb']['nzbget'] = NonEmptyDict()
    config_data['nzb']['nzbget']['category'] = app.NZBGET_CATEGORY
    config_data['nzb']['nzbget']['categoryAnime'] = app.NZBGET_CATEGORY_ANIME
    config_data['nzb']['nzbget'][
        'categoryAnimeBacklog'] = app.NZBGET_CATEGORY_ANIME_BACKLOG
    config_data['nzb']['nzbget'][
        'categoryBacklog'] = app.NZBGET_CATEGORY_BACKLOG
    config_data['nzb']['nzbget']['host'] = app.NZBGET_HOST
    # config_data['nzb']['nzbget']['password'] = app.NZBGET_PASSWORD
    config_data['nzb']['nzbget']['priority'] = app.NZBGET_PRIORITY
    config_data['nzb']['nzbget']['useHttps'] = bool(app.NZBGET_USE_HTTPS)
    config_data['nzb']['nzbget']['username'] = app.NZBGET_USERNAME

    config_data['nzb']['sabnzbd'] = NonEmptyDict()
    # config_data['nzb']['sabnzbd']['apiKey'] = app.SAB_APIKEY
    config_data['nzb']['sabnzbd']['category'] = app.SAB_CATEGORY
    config_data['nzb']['sabnzbd']['categoryAnime'] = app.SAB_CATEGORY_ANIME
    config_data['nzb']['sabnzbd'][
        'categoryAnimeBacklog'] = app.SAB_CATEGORY_ANIME_BACKLOG
    config_data['nzb']['sabnzbd']['categoryBacklog'] = app.SAB_CATEGORY_BACKLOG
    config_data['nzb']['sabnzbd']['forced'] = bool(app.SAB_FORCED)
    config_data['nzb']['sabnzbd']['host'] = app.SAB_HOST
    # config_data['nzb']['sabnzbd']['password'] = app.SAB_PASSWORD
    config_data['nzb']['sabnzbd']['username'] = app.SAB_USERNAME

    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['layout']['show']['showListOrder'] = app.SHOW_LIST_ORDER

    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

    config_data['indexers'] = NonEmptyDict()
    config_data['indexers']['config'] = get_indexer_config()

    return config_data
Exemplo n.º 6
0
def config_main(monkeypatch, app_config):
    python_version = 'Python Test v1.2.3.4'
    monkeypatch.setattr(sys, 'version', python_version)
    app_config('PID', 4321)
    os_user = app_config('OS_USER', 'superuser')
    app_config('LOCALE', (None, 'ABC'))
    app_locale = 'Unknown.ABC'

    # postProcessing.naming
    app_config('NAMING_ANIME', 3)

    config_data = NonEmptyDict()
    config_data['anonRedirect'] = app.ANON_REDIRECT
    config_data['animeSplitHome'] = bool(app.ANIME_SPLIT_HOME)
    config_data['animeSplitHomeInTabs'] = bool(app.ANIME_SPLIT_HOME_IN_TABS)
    config_data['comingEpsSort'] = app.COMING_EPS_SORT
    config_data['comingEpsDisplayPaused'] = bool(app.COMING_EPS_DISPLAY_PAUSED)
    config_data['datePreset'] = app.DATE_PRESET
    config_data['fuzzyDating'] = bool(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'] = bool(app.SORT_ARTICLE)
    config_data['timePreset'] = app.TIME_PRESET
    config_data['trimZero'] = bool(app.TRIM_ZERO)
    config_data['fanartBackground'] = bool(app.FANART_BACKGROUND)
    config_data['fanartBackgroundOpacity'] = float(app.FANART_BACKGROUND_OPACITY or 0)
    config_data['gitUsername'] = app.GIT_USERNAME
    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['pid'] = app.PID
    config_data['locale'] = app_locale
    config_data['localUser'] = os_user
    config_data['programDir'] = app.PROG_DIR
    config_data['dataDir'] = app.DATA_DIR
    config_data['configFile'] = app.CONFIG_FILE
    config_data['dbPath'] = db.DBConnection().path
    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['runsInDocker'] = bool(app.RUNS_IN_DOCKER)
    config_data['githubUrl'] = app.GITHUB_IO_URL
    config_data['wikiUrl'] = app.WIKI_URL
    config_data['donationsUrl'] = app.DONATIONS_URL
    config_data['sourceUrl'] = app.APPLICATION_URL
    config_data['downloadUrl'] = app.DOWNLOAD_URL
    config_data['subtitlesMulti'] = bool(app.SUBTITLES_MULTI)
    config_data['namingForceFolders'] = bool(app.NAMING_FORCE_FOLDERS)
    config_data['subtitles'] = NonEmptyDict()
    config_data['subtitles']['enabled'] = bool(app.USE_SUBTITLES)
    config_data['recentShows'] = app.SHOWS_RECENT

    config_data['showDefaults'] = {}
    config_data['showDefaults']['status'] = app.STATUS_DEFAULT
    config_data['showDefaults']['statusAfter'] = app.STATUS_DEFAULT_AFTER
    config_data['showDefaults']['quality'] = app.QUALITY_DEFAULT
    config_data['showDefaults']['subtitles'] = bool(app.SUBTITLES_DEFAULT)
    config_data['showDefaults']['seasonFolders'] = bool(app.SEASON_FOLDERS_DEFAULT)
    config_data['showDefaults']['anime'] = bool(app.ANIME_DEFAULT)
    config_data['showDefaults']['scene'] = bool(app.SCENE_DEFAULT)

    config_data['news'] = NonEmptyDict()
    config_data['news']['lastRead'] = app.NEWS_LAST_READ
    config_data['news']['latest'] = app.NEWS_LATEST
    config_data['news']['unread'] = app.NEWS_UNREAD

    config_data['logs'] = NonEmptyDict()
    config_data['logs']['loggingLevels'] = {k.lower(): v for k, v in iteritems(logger.LOGGING_LEVELS)}
    config_data['logs']['numErrors'] = len(classes.ErrorViewer.errors)
    config_data['logs']['numWarnings'] = len(classes.WarningViewer.errors)

    config_data['failedDownloads'] = NonEmptyDict()
    config_data['failedDownloads']['enabled'] = bool(app.USE_FAILED_DOWNLOADS)
    config_data['failedDownloads']['deleteFailed'] = bool(app.DELETE_FAILED)

    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['layout']['show']['showListOrder'] = app.SHOW_LIST_ORDER

    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

    config_data['indexers'] = NonEmptyDict()
    config_data['indexers']['config'] = get_indexer_config()

    config_data['postProcessing'] = NonEmptyDict()
    config_data['postProcessing']['naming'] = NonEmptyDict()
    config_data['postProcessing']['naming']['pattern'] = app.NAMING_PATTERN
    config_data['postProcessing']['naming']['multiEp'] = int(app.NAMING_MULTI_EP)
    config_data['postProcessing']['naming']['patternAirByDate'] = app.NAMING_ABD_PATTERN
    config_data['postProcessing']['naming']['patternSports'] = app.NAMING_SPORTS_PATTERN
    config_data['postProcessing']['naming']['patternAnime'] = app.NAMING_ANIME_PATTERN
    config_data['postProcessing']['naming']['enableCustomNamingAirByDate'] = bool(app.NAMING_CUSTOM_ABD)
    config_data['postProcessing']['naming']['enableCustomNamingSports'] = bool(app.NAMING_CUSTOM_SPORTS)
    config_data['postProcessing']['naming']['enableCustomNamingAnime'] = bool(app.NAMING_CUSTOM_ANIME)
    config_data['postProcessing']['naming']['animeMultiEp'] = int(app.NAMING_ANIME_MULTI_EP)
    config_data['postProcessing']['naming']['animeNamingType'] = int(app.NAMING_ANIME)
    config_data['postProcessing']['naming']['stripYear'] = bool(app.NAMING_STRIP_YEAR)
    config_data['postProcessing']['showDownloadDir'] = app.TV_DOWNLOAD_DIR
    config_data['postProcessing']['processAutomatically'] = bool(app.PROCESS_AUTOMATICALLY)
    config_data['postProcessing']['postponeIfSyncFiles'] = bool(app.POSTPONE_IF_SYNC_FILES)
    config_data['postProcessing']['postponeIfNoSubs'] = bool(app.POSTPONE_IF_NO_SUBS)
    config_data['postProcessing']['renameEpisodes'] = bool(app.RENAME_EPISODES)
    config_data['postProcessing']['createMissingShowDirs'] = bool(app.CREATE_MISSING_SHOW_DIRS)
    config_data['postProcessing']['addShowsWithoutDir'] = bool(app.ADD_SHOWS_WO_DIR)
    config_data['postProcessing']['moveAssociatedFiles'] = bool(app.MOVE_ASSOCIATED_FILES)
    config_data['postProcessing']['nfoRename'] = bool(app.NFO_RENAME)
    config_data['postProcessing']['airdateEpisodes'] = bool(app.AIRDATE_EPISODES)
    config_data['postProcessing']['unpack'] = bool(app.UNPACK)
    config_data['postProcessing']['deleteRarContent'] = bool(app.DELRARCONTENTS)
    config_data['postProcessing']['noDelete'] = bool(app.NO_DELETE)
    config_data['postProcessing']['processMethod'] = app.PROCESS_METHOD
    config_data['postProcessing']['reflinkAvailable'] = bool(pkgutil.find_loader('reflink'))
    config_data['postProcessing']['autoPostprocessorFrequency'] = int(app.AUTOPOSTPROCESSOR_FREQUENCY)
    config_data['postProcessing']['syncFiles'] = app.SYNC_FILES
    config_data['postProcessing']['fileTimestampTimezone'] = app.FILE_TIMESTAMP_TIMEZONE
    config_data['postProcessing']['allowedExtensions'] = list(app.ALLOWED_EXTENSIONS)
    config_data['postProcessing']['extraScripts'] = app.EXTRA_SCRIPTS
    config_data['postProcessing']['extraScriptsUrl'] = app.EXTRA_SCRIPTS_URL
    config_data['postProcessing']['multiEpStrings'] = {text_type(k): v for k, v in iteritems(common.MULTI_EP_STRINGS)}

    return config_data