Source code for flexget.plugins.operate.proxy

import os

from loguru import logger

from flexget import plugin
from flexget.event import event

logger = logger.bind(name='proxy')

PROTOCOLS = ['http', 'https']


[docs] class Proxy: """Adds a proxy to the requests session.""" schema = { 'oneOf': [ {'type': 'string', 'format': 'url'}, { 'type': 'object', 'properties': {prot: {'type': 'string', 'format': 'url'} for prot in PROTOCOLS}, 'additionalProperties': False, }, ] }
[docs] @plugin.priority(plugin.PRIORITY_FIRST) def on_task_prepare(self, task, config): if not config: # If no configuration is provided, see if there are any proxy env variables proxies = {} for prot in PROTOCOLS: if os.environ.get(prot + '_proxy'): proxies[prot] = os.environ[prot + '_proxy'] if not proxies: # If there were no environment variables set, do nothing return elif isinstance(config, dict): proxies = config else: # Map all protocols to the configured proxy proxies = dict.fromkeys(PROTOCOLS, config) logger.verbose('Setting proxy to {}', proxies) task.requests.proxies = proxies
[docs] @event('plugin.register') def register_plugin(): plugin.register(Proxy, 'proxy', builtin=True, api_ver=2)