mirror of
https://github.com/eternnoir/pyTelegramBotAPI.git
synced 2023-08-10 21:12:57 +03:00
Custom request sender
Added apihelper.CUSTOM_REQUEST_SENDER option. It allows to substitute requests.request to your own function.
This commit is contained in:
@ -40,10 +40,12 @@ RETRY_TIMEOUT = 2
|
||||
MAX_RETRIES = 15
|
||||
|
||||
CUSTOM_SERIALIZER = None
|
||||
CUSTOM_REQUEST_SENDER = None
|
||||
|
||||
ENABLE_MIDDLEWARE = False
|
||||
|
||||
|
||||
|
||||
def _get_req_session(reset=False):
|
||||
if SESSION_TIME_TO_LIVE:
|
||||
# If session TTL is set - check time passed
|
||||
@ -136,9 +138,14 @@ def _make_request(token, method_name, method='get', params=None, files=None):
|
||||
method, request_url, params=params, files=files,
|
||||
timeout=(connect_timeout, read_timeout), proxies=proxy)
|
||||
else:
|
||||
result = _get_req_session().request(
|
||||
method, request_url, params=params, files=files,
|
||||
timeout=(connect_timeout, read_timeout), proxies=proxy)
|
||||
if CUSTOM_REQUEST_SENDER:
|
||||
result = CUSTOM_REQUEST_SENDER(
|
||||
method, request_url, params=params, files=files,
|
||||
timeout=(connect_timeout, read_timeout), proxies=proxy)
|
||||
else:
|
||||
result = _get_req_session().request(
|
||||
method, request_url, params=params, files=files,
|
||||
timeout=(connect_timeout, read_timeout), proxies=proxy)
|
||||
|
||||
logger.debug("The server returned: '{0}'".format(result.text.encode('utf8')))
|
||||
|
||||
|
@ -12,6 +12,11 @@ import logging
|
||||
|
||||
from telebot import types
|
||||
|
||||
try:
|
||||
import ujson as json
|
||||
except ImportError:
|
||||
import json
|
||||
|
||||
try:
|
||||
# noinspection PyPackageRequirements
|
||||
from PIL import Image
|
||||
@ -165,6 +170,16 @@ class AsyncTask:
|
||||
return self.result
|
||||
|
||||
|
||||
class CustomRequestResponse():
|
||||
def __init__(self, json_text, status_code = 200, reason = ""):
|
||||
self.status_code = status_code
|
||||
self.text = json_text
|
||||
self.reason = reason
|
||||
|
||||
def json(self):
|
||||
return json.loads(self.text)
|
||||
|
||||
|
||||
def async_dec():
|
||||
def decorator(fn):
|
||||
def wrapper(*args, **kwargs):
|
||||
|
Reference in New Issue
Block a user