diff --git a/sukuinote/plugins/log_forwards.py b/sukuinote/plugins/log_forwards.py
index f10fe4c..6cf0f50 100644
--- a/sukuinote/plugins/log_forwards.py
+++ b/sukuinote/plugins/log_forwards.py
@@ -1,10 +1,11 @@
import html
import asyncio
+from collections import defaultdict
from pyrogram import Client, filters
from pyrogram.errors.exceptions.flood_420 import FloodWait
from .. import config, slave, log_errors, app_user_ids
-logged = set()
+logged = defaultdict(set)
lock = asyncio.Lock()
@Client.on_message(~filters.forwarded & ~filters.chat(config['config']['log_chat']) & filters.incoming & filters.forwarded & (filters.group | filters.channel))
@@ -27,9 +28,8 @@ async def log_forwards(client, message):
break
else:
return
- identifier = (message.chat.id, message.message_id)
async with lock:
- if identifier in logged:
+ if message.message_id not in logged[message.chat.id]:
return
chat_text = html.escape(message.chat.title)
if message.chat.username:
@@ -94,4 +94,4 @@ async def log_forwards(client, message):
await asyncio.sleep(ex.x + 1)
else:
break
- logged.add(identifier)
+ logged[message.chat.id].add(message.message_id)
diff --git a/sukuinote/plugins/log_reports.py b/sukuinote/plugins/log_reports.py
index 6eb1d80..7053632 100644
--- a/sukuinote/plugins/log_reports.py
+++ b/sukuinote/plugins/log_reports.py
@@ -1,10 +1,11 @@
import html
import asyncio
+from collections import defaultdict
from pyrogram import Client, filters
from pyrogram.errors.exceptions.flood_420 import FloodWait
from .. import config, slave, log_errors
-reported = set()
+reported = defaultdict(set)
lock = asyncio.Lock()
@Client.on_message(~filters.forwarded & ~filters.chat(config['config']['log_chat']) & filters.regex(r'(?:^|\s+)@admins?(?:$|\W+)|^[/!](?:report|admins?)(?:$|\W+)') & filters.group)
@@ -12,9 +13,8 @@ lock = asyncio.Lock()
async def log_reports(client, message):
if not config['config']['log_reports']:
return
- identifier = (message.chat.id, message.message_id)
async with lock:
- if identifier in reported:
+ if message.message_id in reported[message.chat.id]:
return
chat_text = html.escape(message.chat.title)
if message.chat.username:
@@ -99,5 +99,5 @@ async def log_reports(client, message):
await asyncio.sleep(ex.x + 1)
else:
break
- reported.add(identifier)
- reported.add((reply.chat.id, reply.message_id))
+ reported[message.chat.id].add(message.message_id)
+ reported[reply.chat.id].add(reply.message_id)
diff --git a/sukuinote/plugins/log_user_joins.py b/sukuinote/plugins/log_user_joins.py
index 5363641..f760201 100644
--- a/sukuinote/plugins/log_user_joins.py
+++ b/sukuinote/plugins/log_user_joins.py
@@ -1,5 +1,6 @@
import html
import asyncio
+from collections import defaultdict
from pyrogram import Client, ContinuePropagation
from pyrogram.errors.exceptions.flood_420 import FloodWait
from pyrogram.raw.types import UpdateNewChannelMessage, UpdateNewMessage, MessageService, PeerChat, PeerChannel, MessageActionChatAddUser, MessageActionChatJoinedByLink, PeerUser
@@ -11,7 +12,7 @@ def sexy_user_name(user):
text += ' ' + user.last_name
return f'{"[DELETED]
" if user.deleted else html.escape(text or "Empty???")} [{user.id}
]'
-handled = set()
+handled = defaultdict(set)
lock = asyncio.Lock()
@Client.on_raw_update()
@log_errors
@@ -45,7 +46,7 @@ async def log_user_joins(client, update, users, chats):
atext = f'{atext}'
text += f"{atext} [{sexy_chat_id}
]\n"
async with lock:
- if (sexy_chat_id, message.id) not in handled:
+ if message.id not in handled[sexy_chat_id]:
if isinstance(message.from_id, PeerUser):
adder = sexy_user_name(users[message.from_id.user_id])
else:
@@ -65,6 +66,6 @@ async def log_user_joins(client, update, users, chats):
await asyncio.sleep(ex.x + 1)
else:
break
- handled.add((sexy_chat_id, message.id))
+ handled[sexy_chat_id].add(message.id)
return
raise ContinuePropagation