Add proxy config. Fixes #153

This commit is contained in:
Tulir Asokan
2018-07-12 23:08:08 +03:00
parent 1d9455f639
commit 15fd394d54
3 changed files with 41 additions and 2 deletions
+13
View File
@@ -190,6 +190,19 @@ telegram:
api_hash: tjyd5yge35lbodk1xwzw2jstp90k55qz
# (Optional) Create your own bot at https://t.me/BotFather
bot_token: disabled
# Telethon proxy configuration.
# You must install PySocks from pip for proxies to work.
proxy:
# Allowed types: disabled, socks4, socks5, http
type: disabled
# Proxy IP address and port.
address: 127.0.0.1
port: 1080
# Whether or not to perform DNS resolving remotely.
rdns: true
# Proxy authentication (optional).
username: ""
password: ""
# Python logging configuration.
#
+22 -2
View File
@@ -50,6 +50,23 @@ class AbstractUser:
def connected(self):
return self.client and self.client.is_connected()
@property
def _proxy_settings(self):
type = config["telegram.proxy.type"].lower()
if type == "disabled":
return None
elif type == "socks4":
type = 1
elif type == "socks5":
type = 2
elif type == "http":
type = 3
return (type,
config["telegram.proxy.address"], config["telegram.proxy.port"],
config["telegram.proxy.rdns"],
config["telegram.proxy.username"], config["telegram.proxy.password"])
def _init_client(self):
self.log.debug(f"Initializing client for {self.name}")
device = f"{platform.system()} {platform.release()}"
@@ -62,7 +79,8 @@ class AbstractUser:
app_version=__version__,
system_version=sysversion,
device_model=device,
timeout=120)
timeout=120,
proxy=self._proxy_settings)
self.client.add_event_handler(self._update_catch)
async def update(self, update):
@@ -95,7 +113,9 @@ class AbstractUser:
return self.client and await self.client.is_user_authorized()
async def has_full_access(self, allow_bot=False):
return self.puppet_whitelisted and (not self.is_bot or allow_bot) and await self.is_logged_in()
return (self.puppet_whitelisted
and (not self.is_bot or allow_bot)
and await self.is_logged_in())
async def start(self, delete_unless_authenticated=False):
if not self.client:
+6
View File
@@ -220,6 +220,12 @@ class Config(DictWithRecursion):
copy("telegram.api_id")
copy("telegram.api_hash")
copy("telegram.bot_token")
copy("telegram.proxy.type")
copy("telegram.proxy.address")
copy("telegram.proxy.port")
copy("telegram.proxy.rdns")
copy("telegram.proxy.username")
copy("telegram.proxy.password")
if "appservice.debug" in self and "logging" not in self:
level = "DEBUG" if self["appservice.debug"] else "INFO"