Данный скрипт позволяет отправлять сообщения во все чаты Telegram, к которым подключен аккаунт, используя последнее сообщение из списка избранных. Скрипт автоматически отправляет сообщения только в те чаты, в которых есть более одного непрочитанного сообщения, и позволяет отправлять сообщения одновременно в несколько чатов.
Инструкция:
1. Установите библиотеку telethon, выполнив команду pip install telethon.
2. Зарегистрируйте свое приложение на сайте Telegram API и получите api_id и api_hash.
3. Введите свой api_id и api_hash в скрипте в соответствующие переменные.
4. Установите значения переменных delay, sms и chats. Переменная delay указывает, сколько секунд нужно ждать между циклами отправки сообщений в группы. Переменная sms определяет, сколько сообщений должно быть непрочитанными в группе, чтобы скрипт начал пересылать сообщения в эту группу. Переменная chats определяет, сколько групп нужно выбрать для отправки сообщения.
5. Запустите скрипт командой python script_name.py.
Инструкция:
1. Установите библиотеку telethon, выполнив команду pip install telethon.
2. Зарегистрируйте свое приложение на сайте Telegram API и получите api_id и api_hash.
3. Введите свой api_id и api_hash в скрипте в соответствующие переменные.
4. Установите значения переменных delay, sms и chats. Переменная delay указывает, сколько секунд нужно ждать между циклами отправки сообщений в группы. Переменная sms определяет, сколько сообщений должно быть непрочитанными в группе, чтобы скрипт начал пересылать сообщения в эту группу. Переменная chats определяет, сколько групп нужно выбрать для отправки сообщения.
5. Запустите скрипт командой python script_name.py.
Код:
from telethon import TelegramClient, errors
from time import sleep
from telethon.errors.rpcerrorlist import MessageTooLongError
api_id = 123
api_hash = 'abc'
delay = 20
sms = 1
chats = 5
session_name = 'session_name'
client = TelegramClient(session_name, api_id, api_hash)
def dialog_sort(dialog):
return dialog.unread_count
async def get_groups():
groups = []
async for dialog in client.iter_dialogs():
if dialog.is_group and dialog.unread_count >= sms:
groups.append(dialog)
return groups
async def spammer():
while True:
try:
groups = await get_groups()
if not groups:
print('No groups found')
sleep(1)
continue
groups.sort(key=dialog_sort, reverse=True)
for g in groups[:chats]:
if g.unread_count < sms:
continue
async for msg in client.iter_messages('me', 1):
try:
await client.forward_messages(g.id, msg)
print(f'Message forwarded to {g.title}')
break
except errors.FloodWaitError as e:
print(f'Flood wait error: {e.message}, waiting {e.seconds} seconds')
sleep(e.seconds)
except errors.MessageIdInvalidError as e:
print(f'Message ID invalid error: {e.message}')
except errors.MessageNotModifiedError as e:
print(f'Message not modified error: {e.message}')
except errors.MessageEmptyError as e:
print(f'Message empty error: {e.message}')
except MessageTooLongError:
print(f'Message too long error: {g.title}')
except errors.PeerIdInvalidError:
pass
except errors.ChatAdminRequiredError as e:
print(f'Chat admin required error: {e.message}')
except errors.ChatIdInvalidError as e:
print(f'Chat ID invalid error: {e.message}')
except errors.ChatWriteForbiddenError as e:
pass
except errors.UserDeactivatedError as e:
print(f'User deactivated error: {e.message}')
except errors.PeerFloodError as e:
print(f'Peer flood error: {e.message}, waiting {e.seconds} seconds')
sleep(e.seconds)
except errors.UserBlockedError as e:
print(f'User blocked error: {e.message}')
except errors.YouBlockedUserError as e:
print(f'You blocked user error: {e.message}')
except errors.RPCError as e:
if hasattr(e, 'seconds'):
print(f'RPC error, waiting {e.seconds} seconds: {e.message}')
sleep(e.seconds)
else:
print(f'RPC error: {e.message}')
except Exception as e:
print(f'Error: {e}')
sleep(delay)
except Exception as e:
print(f'Error: {e}')
sleep(1)
if __name__ == '__main__':
client.start()
client.loop.run_until_complete(spammer())
Последнее редактирование: