Загрузка...

Спамблок с защитой от спама

Тема в разделе Python создана пользователем Эксфадор 9 окт 2024. (поднята 2 янв 2025) 1015 просмотров

  1. Эксфадор
    Эксфадор Автор темы 9 окт 2024 ПЛАГИНЫ ДЛЯ FPC - t.me/coxerhub 1739 30 авг 2023
    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 минут, чтобы не было флуда

     
    9 окт 2024 Изменено
  2. противоположник
    дай тебе бог здоровья
     
  3. КриптоБот
    ADMIN_USER_ID = # тут айди адм -- тут типо указывать ID аккаунта админа?
     
    1. Эксфадор Автор темы
  4. Aisan
    Aisan 13 окт 2024 Ничего не продаю и не создаю. Не пишите мне 15 857 26 авг 2020
    Миддлвари придумали в 1968 году
    Люди до 1968 года:
     
Top
Загрузка...