fix: add tmp chat_member handler

This commit is contained in:
2025-01-06 11:40:39 +03:00
parent e0a8bea938
commit 7c25c7b4a9
12 changed files with 173 additions and 29 deletions

View File

@@ -148,7 +148,14 @@ class SpamDetectionMiddleware(BaseMiddleware):
if not verified_users_row["verified"]:
if event.text:
is_spam, confidence = spam_predict(event.text)
log(f"{event.text} is {is_spam} with confidence {confidence}")
log(
"message spam confidence",
trace_id=data["trace_id"],
is_spam=is_spam,
confidence=confidence,
)
if is_spam:
if confidence >= config.get(
"spam::spam_detection::confidence"
@@ -165,6 +172,11 @@ class SpamDetectionMiddleware(BaseMiddleware):
== f"{event.chat.id}-{event.from_user.id}",
)
log(
"user is not spammer anymore",
trace_id=data["trace_id"],
)
result = await handler(event, data)
return result
@@ -180,8 +192,10 @@ class ChatMemberMiddleware(BaseMiddleware):
event: "ChatMemberUpdated",
data: Dict[str, Any],
) -> Any:
log("chat member middleware - start")
if await joinFilter(event):
log("chat member join")
try:
await VerifiedUsers.insert(
VerifiedUsers(
@@ -194,6 +208,8 @@ class ChatMemberMiddleware(BaseMiddleware):
except Exception as e:
log(str(e))
log("chat member middleware - ok")
result = await handler(event, data)
return result
@@ -215,6 +231,7 @@ def module_init():
register_outer_chat_member_middleware(ChatMemberMiddleware())
register_app_config = get_module("standard.database", "register_app_config")
SimpleAdminFilter: "Type[ISimpleAdminFilter]" = get_module(
"standard.filters", "SimpleAdminFilter"
)
@@ -225,6 +242,11 @@ def module_init():
router = Router()
def tmp(event):
pass
router.chat_member.register(tmp)
router.message.register(
delete_spam_by_request, SimpleAdminFilter(), Command("spam")
)

View File

@@ -1,3 +1,4 @@
import uuid
from typing import TYPE_CHECKING, Any, Awaitable, Callable, Dict
from aiogram import BaseMiddleware
@@ -9,7 +10,7 @@ if TYPE_CHECKING:
from karkas_blocks.standard.config import IConfig
from karkas_core.modules_system.public_api import get_module
from karkas_core.modules_system.public_api import get_module, log
config: "IConfig" = get_module("standard.config", "config")
@@ -69,9 +70,19 @@ class StatisticsMiddleware(BaseMiddleware):
async def __call__(
self,
handler: Callable[["TelegramObject", Dict[str, Any]], Awaitable[Any]],
event: "TelegramObject",
event: "Message",
data: Dict[str, Any],
) -> Any:
trace_id = str(uuid.uuid4())
log(
"new message recieved",
trace_id=trace_id,
chat_id=event.chat.id,
message_text=event.text,
)
data["trace_id"] = trace_id
await update_chat_stats(event)
await update_user_stats(event)