Update work from blocked_users
This commit is contained in:
@@ -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,
|
||||
)
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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)
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user