Инвайтинг телеграм - не получается приглашать людей, в журнале бота и в недавних приглашены
Друг написал мне бота на Python для инвайтинга в телеграм. Бот состоит из 4-х файлов: два парсера, один для регистрации аккаунтов и один основной. Сделан на базе pyrogram Проблем две:
- В первом парсере необходимо, чтобы в файл собирались пользователи, которые написали хотя бы одно сообщение в группе за все время. Собирается на деле статистика только по последней неделе, максимум двум неделям
import time
from pyrogram import Client, idle, filters
from pyrogram.handlers import MessageHandler
def custom_key(message):
return message[1]
# НАСТРОЙКИ #
TARGET = '@test' # Паблик, из которого будет собираться статистика
app1 = Client("test") # Сессия, которая будет использоваться
f = open('date', 'w+') # date.txt - файл, в который будет записываться статистика
# НАСТРОЙКИ #
length = 0
count = 0
date = []
async def main1():
async with app1:
c = 0
async for message in app1.get_chat_history(TARGET):
if message.from_user != None and message.from_user.username != None:
counter = 0
for i in range(len(date)):
if date[i][0] == message.from_user.username:
date[i][1] = date[i][1] + 1
counter += 1
if counter == 0:
date.append([message.from_user.username, 1])
c = c + 1
if c>1000:
break
date.sort(key=custom_key, reverse=True)
f.seek(0)
for i in range(len(date)):
f.write("@")
f.write(date[i][0])
#length = 25 - len(date[i][0])
#for a in range(length):
# f.write(" ")
#f.write("Число сообщений: ")
#f.write(str(date[i][1]))
f.write("\n")
print(date)
app1.run(main1())
- После регистрации аккаунтов я запускаю основной файл:
from random import randint
import time
from pyrogram import errors
from pyrogram.errors import BadRequest, UserPrivacyRestricted, FloodWait, UserNotMutualContact, UserDeactivatedBan
### НАСТРОЙКИ ###
TARGET = '@rent_diamond' # Паблик, в который будут приглашаться люди
number_of_cycles = 50 # Число раз, которое каждый юзербот отправит приглашение
my_apps = [ # Список используемых сессий
Client("harold_lee"),
]
f = open('date', 'r+') # date.txt - список приглашаемых людей
added = open('invited', 'w+') # invited.txt - список приглашённых людей
r = open('read', 'r+') # read.txt - список участников паблика, в который приглашаются пользователи
### НАСТРОЙКИ ###
rread = r.read()
count = 0
async def main(app):
async with app:
trig = 0
while trig < 1:
member = f.readline()
if not member in rread:
try:
await app.add_chat_members(TARGET, member)
except FloodWait:
me = await app.get_me()
print('Отправка приглашений временно недоступна: ', me.first_name, me.last_name)
except UserPrivacyRestricted:
print('Этот пользователь закрыл приглашения: ', member)
except UserNotMutualContact:
me = await app.get_me()
print('Этот аккаунт отправлен в спам-блок: ', me.first_name, me.last_name)
except UserDeactivatedBan:
me = await app.get_me()
print('Этот аккаунт удалён: ', me.first_name, me.last_name)
except:
print("Unexpected error")
else:
print('Invited successfully: ', member)
added.write(member)
added.write("\n")
trig = 1
time.sleep(randint(10, 15))
for i in range(1, number_of_cycles+1):
for app in my_apps:
app.run(main(app))
print('cycle ', i, ' ended')
Бот делает приглашения, но на всех аккаунтах, кроме русских (TDATA, +7, отлежка от 10 дней), бот записывает в свой журнал как "invited sucessfully", в недавних действиях в чате тоже отображается, что пользователь добавлен. При этом пользователь не выходил из чата. Самое важное то, что количество людей в чате при этом не меняется, а в списке подписчиков приглашенных людей нет. В итоге приглашается 1 человек из 20 на деле. Пробовала Индонезию, Бразилию, Англию, США, Канаду, Вьетнам. Со всеми пробовала прокси iPv4 и iPv6, соответствующие стране аккаунта. Русские аккаунты приводят к бану, а другие вызывают такую проблему. Подскажите, что можно сделать?