mirror of
https://github.com/jellyfin/jellyfin-kodi.git
synced 2025-11-10 18:36:33 +00:00
Merged REQUEST and request method and start to remove redundant code
remaining from the previous interface.
This commit is contained in:
parent
3829015cbd
commit
873750632a
1 changed files with 20 additions and 52 deletions
|
|
@ -65,56 +65,39 @@ class HTTP(object):
|
||||||
|
|
||||||
return string
|
return string
|
||||||
|
|
||||||
def REQUEST(self, url, type, params=None, json=None, session=None, \
|
|
||||||
headers=None, verify=None, timeout=None, retry=None):
|
|
||||||
config = self.config.data
|
|
||||||
|
|
||||||
data = {'url': url, 'type': type}
|
|
||||||
if params is not None:
|
|
||||||
data['params'] = params
|
|
||||||
if json is not None:
|
|
||||||
data['json'] = json
|
|
||||||
if headers is not None:
|
|
||||||
data['headers'] = headers
|
|
||||||
if timeout is not None:
|
|
||||||
data['timeout'] = timeout
|
|
||||||
if verify is not None:
|
|
||||||
data['verify'] = verify
|
|
||||||
if retry is not None:
|
|
||||||
data['retry'] = retry
|
|
||||||
if json is not None:
|
|
||||||
data['json'] = json
|
|
||||||
return self.request(config, data, session)
|
|
||||||
|
|
||||||
|
|
||||||
def get_handler_url(self, handler):
|
def get_handler_url(self, handler):
|
||||||
server = self.config.data.get("auth.server", "")
|
server = self.config.data.get("auth.server", "")
|
||||||
return "%s/%s" % (server, handler)
|
return "%s/%s" % (server, handler)
|
||||||
|
|
||||||
|
|
||||||
def request(self, config, data, session=None):
|
def REQUEST(self, url, type, params=None, json=None, session=None, \
|
||||||
|
headers=None, verify=None, timeout=None, retry=None):
|
||||||
|
config = self.config.data
|
||||||
|
|
||||||
''' Give a chance to retry the connection. Jellyfin sometimes can be slow to answer back
|
url = self._replace_user_info(url)
|
||||||
data dictionary can contain:
|
data = {}
|
||||||
type: GET, POST, etc.
|
if params is not None:
|
||||||
url: (optional)
|
data['params'] = params
|
||||||
handler: not considered when url is provided (optional)
|
if json is not None:
|
||||||
params: request parameters (optional)
|
data['json'] = json
|
||||||
json: request body (optional)
|
|
||||||
headers: (optional),
|
headers = headers if headers is not None else {}
|
||||||
verify: ssl certificate, True (verify using device built-in library) or False
|
retry = retry if retry is not None else 5
|
||||||
'''
|
timeout = timeout if timeout is not None else config['http.timeout']
|
||||||
if not data:
|
verify = verify if verify is not None else config.get('auth.ssl', False)
|
||||||
raise AttributeError("Request cannot be empty")
|
|
||||||
|
headers = self._get_header(config, headers)
|
||||||
|
self._process_params(data.get('params') or {})
|
||||||
|
self._process_params(data.get('json') or {})
|
||||||
|
|
||||||
data = self._request(config, data)
|
|
||||||
LOG.debug("--->[ http ] %s", JsonDebugPrinter(data))
|
LOG.debug("--->[ http ] %s", JsonDebugPrinter(data))
|
||||||
retry = data.pop('retry', 5)
|
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
|
|
||||||
try:
|
try:
|
||||||
r = self._requests(session or self.session or requests, data.pop('type', "GET"), **data)
|
r = self._requests(session or self.session or requests, type,
|
||||||
|
url=url, headers=headers, verify=verify, timeout=timeout, **data)
|
||||||
r.content # release the connection
|
r.content # release the connection
|
||||||
|
|
||||||
if not self.keep_alive and self.session is not None:
|
if not self.keep_alive and self.session is not None:
|
||||||
|
|
@ -196,21 +179,6 @@ class HTTP(object):
|
||||||
except ValueError:
|
except ValueError:
|
||||||
return
|
return
|
||||||
|
|
||||||
def _request(self, config, data):
|
|
||||||
|
|
||||||
if 'url' not in data:
|
|
||||||
data['url'] = "%s/%s" % (config.get("auth.server", ""), data.pop('handler', ""))
|
|
||||||
|
|
||||||
headers = self._get_header(config, data.get('headers', {}))
|
|
||||||
data['headers'] = headers
|
|
||||||
data['timeout'] = data.get('timeout') or config['http.timeout']
|
|
||||||
data['verify'] = data.get('verify') or config.get('auth.ssl', False)
|
|
||||||
data['url'] = self._replace_user_info(data['url'])
|
|
||||||
self._process_params(data.get('params') or {})
|
|
||||||
self._process_params(data.get('json') or {})
|
|
||||||
|
|
||||||
return data
|
|
||||||
|
|
||||||
def _process_params(self, params):
|
def _process_params(self, params):
|
||||||
|
|
||||||
for key in params:
|
for key in params:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue