From 6f522b1218be1c8f6d41cda5d8a002ab4fcf9fe8 Mon Sep 17 00:00:00 2001 From: missytake Date: Sun, 10 Aug 2025 21:36:12 +0200 Subject: [PATCH] wohnungssuche: set admin group from verified chat --- src/remember_remember_bot/loop.py | 43 ++++++++++++++++--------------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/src/remember_remember_bot/loop.py b/src/remember_remember_bot/loop.py index 9c1cf6a..bdcd3f4 100644 --- a/src/remember_remember_bot/loop.py +++ b/src/remember_remember_bot/loop.py @@ -2,34 +2,35 @@ import time import deltachat -from remember_remember_bot.commands import remind_chat, activate_chat, reply, store_file, send_help -from remember_remember_bot.util import check_new_day, update_day +from .commands import activate_chat, reply, send_help, add_keyword, list_keywords, rm_keyword, check_and_forward def loop(ac: deltachat.Account): - current_day = 0 + admin_chat = None + while not admin_chat: + for chat in ac.get_chats(): + if chat.is_protected(): + if "/start" in [msg.text for msg in chat.get_messages()]: + admin_chat = chat + time.sleep(3) + print(f"Selected {admin_chat.name} as admin chat") while True: - if check_new_day(current_day): - for chat in ac.get_chats(): - remind_chat(chat) - current_day = update_day() for msg in ac.get_fresh_messages(): - handle_incoming_message(msg) - time.sleep(1) + handle_incoming_message(msg, admin_chat) + time.sleep(3) -def handle_incoming_message(msg: deltachat.Message): - print(str(msg.chat.id), msg.text) - if "/start" in msg.text: +def handle_incoming_message(msg: deltachat.Message, admin_chat: deltachat.Chat): + if msg.text.startswith("/start"): activate_chat(msg) - elif "/stop" in msg.text: - msg.chat.set_ephemeral_timer(0) - reply(msg.chat, "I will stop sending you messages now.", quote=msg) - elif "/file" in msg.text: - if msg.filename: - store_file(msg) - else: - activate_chat(msg) - else: + elif msg.text.startswith("/add"): + add_keyword(msg) + elif msg.text.startswith("/list"): + reply(msg.chat, list_keywords(), quote=msg) + elif msg.text.startswith("/remove"): + rm_keyword(msg.text) + elif msg.text.startswith("/help"): send_help(msg) + else: + check_and_forward(msg, admin_chat) msg.mark_seen()