telethon, async

from telethon import TelegramClient
import time
api_id = 123123
api_hash = '123123123'
client = TelegramClient('session_name', api_id, api_hash)
@client.on(events.NewMessage(chats=('https://t.me/chat')))
async def normal_handler(event):
    a = event.message.to_dict()
    b = a['message'].lower()
    
async def tme():
    if time.time()%10 == 0:
        print(time.time())
with client:
    client.loop.run_until_complete(tme())     

client.start()
client.run_until_disconnected()  

Здравствуйте, как сделать так, чтобы ф-ция tme работала постоянно, а не вызывалась 1 раз. Первая программа с async. Заранее спасибо


Ответы (2 шт):

Автор решения: dudha369

Я конечно с telethon не работал, но в теоре вот так должно работать..

from telethon import TelegramClient
import time
api_id = 123123
api_hash = '123123123'
client = TelegramClient('session_name', api_id, api_hash)
@client.on(events.NewMessage(chats=('https://t.me/chat')))
async def normal_handler(event):
    a = event.message.to_dict()
    b = a['message'].lower()
    
async def tme():
    if time.time()%10 == 0:
        print(time.time())
with client:
    while True:
        client.loop.run_until_complete(tme())     

client.start()
client.run_until_disconnected() 

Если первый вариант не будет работать то попробуйте этот:

from telethon import TelegramClient
import time
api_id = 123123
api_hash = '123123123'
client = TelegramClient('session_name', api_id, api_hash)
@client.on(events.NewMessage(chats=('https://t.me/chat')))
async def normal_handler(event):
    a = event.message.to_dict()
    b = a['message'].lower()
    
async def tme():
    if time.time()%10 == 0:
        print(time.time())
with client:
    while True:
        client.loop.run_until_complete(tme())     
        client.start()
        client.run_until_disconnected() 
→ Ссылка
Автор решения: Азат
if __name__ == '__main__':
    client.start()
    client.run_until_disconnected()
→ Ссылка