nzbToMedia/core/auto_process/managers/pymedusa.py
p0ps 6a6b25fece
Medusa apiv2 (#1812)
* add fork Medusa-apiV2

* Added classes for sickbeard (base) and PyMedusa.

* refactored part of the forks.py code -> InitSickBeard class.

* Add .vscode to gitignore

* Further refactor forks.py -> sickbeard.py

* Working example for pyMedusa when fork is 'medusa' (no api key)

* fix import for Py2

Co-authored-by: clinton-hall <fock_wulf@hotmail.com>
2021-02-15 15:02:15 +13:00

38 lines
1.8 KiB
Python

import requests
from core import logger
from .sickbeard import SickBeard
class PyMedusa(SickBeard):
"""PyMedusa class."""
def __init__(self, sb_init):
super(PyMedusa, self).__init__(sb_init)
self.cfg = self.sb_init.config # in case we need something that's not already directly on self.sb_init.
def _configure():
"""Configure pymedusa with config options."""
def _create_url(self):
if self.sb_init.apikey:
return '{0}{1}:{2}{3}/api/{4}/'.format(self.sb_init.protocol, self.sb_init.host, self.sb_init.port, self.sb_init.web_root, self.sb_init.apikey)
return '{0}{1}:{2}{3}/home/postprocess/processEpisode'.format(self.sb_init.protocol, self.sb_init.host, self.sb_init.port, self.sb_init.web_root)
def api_call(self):
"""Perform the api call with PyMedusa."""
s = requests.Session()
self._process_fork_prarams()
url = self._create_url()
logger.debug('Opening URL: {0} with params: {1}'.format(url, self.sb_init.fork_params), self.sb_init.section)
if not self.sb_init.apikey and self.sb_init.username and self.sb_init.password:
login = '{0}{1}:{2}{3}/login'.format(self.sb_init.protocol, self.sb_init.host, self.sb_init.port, self.sb_init.web_root)
login_params = {'username': self.sb_init.username, 'password': self.sb_init.password}
r = s.get(login, verify=False, timeout=(30, 60))
if r.status_code in [401, 403] and r.cookies.get('_xsrf'):
login_params['_xsrf'] = r.cookies.get('_xsrf')
s.post(login, data=login_params, stream=True, verify=False, timeout=(30, 60))
return s.get(url, auth=(self.sb_init.username, self.sb_init.password), params=self.sb_init.fork_params, stream=True, verify=False, timeout=(30, 1800))