diff --git a/README.md b/README.md index b056d03..48b6e1c 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,7 @@ * [The listener mechanism](#the-listener-mechanism) * [Using web hooks](#using-web-hooks) * [Logging](#logging) + * [Proxy](#proxy) * [F.A.Q.](#faq) * [Bot 2.0](#bot-20) * [How can I distinguish a User and a GroupChat in message.chat?](#how-can-i-distinguish-a-user-and-a-groupchat-in-messagechat) @@ -492,6 +493,26 @@ logger = telebot.logger telebot.logger.setLevel(logging.DEBUG) # Outputs debug messages to console. ``` +### Proxy + +You can use proxy for request. `apihelper.proxy` object will use by call `requests` proxies argument. + +```python +from telebot import apihelper + +apihelper.proxy = {'http', 'http://10.10.1.10:3128'} +``` + +If you want to use socket5 proxy you need install dependency `pip install requests[socks]`. + +```python +proxies = { + 'http': 'socks5://user:pass@host:port', + 'https': 'socks5://user:pass@host:port' +} +``` + + ## F.A.Q. ### Bot 2.0 diff --git a/telebot/apihelper.py b/telebot/apihelper.py index 5ccf71c..3268930 100644 --- a/telebot/apihelper.py +++ b/telebot/apihelper.py @@ -19,6 +19,7 @@ from telebot import util logger = telebot.logger req_session = requests.session() +proxy = None API_URL = "https://api.telegram.org/bot{0}/{1}" FILE_URL = "https://api.telegram.org/file/bot{0}/{1}" @@ -47,7 +48,7 @@ def _make_request(token, method_name, method='get', params=None, files=None, bas if 'timeout' in params: read_timeout = params['timeout'] + 10 if 'connect-timeout' in params: connect_timeout = params['connect-timeout'] + 10 result = req_session.request(method, request_url, params=params, files=files, - timeout=(connect_timeout, read_timeout)) + timeout=(connect_timeout, read_timeout), proxies=proxy) logger.debug("The server returned: '{0}'".format(result.text.encode('utf8'))) return _check_result(method_name, result)['result']