import asyncio import logging import sys from datetime import datetime, timedelta from aiogram import Bot, Dispatcher, Router from aiogram.filters import Command from aiogram.types import Message from aiogram.client.default import DefaultBotProperties from aiogram.enums import ParseMode API_TOKEN = 'тут ваш токена' ADMIN_USER_ID = # тут айди адм bot = Bot(token=API_TOKEN) dp = Dispatcher() router = Router() last_request_time = {} lock = asyncio.Lock() @router.message(Command("start")) async def send_welcome(message: Message): user_id = message.from_user.id username = message.from_user.username full_name = message.from_user.full_name async with lock: now = datetime.now() last_time = last_request_time.get(user_id) if last_time and now - last_time < timedelta(minutes=50): remaining_time = timedelta(minutes=50) - (now - last_time) await message.reply(f"Пожалуйста, подождите еще {int(remaining_time.total_seconds() // 60)} минут и {int(remaining_time.total_seconds() % 60)} секунд перед следующим запросом.") return last_request_time[user_id] = now admin_message = ( f"<b>Новый запрос от пользователя:</b>\n\n" f"ЮЗ: @{username} | ID: <code>{user_id}</code>\n" f"<b>Имя пользователя:</b> {full_name}" ) await bot.send_message(ADMIN_USER_ID, admin_message, parse_mode='HTML') await message.reply(f"Привет, написал администратору, скоро он тебе напишет.\n Сделано студией: @exfa_studio") dp.include_router(router) async def main() -> None: bot = Bot(token=API_TOKEN, default=DefaultBotProperties(parse_mode=ParseMode.HTML)) await dp.start_polling(bot) if __name__ == "__main__": logging.basicConfig(level=logging.INFO, stream=sys.stdout) asyncio.run(main()) Python import asyncio import logging import sys from datetime import datetime, timedelta from aiogram import Bot, Dispatcher, Router from aiogram.filters import Command from aiogram.types import Message from aiogram.client.default import DefaultBotProperties from aiogram.enums import ParseMode API_TOKEN = 'тут ваш токена' ADMIN_USER_ID = # тут айди адм bot = Bot(token=API_TOKEN) dp = Dispatcher() router = Router() last_request_time = {} lock = asyncio.Lock() @router.message(Command("start")) async def send_welcome(message: Message): user_id = message.from_user.id username = message.from_user.username full_name = message.from_user.full_name async with lock: now = datetime.now() last_time = last_request_time.get(user_id) if last_time and now - last_time < timedelta(minutes=50): remaining_time = timedelta(minutes=50) - (now - last_time) await message.reply(f"Пожалуйста, подождите еще {int(remaining_time.total_seconds() // 60)} минут и {int(remaining_time.total_seconds() % 60)} секунд перед следующим запросом.") return last_request_time[user_id] = now admin_message = ( f"<b>Новый запрос от пользователя:</b>\n\n" f"ЮЗ: @{username} | ID: <code>{user_id}</code>\n" f"<b>Имя пользователя:</b> {full_name}" ) await bot.send_message(ADMIN_USER_ID, admin_message, parse_mode='HTML') await message.reply(f"Привет, написал администратору, скоро он тебе напишет.\n Сделано студией: @exfa_studio") dp.include_router(router) async def main() -> None: bot = Bot(token=API_TOKEN, default=DefaultBotProperties(parse_mode=ParseMode.HTML)) await dp.start_polling(bot) if __name__ == "__main__": logging.basicConfig(level=logging.INFO, stream=sys.stdout) asyncio.run(main()) Бот включает в себя: - отправку сообщения при вводе команды /start (уведомляет админа о новом человеке) - кд на 50 минут, чтобы не было флуда платные услуги https://lolz.live/threads/7607854/