Change how handled messages are stored
This commit is contained in:
		
							parent
							
								
									f137a327ce
								
							
						
					
					
						commit
						12bc8afa43
					
				| 
						 | 
				
			
			@ -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)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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'{"<code>[DELETED]</code>" if user.deleted else html.escape(text or "Empty???")} [<code>{user.id}</code>]'
 | 
			
		||||
 | 
			
		||||
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'<a href="https://t.me/{chats[chat_id].username}">{atext}</a>'
 | 
			
		||||
                text += f"{atext} [<code>{sexy_chat_id}</code>]\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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue