Add silent activation/deactivation
Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
This commit is contained in:
@@ -4,11 +4,11 @@ from singletons import database
|
||||
|
||||
def activate_thread(event: fbchat.MessageEvent):
|
||||
thread_db = database.create_thread(event.thread)
|
||||
event.thread.send_text("> Admina activated in thread", reply_to_id=event.message.id)
|
||||
event.message.react("👀")
|
||||
return thread_db
|
||||
|
||||
|
||||
def deactivate_thread(event: fbchat.MessageEvent):
|
||||
thread_db = database.delete_thread(event.thread)
|
||||
event.thread.send_text("> Admina deactivated in thread")
|
||||
event.message.react("✌️")
|
||||
return thread_db
|
||||
|
@@ -3,7 +3,7 @@ from blinker import Signal
|
||||
from threading import Thread
|
||||
from singletons import logger, session, listener, client, database
|
||||
from handlers import handle_conversation, activate_thread, deactivate_thread
|
||||
from utils import mentions_admina, mentions_everyone
|
||||
from utils import mentions_admina, mentions_everyone, is_specific_command
|
||||
|
||||
|
||||
COMMANDS = {
|
||||
@@ -33,11 +33,11 @@ def handle_message(_, event: fbchat.MessageEvent):
|
||||
return
|
||||
|
||||
if not database.get_thread(event.thread):
|
||||
if not event.message.text.lower().startswith("!activate"):
|
||||
if is_specific_command(event.message.text, "!activate") or mentions_admina(event.message.text):
|
||||
COMMANDS["activate"]["handler"](event)
|
||||
else:
|
||||
return
|
||||
|
||||
return COMMANDS["activate"]["handler"](event)
|
||||
|
||||
database.create_message(event.thread, event.message)
|
||||
|
||||
logger.info(
|
||||
|
@@ -39,6 +39,7 @@ class Database:
|
||||
}}, upsert=True)
|
||||
|
||||
def delete_thread(self, thread: fbchat.Thread):
|
||||
self.client.messages.delete_many({"thread_id": thread.id})
|
||||
return self.client.threads.delete_one({"_id": thread.id})
|
||||
|
||||
def get_messages_from_thread(self, thread: fbchat.Thread):
|
||||
|
@@ -1,4 +1,4 @@
|
||||
from re import search, IGNORECASE
|
||||
from re import match, search, IGNORECASE
|
||||
|
||||
|
||||
def mentions_admina(message: str):
|
||||
@@ -7,3 +7,7 @@ def mentions_admina(message: str):
|
||||
|
||||
def mentions_everyone(message: str):
|
||||
return search(r"\s*@everyone\s*", message, flags=IGNORECASE)
|
||||
|
||||
|
||||
def is_specific_command(message: str, command: str):
|
||||
return match(rf"{command}\s*", message, flags=IGNORECASE)
|
||||
|
Reference in New Issue
Block a user