Загрузка...

Spamblock with anti-spam protection

Thread in Python created by Эксфадор Oct 9, 2024. (bumped Jan 2, 2025) 1014 views

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

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