mirror of
https://github.com/JonathanHerrewijnen/calibre-web.git
synced 2024-11-14 07:03:50 +00:00
bbf6d9b026
Bugfix for feeds - removed categories related and up - load new books now working - category random now working login page is free of non accessible elements boolean custom column is vivible in UI books with only with certain languages can be shown book shelfs can be deleted from UI Anonymous user view is more resticted Added browse of series in sidebar Dependencys in vendor folder are updated to newer versions (licencs files are now present) Bugfix editing Authors names Made upload on windows working
149 lines
5.7 KiB
Python
149 lines
5.7 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
"""
|
|
requests.api
|
|
~~~~~~~~~~~~
|
|
|
|
This module implements the Requests API.
|
|
|
|
:copyright: (c) 2012 by Kenneth Reitz.
|
|
:license: Apache2, see LICENSE for more details.
|
|
"""
|
|
|
|
from . import sessions
|
|
|
|
|
|
def request(method, url, **kwargs):
|
|
"""Constructs and sends a :class:`Request <Request>`.
|
|
|
|
:param method: method for the new :class:`Request` object.
|
|
:param url: URL for the new :class:`Request` object.
|
|
:param params: (optional) Dictionary or bytes to be sent in the query string for the :class:`Request`.
|
|
:param data: (optional) Dictionary, bytes, or file-like object to send in the body of the :class:`Request`.
|
|
:param json: (optional) json data to send in the body of the :class:`Request`.
|
|
:param headers: (optional) Dictionary of HTTP Headers to send with the :class:`Request`.
|
|
:param cookies: (optional) Dict or CookieJar object to send with the :class:`Request`.
|
|
:param files: (optional) Dictionary of ``'name': file-like-objects`` (or ``{'name': file-tuple}``) for multipart encoding upload.
|
|
``file-tuple`` can be a 2-tuple ``('filename', fileobj)``, 3-tuple ``('filename', fileobj, 'content_type')``
|
|
or a 4-tuple ``('filename', fileobj, 'content_type', custom_headers)``, where ``'content-type'`` is a string
|
|
defining the content type of the given file and ``custom_headers`` a dict-like object containing additional headers
|
|
to add for the file.
|
|
:param auth: (optional) Auth tuple to enable Basic/Digest/Custom HTTP Auth.
|
|
:param timeout: (optional) How long to wait for the server to send data
|
|
before giving up, as a float, or a :ref:`(connect timeout, read
|
|
timeout) <timeouts>` tuple.
|
|
:type timeout: float or tuple
|
|
:param allow_redirects: (optional) Boolean. Set to True if POST/PUT/DELETE redirect following is allowed.
|
|
:type allow_redirects: bool
|
|
:param proxies: (optional) Dictionary mapping protocol to the URL of the proxy.
|
|
:param verify: (optional) whether the SSL cert will be verified. A CA_BUNDLE path can also be provided. Defaults to ``True``.
|
|
:param stream: (optional) if ``False``, the response content will be immediately downloaded.
|
|
:param cert: (optional) if String, path to ssl client cert file (.pem). If Tuple, ('cert', 'key') pair.
|
|
:return: :class:`Response <Response>` object
|
|
:rtype: requests.Response
|
|
|
|
Usage::
|
|
|
|
>>> import requests
|
|
>>> req = requests.request('GET', 'http://httpbin.org/get')
|
|
<Response [200]>
|
|
"""
|
|
|
|
# By using the 'with' statement we are sure the session is closed, thus we
|
|
# avoid leaving sockets open which can trigger a ResourceWarning in some
|
|
# cases, and look like a memory leak in others.
|
|
with sessions.Session() as session:
|
|
return session.request(method=method, url=url, **kwargs)
|
|
|
|
|
|
def get(url, params=None, **kwargs):
|
|
"""Sends a GET request.
|
|
|
|
:param url: URL for the new :class:`Request` object.
|
|
:param params: (optional) Dictionary or bytes to be sent in the query string for the :class:`Request`.
|
|
:param \*\*kwargs: Optional arguments that ``request`` takes.
|
|
:return: :class:`Response <Response>` object
|
|
:rtype: requests.Response
|
|
"""
|
|
|
|
kwargs.setdefault('allow_redirects', True)
|
|
return request('get', url, params=params, **kwargs)
|
|
|
|
|
|
def options(url, **kwargs):
|
|
"""Sends a OPTIONS request.
|
|
|
|
:param url: URL for the new :class:`Request` object.
|
|
:param \*\*kwargs: Optional arguments that ``request`` takes.
|
|
:return: :class:`Response <Response>` object
|
|
:rtype: requests.Response
|
|
"""
|
|
|
|
kwargs.setdefault('allow_redirects', True)
|
|
return request('options', url, **kwargs)
|
|
|
|
|
|
def head(url, **kwargs):
|
|
"""Sends a HEAD request.
|
|
|
|
:param url: URL for the new :class:`Request` object.
|
|
:param \*\*kwargs: Optional arguments that ``request`` takes.
|
|
:return: :class:`Response <Response>` object
|
|
:rtype: requests.Response
|
|
"""
|
|
|
|
kwargs.setdefault('allow_redirects', False)
|
|
return request('head', url, **kwargs)
|
|
|
|
|
|
def post(url, data=None, json=None, **kwargs):
|
|
"""Sends a POST request.
|
|
|
|
:param url: URL for the new :class:`Request` object.
|
|
:param data: (optional) Dictionary, bytes, or file-like object to send in the body of the :class:`Request`.
|
|
:param json: (optional) json data to send in the body of the :class:`Request`.
|
|
:param \*\*kwargs: Optional arguments that ``request`` takes.
|
|
:return: :class:`Response <Response>` object
|
|
:rtype: requests.Response
|
|
"""
|
|
|
|
return request('post', url, data=data, json=json, **kwargs)
|
|
|
|
|
|
def put(url, data=None, **kwargs):
|
|
"""Sends a PUT request.
|
|
|
|
:param url: URL for the new :class:`Request` object.
|
|
:param data: (optional) Dictionary, bytes, or file-like object to send in the body of the :class:`Request`.
|
|
:param \*\*kwargs: Optional arguments that ``request`` takes.
|
|
:return: :class:`Response <Response>` object
|
|
:rtype: requests.Response
|
|
"""
|
|
|
|
return request('put', url, data=data, **kwargs)
|
|
|
|
|
|
def patch(url, data=None, **kwargs):
|
|
"""Sends a PATCH request.
|
|
|
|
:param url: URL for the new :class:`Request` object.
|
|
:param data: (optional) Dictionary, bytes, or file-like object to send in the body of the :class:`Request`.
|
|
:param \*\*kwargs: Optional arguments that ``request`` takes.
|
|
:return: :class:`Response <Response>` object
|
|
:rtype: requests.Response
|
|
"""
|
|
|
|
return request('patch', url, data=data, **kwargs)
|
|
|
|
|
|
def delete(url, **kwargs):
|
|
"""Sends a DELETE request.
|
|
|
|
:param url: URL for the new :class:`Request` object.
|
|
:param \*\*kwargs: Optional arguments that ``request`` takes.
|
|
:return: :class:`Response <Response>` object
|
|
:rtype: requests.Response
|
|
"""
|
|
|
|
return request('delete', url, **kwargs)
|