Explorar el Código

Remove global slowmode and rename user_slowmode to slowmode

Remove global slowmode and rename user_slowmode to slowmode
Librellium hace 2 meses
padre
commit
1f1960c1f4

+ 3 - 8
anonflow/app.py

@@ -5,9 +5,8 @@ from aiogram.client.bot import DefaultBotProperties
 
 from anonflow.bot import (
     EventHandler,
-    GlobalSlowmodeMiddleware,
+    SlowmodeMiddleware,
     SubscriptionMiddleware,
-    UserSlowmodeMiddleware,
     build
 )
 from anonflow.config import Config
@@ -99,14 +98,10 @@ class Application:
             )
 
         if config.behavior.slowmode.enabled: # type: ignore
-            slowmode_map = {
-                "global": GlobalSlowmodeMiddleware,
-                "user": UserSlowmodeMiddleware
-            }
             dispatcher.update.middleware( # type: ignore
-                slowmode_map[config.behavior.slowmode.mode]( # type: ignore
+                SlowmodeMiddleware(
                     delay=config.behavior.slowmode.delay, # type: ignore
-                    translator=translator,
+                    translator=translator, # type: ignore
                     allowed_chat_ids=config.forwarding.moderation_chat_ids # type: ignore
                 )
             )

+ 2 - 3
anonflow/bot/__init__.py

@@ -1,11 +1,10 @@
 from .builder import build
 from .events import EventHandler
-from .middleware import GlobalSlowmodeMiddleware, SubscriptionMiddleware, UserSlowmodeMiddleware
+from .middleware import SlowmodeMiddleware, SubscriptionMiddleware
 
 __all__ = [
     "build",
     "EventHandler",
-    "GlobalSlowmodeMiddleware",
+    "SlowmodeMiddleware",
     "SubscriptionMiddleware",
-    "UserSlowmodeMiddleware",
 ]

+ 2 - 3
anonflow/bot/middleware/__init__.py

@@ -1,5 +1,4 @@
-from .global_slowmode import GlobalSlowmodeMiddleware
+from .slowmode import SlowmodeMiddleware
 from .subscription import SubscriptionMiddleware
-from .user_slowmode import UserSlowmodeMiddleware
 
-__all__ = ["GlobalSlowmodeMiddleware", "SubscriptionMiddleware", "UserSlowmodeMiddleware"]
+__all__ = ["SlowmodeMiddleware", "SubscriptionMiddleware",]

+ 0 - 54
anonflow/bot/middleware/global_slowmode.py

@@ -1,54 +0,0 @@
-import asyncio
-import time
-from typing import Dict, List, Optional
-
-from aiogram import BaseMiddleware
-from aiogram.types import ChatIdUnion, Message
-
-from anonflow.translator import Translator
-
-from .utils import extract_message
-
-
-class GlobalSlowmodeMiddleware(BaseMiddleware):
-    def __init__(self, delay: float, translator: Translator, allowed_chat_ids: Optional[List[ChatIdUnion]] = []):
-        super().__init__()
-
-        self.delay = delay
-        self.translator = translator
-        self.allowed_chat_ids = allowed_chat_ids
-
-        self.user_times: Dict[int, float] = {}
-        self.lock = asyncio.Lock()
-
-    async def __call__(self, handler, event, data):
-        _ = self.translator.get()
-
-        message = extract_message(event)
-
-        if isinstance(message, Message) and message.chat.id not in self.allowed_chat_ids:
-            text = message.text or message.caption
-            if text and text.startswith("/"):
-                return await handler(event, data)
-
-            if self.lock.locked():
-                start_time = self.user_times.get(message.chat.id) or 0
-                current_time = time.monotonic()
-
-                await message.answer(
-                    _(
-                        "messages.user.send_busy",
-                        message=message,
-                        remaining=round(self.delay - (current_time - start_time)) if start_time else None
-                    )
-                )
-                return
-
-            async with self.lock:
-                self.user_times[message.chat.id] = time.monotonic()
-                result = await handler(event, data)
-                await asyncio.sleep(self.delay)
-
-            return result
-
-        return await handler(event, data)

+ 1 - 1
anonflow/bot/middleware/user_slowmode.py → anonflow/bot/middleware/slowmode.py

@@ -10,7 +10,7 @@ from anonflow.translator import Translator
 from .utils import extract_message
 
 
-class UserSlowmodeMiddleware(BaseMiddleware):
+class SlowmodeMiddleware(BaseMiddleware):
     def __init__(self, delay: float, translator: Translator, allowed_chat_ids: Optional[List[ChatIdUnion]] = []):
         super().__init__()
 

+ 0 - 1
anonflow/config/models.py

@@ -16,7 +16,6 @@ class Bot(BaseModel):
 
 class BehaviorSlowmode(BaseModel):
     enabled: bool = True
-    mode: SlowmodeMode = "user"
     delay: float = 120
     model_config = {"frozen": True}
 

+ 0 - 1
config.yml.example

@@ -4,7 +4,6 @@ bot:
 behavior:
   slowmode:
     enabled: true
-    mode: user
     delay: 120
   subscription_requirement:
     enabled: false