Source code for flexget.plugins.operate.spy_headers
from loguru import logger
from flexget import plugin
from flexget.event import event
logger = logger.bind(name='spy_headers')
[docs]
class PluginSpyHeaders:
"""Logs all headers sent in http requests. Useful for resolving issues.
WARNING: At the moment this modifies requests somehow!
"""
schema = {'type': 'boolean'}
[docs]
@staticmethod
def log_requests_headers(response, **kwargs):
logger.info('Request : {}', response.request.url)
logger.info('Response : {} ({})', response.status_code, response.reason)
logger.info('-- Headers: --------------------------')
for header, value in response.request.headers.items():
logger.info('{}: {}', header, value)
logger.info('--------------------------------------')
return response
[docs]
def on_task_start(self, task, config):
if not config:
return
# Add our hook to the requests session
task.requests.hooks['response'].append(self.log_requests_headers)
[docs]
def on_task_exit(self, task, config):
"""Task exiting, remove additions."""
if not config:
return
task.requests.hooks['response'].remove(self.log_requests_headers)
# remove also on abort
on_task_abort = on_task_exit
[docs]
@event('plugin.register')
def register_plugin():
plugin.register(PluginSpyHeaders, 'spy_headers', api_ver=2)