from telegram import Update from telegram.ext import CommandHandler, ContextTypes from db import AsyncSessionLocal, log_action from models import Admin async def invite_admin(update: Update, context: ContextTypes.DEFAULT_TYPE): args = context.args if len(args) < 3: await update.message.reply_text("Неверная ссылка.") return channel_id, inviter_id, token = args user_id = update.effective_user.id session = AsyncSessionLocal() admin = session.query(Admin).filter_by(invite_token=token, channel_id=channel_id).first() if not admin: await update.message.reply_text("Ссылка недействительна.") session.close() return new_admin = Admin(tg_id=user_id, channel_id=channel_id, inviter_id=inviter_id) session.add(new_admin) session.commit() session.close() await update.message.reply_text("Вы добавлены как администратор канала!") log_action(user_id, "invite_admin", f"channel_id={channel_id}, inviter_id={inviter_id}") invite_admin_handler = CommandHandler("invite_admin", invite_admin)