В документации четко прописано как использовать прокси
from pyrogram import Client
proxy = {
"scheme": "socks5", # "socks4", "socks5" and "http" are supported
"hostname": "11.22.33.44",
"port": 1234,
"username": "username",
"password": "password"
}
app = Client("my_account", proxy=proxy)
app.run()
Я использую функции по созданию именно таких прокси которые требует Pyrogram
def parse_proxy_string(proxy_string):
parts = proxy_string.split('@')
credentials = parts[0].split(':')
ip_port = parts[1].split(':')
username = credentials[0]
password = credentials[1]
ip = ip_port[0]
port = int(ip_port[1])
return {
"scheme": "http",
"hostname": ip,
"port": port,
"username": username,
"password": password
}
Вот создание сессии
async def connect_clients(bot: Bot, accounts: list):
clients = list()
for account in accounts:
proxy_info = parse_proxy_string('username:password@ip:port')
client = PyrogramClient(f'sessions/{account.PHONE_NUMBER}', proxy=proxy_info)
if not client.is_connected:
try:
await client.start()
clients.append(client)
except sqlite3.OperationalError:
await bot.send_message(account.USER_ID,
text=f'Юзербот <b>{account.PHONE_NUMBER}</b> не смог запуститься',
parse_mode='html')
except AttributeError:
pass
await idle()
for account in clients:
await account.stop()
return clients
Вот мой принт
{'scheme': 'http', 'hostname': ip', 'port': poer, 'username': 'username', 'password': 'port'}
PS: Прокси рабочие, ошибок никаких не выдает и так же, сессия подключается с моей сети