2016-03-21 00:26:02 -04:00
|
|
|
# -*- coding: utf-8 -*-
|
2017-02-20 00:37:00 -05:00
|
|
|
import logging
|
|
|
|
import os
|
2014-12-28 22:21:58 -05:00
|
|
|
from logging.handlers import RotatingFileHandler
|
2016-04-02 02:19:32 -04:00
|
|
|
from platform import uname
|
2020-05-12 00:57:57 +02:00
|
|
|
from uuid import getnode
|
|
|
|
|
2016-03-15 23:47:13 -04:00
|
|
|
from plexapi.config import PlexConfig, reset_base_headers
|
2021-09-12 19:59:23 -05:00
|
|
|
import plexapi.const as const
|
2017-01-26 01:33:01 -05:00
|
|
|
from plexapi.utils import SecretsFilter
|
2014-12-28 22:21:58 -05:00
|
|
|
|
2015-06-01 22:27:43 -04:00
|
|
|
# Load User Defined Config
|
2017-01-26 00:43:19 -05:00
|
|
|
DEFAULT_CONFIG_PATH = os.path.expanduser('~/.config/plexapi/config.ini')
|
2017-02-19 22:18:23 -05:00
|
|
|
CONFIG_PATH = os.environ.get('PLEXAPI_CONFIG_PATH', DEFAULT_CONFIG_PATH)
|
2015-06-01 22:27:43 -04:00
|
|
|
CONFIG = PlexConfig(CONFIG_PATH)
|
|
|
|
|
2017-02-19 22:18:23 -05:00
|
|
|
# PlexAPI Settings
|
|
|
|
PROJECT = 'PlexAPI'
|
2021-09-12 19:59:23 -05:00
|
|
|
VERSION = __version__ = const.__version__
|
2017-02-19 22:18:23 -05:00
|
|
|
TIMEOUT = CONFIG.get('plexapi.timeout', 30, int)
|
2017-11-02 00:25:43 +01:00
|
|
|
X_PLEX_CONTAINER_SIZE = CONFIG.get('plexapi.container_size', 100, int)
|
2018-09-14 19:28:35 +01:00
|
|
|
X_PLEX_ENABLE_FAST_CONNECT = CONFIG.get('plexapi.enable_fast_connect', False, bool)
|
2014-12-28 22:21:58 -05:00
|
|
|
|
2022-02-26 22:26:08 -05:00
|
|
|
# Plex Header Configuration
|
2017-02-19 22:18:23 -05:00
|
|
|
X_PLEX_PROVIDES = CONFIG.get('header.provides', 'controller')
|
2022-02-26 22:26:08 -05:00
|
|
|
X_PLEX_PLATFORM = CONFIG.get('header.platform', CONFIG.get('header.platform', uname()[0]))
|
2017-02-19 22:18:23 -05:00
|
|
|
X_PLEX_PLATFORM_VERSION = CONFIG.get('header.platform_version', uname()[2])
|
|
|
|
X_PLEX_PRODUCT = CONFIG.get('header.product', PROJECT)
|
|
|
|
X_PLEX_VERSION = CONFIG.get('header.version', VERSION)
|
|
|
|
X_PLEX_DEVICE = CONFIG.get('header.device', X_PLEX_PLATFORM)
|
|
|
|
X_PLEX_DEVICE_NAME = CONFIG.get('header.device_name', uname()[1])
|
|
|
|
X_PLEX_IDENTIFIER = CONFIG.get('header.identifier', str(hex(getnode())))
|
2016-03-15 23:47:13 -04:00
|
|
|
BASE_HEADERS = reset_base_headers()
|
2014-12-28 22:21:58 -05:00
|
|
|
|
|
|
|
# Logging Configuration
|
|
|
|
log = logging.getLogger('plexapi')
|
2017-02-19 22:18:23 -05:00
|
|
|
logfile = CONFIG.get('log.path')
|
|
|
|
logformat = CONFIG.get('log.format', '%(asctime)s %(module)12s:%(lineno)-4s %(levelname)-9s %(message)s')
|
|
|
|
loglevel = CONFIG.get('log.level', 'INFO').upper()
|
2015-06-04 10:43:50 -04:00
|
|
|
loghandler = logging.NullHandler()
|
2017-10-29 00:40:35 +02:00
|
|
|
|
|
|
|
if logfile: # pragma: no cover
|
2017-02-19 22:18:23 -05:00
|
|
|
logbackups = CONFIG.get('log.backup_count', 3, int)
|
|
|
|
logbytes = CONFIG.get('log.rotate_bytes', 512000, int)
|
2015-06-04 10:43:50 -04:00
|
|
|
loghandler = RotatingFileHandler(os.path.expanduser(logfile), 'a', logbytes, logbackups)
|
2017-10-29 00:40:35 +02:00
|
|
|
|
2015-06-04 10:43:50 -04:00
|
|
|
loghandler.setFormatter(logging.Formatter(logformat))
|
|
|
|
log.addHandler(loghandler)
|
|
|
|
log.setLevel(loglevel)
|
2017-01-26 01:33:01 -05:00
|
|
|
logfilter = SecretsFilter()
|
2017-02-22 01:22:10 -05:00
|
|
|
if CONFIG.get('log.show_secrets', '').lower() != 'true':
|
2017-01-26 01:33:01 -05:00
|
|
|
log.addFilter(logfilter)
|