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 шт):

Автор решения: Pain Worsnop

Как вариант, создать счетчик который будет постоянно работать и считать. А как достигнет определенного количества - триггерить функцию.

→ Ссылка
Автор решения: iprahka
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()

→ Ссылка