Такая проблема, заходит в аккаунт спокойно, отправляю одно сообщение и через 20 секунд аккаунт просто удаляется в телеграмм, использую аккаунт Англии и прокси тоже
import json
import os
import random
import time
import sqlite3
from telethon.sync import TelegramClient
# Функция для отправки сообщения пользователю
def send_message(client, username, message):
try:
client.send_message(username, message)
print(f'Сообщение отправлено пользователю {username}')
except Exception as e:
print(f'Ошибка при отправке сообщения: {e}')
# Подключение к базе данных SQLite3
conn = sqlite3.connect('users.db')
cursor = conn.cursor()
# Выбор случайного прокси из базы данных
cursor.execute("SELECT ip, port, username, password FROM proxies WHERE country = ' Англия' ORDER BY RANDOM() LIMIT 1")
proxy_data = cursor.fetchone()
# Формирование прокси из данных
proxy = {
'proxy_type': 'socks5',
'addr': proxy_data[0],
'port': proxy_data[1],
'username': proxy_data[2] if proxy_data[2] else None,
'password': proxy_data[3] if proxy_data[3] else None
}
for root, _, files in os.walk('accounts'):
for file in files:
if file.split('.')[-1] == 'json':
with open(f'accounts/{file}', 'r') as json_file:
config = json.load(json_file)
# Проверяем, есть ли значение "proxy" в файле JSON и оно равно null
if 'proxy' in config and config['proxy'] is None:
# Если значение равно null, заменяем его на новое значение прокси
config['proxy'] = [2, proxy_data[0], proxy_data[1], proxy_data[2], proxy_data[3]]
# Записываем обновленные данные обратно в файл JSON
with open(f'accounts/{file}', 'w') as json_file:
json.dump(config, json_file)
client = TelegramClient(
session=f'accounts/{config["session_file"]}',
api_id=config['app_id'],
api_hash=config['app_hash'],
system_version=config['app_version'],
device_model=config['device'],
proxy=proxy # Добавляем настройки прокси
)
client.start()
if not client.is_user_authorized():
print(f'Не удалось зайти в аккаунт {file}')
else:
print(f'Удалось зайти в аккаунт {file}')
while True:
target_username = input('Введите юзернейм (или "exit" для завершения): ')
if target_username.lower() == 'exit':
break
message = input('Введите сообщение: ')
send_message(client, target_username, message)
# Добавляем случайную задержку между отправкой сообщений
time.sleep(random.uniform(15, 20))
client.disconnect()
# Закрытие соединения с базой данных
conn.close()