Понадобилось сделать скрипт для автоматической установки реакций на каждое сообщение человека и беглым поиском не нашел какое-то готовое решение, поэтому решил написать простенький скрипт Есть 2 варианта скрипта: один ставит реакцию на все Новые сообщения в чате, другой проходится по всей истории переписки и ставит реакции на каждое старое сообщение Каждые 5 сообщений возникает остановка на 5 секунд и таким образом получается, что 1 реакция ставится 1 секунду, что было вполне приемлемым результатом для моих целей Код скрипта для всей истории чата from pyrogram import Client api_id = #App api_id из https://my.telegram.org/apps api_hash = "" #App api_hash из https://my.telegram.org/apps chat_id = #id чата. Можно получить, переслав сообщение в бота @getmyid_bot emo = "" #реакция, которая будет ставится app = Client("kopfire_lol", api_id=api_id, api_hash=api_hash) async def get_all_messages(): async with app: #можно добавить параметр в app.get_chat_history #offset_date=datetime.strptime('05/11/23 23:55:26', '%m/%d/%y %H:%M:%S') #и ставить реакции только на сообщения До этой даты async for message in app.get_chat_history(chat_id): if message.from_user.id == chat_id: print(message.text) #показывает сообщения, на которые ставятся реакции #если есть риск, #что на этом сообщении есть Такая же реакция, #лучше раскомментировать строку ниже #asd = await app.send_reaction(chat_id, message.id, '') asd = await app.send_reaction(chat_id, message.id, emo) app.run(get_all_messages()) Python from pyrogram import Client api_id = #App api_id из https://my.telegram.org/apps api_hash = "" #App api_hash из https://my.telegram.org/apps chat_id = #id чата. Можно получить, переслав сообщение в бота @getmyid_bot emo = "" #реакция, которая будет ставится app = Client("kopfire_lol", api_id=api_id, api_hash=api_hash) async def get_all_messages(): async with app: #можно добавить параметр в app.get_chat_history #offset_date=datetime.strptime('05/11/23 23:55:26', '%m/%d/%y %H:%M:%S') #и ставить реакции только на сообщения До этой даты async for message in app.get_chat_history(chat_id): if message.from_user.id == chat_id: print(message.text) #показывает сообщения, на которые ставятся реакции #если есть риск, #что на этом сообщении есть Такая же реакция, #лучше раскомментировать строку ниже #asd = await app.send_reaction(chat_id, message.id, '') asd = await app.send_reaction(chat_id, message.id, emo) app.run(get_all_messages()) Код скрипта для новых сообщений от конкретного пользователя from pyrogram import Client, filters api_id = #App api_id из [URL]https://my.telegram.org/apps[/URL] api_hash = "" #App api_hash из [URL]https://my.telegram.org/apps[/URL] chat_id = [1111] #id чата. Можно получить, переслав сообщение в бота @getmyid_bot emo = "" #реакция, которая будет ставится app = Client("kopfire_kek", api_id=api_id, api_hash=api_hash) @app.on_message() async def mess(client, message): if message.from_user.id in chat_id: asd = await app.send_reaction(message.from_user.id, message.id, emo) app.run() Python from pyrogram import Client, filters api_id = #App api_id из [URL]https://my.telegram.org/apps[/URL] api_hash = "" #App api_hash из [URL]https://my.telegram.org/apps[/URL] chat_id = [1111] #id чата. Можно получить, переслав сообщение в бота @getmyid_bot emo = "" #реакция, которая будет ставится app = Client("kopfire_kek", api_id=api_id, api_hash=api_hash) @app.on_message() async def mess(client, message): if message.from_user.id in chat_id: asd = await app.send_reaction(message.from_user.id, message.id, emo) app.run()
kopfire, отличный скрипт! Спасибо за то, что поделился им с сообществом. Я думаю, что многие пользователи Telegram найдут его полезным. Как думаешь, можно ли добавить возможность выбора реакций, которые будут ставиться на сообщения? Например, чтобы пользователь мог выбрать из списка реакций, которые он хочет использовать.