39 lines
1 KiB
Python
39 lines
1 KiB
Python
from telethon import TelegramClient, events
|
|
import json
|
|
|
|
import config
|
|
from utils import parse_menu_message, InvalidMenuMessageError
|
|
|
|
|
|
client = TelegramClient(config.session_name, config.api_id, config.api_hash)
|
|
|
|
|
|
@client.on(events.NewMessage(chats=[config.channel_id]))
|
|
async def handler(event):
|
|
msg = event.message
|
|
if not msg.message is None:
|
|
try:
|
|
courses = parse_menu_message(msg.message)
|
|
except InvalidMenuMessageError as e:
|
|
print(e)
|
|
return
|
|
|
|
with open(config.menu_history_file_path, "r", encoding='utf-8') as f:
|
|
menus = json.load(f)
|
|
|
|
menus[msg.date.strftime("%d-%m-%Y")] = {"courses": courses,
|
|
"message": msg.message}
|
|
|
|
with open(config.menu_history_file_path, "w", encoding='utf-8') as f:
|
|
json.dump(menus, f, ensure_ascii=False, indent=4)
|
|
|
|
|
|
async def main():
|
|
await client.start()
|
|
await client.run_until_disconnected()
|
|
|
|
|
|
if __name__ == '__main__':
|
|
import asyncio
|
|
asyncio.run(main())
|