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 .payments import router as payments_router
|
||||||
from .profile import router as profile_router
|
from .profile import router as profile_router
|
||||||
from .start import router as start_router
|
from .start import router as start_router
|
||||||
|
from .user import router as user_router
|
||||||
|
|
||||||
router = Router(name="handlers_main_router")
|
router = Router(name="handlers_main_router")
|
||||||
|
|
||||||
@@ -26,4 +27,5 @@ router.include_routers(
|
|||||||
keys_router,
|
keys_router,
|
||||||
instructions_router,
|
instructions_router,
|
||||||
admin_router,
|
admin_router,
|
||||||
|
user_router,
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -36,28 +36,6 @@ from logger import logger
|
|||||||
|
|
||||||
router = Router()
|
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):
|
async def periodic_expired_keys_check(bot: Bot):
|
||||||
"""Периодическая проверка истекших ключей с кастомным интервалом."""
|
"""Периодическая проверка истекших ключей с кастомным интервалом."""
|
||||||
while True:
|
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 typing import Any
|
||||||
|
|
||||||
from admin import AdminMiddleware
|
|
||||||
from aiogram import Dispatcher
|
from aiogram import Dispatcher
|
||||||
from delete import DeleteMessageMiddleware
|
|
||||||
from loggings import LoggingMiddleware
|
from .admin import AdminMiddleware
|
||||||
from session import SessionMiddleware
|
from .delete import DeleteMessageMiddleware
|
||||||
from throttling import ThrottlingMiddleware
|
from .loggings import LoggingMiddleware
|
||||||
from user import UserMiddleware
|
from .session import SessionMiddleware
|
||||||
|
from .throttling import ThrottlingMiddleware
|
||||||
|
from .user import UserMiddleware
|
||||||
|
|
||||||
|
|
||||||
def register_middleware(dispatcher: Dispatcher) -> None:
|
def register_middleware(dispatcher: Dispatcher) -> None:
|
||||||
|
|||||||
Reference in New Issue
Block a user