Telethon регулярное повторение действия при достижении определенного количества строк в списке (подсчет строк)
Всем привет. Помогите, пожалуйста, с выполнением действия, которое ставится в зависимость от количества строк. То есть задача программы отслеживать сколько сообщений было в группе, а затем когда значение этих сообщений достигнет определенного количества выполнить действие по отправке сообщения в ту же самую группу.
from telethon import TelegramClient, sync
from telethon.events import NewMessage
api_id = '____'
api_hash = '______'
client = TelegramClient('session_name', api_id, api_hash)
@client.on(event=NewMessage(chats=('https://t.me/some_group')))
async def normal_handler(event):
value = event.message.to_dict()['message']
lines = 0
for line in value:
lines += 1
print(lines)
if lines % 2: #задача отправлять сообщения каждые 2 сообщения
await client.send_message('https://t.me/some_group', message='something')
client.start()
client.run_until_disconnected()
В настоящее время программа показывает мне каждое сообщение отдельно и считает количество символов в данном отдельно взятом сообщении, а затем переходит к следующему сообщению.
Есть ли способ упростить эту задачу путем подсчета количества наступивших этих событий?
Благодарен за терпение :)
Заранее огромное спасибо
Ответы (2 шт):
Как вариант, создать счетчик который будет постоянно работать и считать. А как достигнет определенного количества - триггерить функцию.
from telethon import TelegramClient, sync
from telethon.events import NewMessage
api_id = '______'
api_hash = '______'
client = TelegramClient('session_name', api_id, api_hash)
@client.on(event=NewMessage(chats=('https://t.me/_____')))
async def normal_handler(event):
value = event.message.to_dict()['message']
file = open('text.txt', 'r+')
read = file.read()
file.write(value + '\n')
read_str = ''.join(read)
splited = read_str.split('\n')
number = len(splited)
if number >= 15:
print('Строк больше 15, отправляю сообщение в ТГ')
await client.send_message('_____', message='Строк больше 15')
file.truncate(0)
print(number)
file.close()
client.start()
client.run_until_disconnected()