Update work from blocked_users

This commit is contained in:
Zakhar Izmaylov
2025-01-20 03:47:16 +03:00
parent f07b46ac75
commit b01e4db2b2
4 changed files with 30 additions and 28 deletions
+2
View File
@@ -12,6 +12,7 @@ from .pay import router as pay_router
from .payments import router as payments_router
from .profile import router as profile_router
from .start import router as start_router
from .user import router as user_router
router = Router(name="handlers_main_router")
@@ -26,4 +27,5 @@ router.include_routers(
keys_router,
instructions_router,
admin_router,
user_router,
)
-22
View File
@@ -36,28 +36,6 @@ from logger import logger
router = Router()
async def check_users_and_update_blocked(bot: Bot):
conn = None
try:
conn = await asyncpg.connect(DATABASE_URL)
users = await conn.fetch("SELECT tg_id FROM users")
for user in users:
try:
await bot.send_chat_action(user['tg_id'], "typing")
except (TelegramForbiddenError,Exception):
await conn.execute(
"INSERT INTO blocked_users (tg_id) VALUES ($1) ON CONFLICT (tg_id) DO NOTHING",
user['tg_id']
)
logger.info(f"User {user['tg_id']} added to blocked_users")
except Exception as e:
logger.error(f"Error in check_users_and_update_blocked: {e}")
finally:
if conn:
await conn.close()
async def periodic_expired_keys_check(bot: Bot):
"""Периодическая проверка истекших ключей с кастомным интервалом."""
while True:
+21
View File
@@ -0,0 +1,21 @@
from typing import Any
from aiogram import Router
from aiogram.filters.chat_member_updated import KICKED, MEMBER, ChatMemberUpdatedFilter
from aiogram.types import ChatMemberUpdated
from logger import logger
router = Router()
@router.my_chat_member(ChatMemberUpdatedFilter(member_status_changed=KICKED))
async def user_blocked_bot(event: ChatMemberUpdated, session: Any):
logger.info(f"User {event.from_user.id} blocked the bot.")
await session.execute("INSERT INTO blocked_users (tg_id) VALUES ($1) ON CONFLICT (tg_id) DO NOTHING", event.from_user.id)
@router.my_chat_member(ChatMemberUpdatedFilter(member_status_changed=MEMBER))
async def user_unblocked_bot(event: ChatMemberUpdated, session: Any):
logger.info(f"User {event.from_user.id} unblocked the bot.")
await session.execute("DELETE FROM blocked_users WHERE tg_id = $1", event.from_user.id)
+7 -6
View File
@@ -1,12 +1,13 @@
from typing import Any
from admin import AdminMiddleware
from aiogram import Dispatcher
from delete import DeleteMessageMiddleware
from loggings import LoggingMiddleware
from session import SessionMiddleware
from throttling import ThrottlingMiddleware
from user import UserMiddleware
from .admin import AdminMiddleware
from .delete import DeleteMessageMiddleware
from .loggings import LoggingMiddleware
from .session import SessionMiddleware
from .throttling import ThrottlingMiddleware
from .user import UserMiddleware
def register_middleware(dispatcher: Dispatcher) -> None: