Explorar o código

fix: filters error (#262)

SI_NN_ER_LS %!s(int64=2) %!d(string=hai) anos
pai
achega
63858348b0
Modificáronse 2 ficheiros con 10 adicións e 7 borrados
  1. 5 4
      wbb/modules/filters.py
  2. 5 3
      wbb/modules/notes.py

+ 5 - 4
wbb/modules/filters.py

@@ -175,8 +175,8 @@ async def del_filter(_, message):
 )
 @capture_err
 async def filters_re(_, message):
-    if not message.from_user:
-        return
+    from_user = message.from_user if message.from_user else message.sender_chat
+    user_id = from_user.id
     chat_id = message.chat.id
     text = message.text.lower().strip()
     if not text:
@@ -198,7 +198,7 @@ async def filters_re(_, message):
                     )
                 if "{name}" in data:
                     data = data.replace(
-                        "{name}", message.from_user.mention
+                        "{name}", (from_user.mention if message.from_user else from_user.title)
                     )
                 if re.findall(r"\[.+\,.+\]", data):
                     keyboard = extract_text_and_keyb(ikb, data)
@@ -206,9 +206,10 @@ async def filters_re(_, message):
                         data, keyb = keyboard
             replied_message = message.reply_to_message
             if replied_message:
+                replied_user = replied_message.from_user if replied_message.from_user else replied_message.sender_chat
                 if text.startswith("~"):
                     await message.delete()
-                if replied_message.from_user.id != message.from_user.id:
+                if replied_user.id != from_user.id:
                     message = replied_message
 
             if data_type == "text":

+ 5 - 3
wbb/modules/notes.py

@@ -206,11 +206,12 @@ async def get_one_note_userbot(_, message):
 @app.on_message(filters.regex(r"^#.+") & filters.text & ~filters.private)
 @capture_err
 async def get_one_note(_, message):
+    from_user = message.from_user if message.from_user else message.sender_chat
     chat_id = message.chat.id
     name = message.text.replace("#", "", 1)
     if not name:
         return
-    _note = await get_note(message.chat.id, name)
+    _note = await get_note(chat_id, name)
     if not _note:
         return
     type = _note["type"]
@@ -222,7 +223,7 @@ async def get_one_note(_, message):
             data = data.replace("{chat}", message.chat.title)
         if "{name}" in data:
             data = data.replace(
-                "{name}", message.from_user.mention
+                "{name}", (from_user.mention if message.from_user else from_user.title)
             )
         if findall(r"\[.+\,.+\]", data):
             keyboard = extract_text_and_keyb(ikb, data)
@@ -230,7 +231,8 @@ async def get_one_note(_, message):
                 data, keyb = keyboard
     replied_message = message.reply_to_message
     if replied_message:
-        if replied_message.from_user.id != message.from_user.id:
+        replied_user = replied_message.from_user if replied_message.from_user else replied_message.sender_chat
+        if replied_user.id != from_user.id:
             message = replied_message
     await get_reply(message, type, file_id, data, keyb)