start.py 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import datetime
  2. from aiogram import Router, types, F, Bot
  3. from aiogram.filters import Command, BaseFilter, IS_ADMIN, ChatMemberUpdatedFilter, IS_NOT_MEMBER, ADMINISTRATOR, \
  4. PROMOTED_TRANSITION, Text
  5. from aiogram.types import ChatMemberAdministrator, ChatMemberUpdated, callback_query
  6. from aiogram.utils.markdown import hpre, hbold, hlink
  7. import config
  8. from handlers.users_message import delete_mess
  9. from keyboards import menu_keys
  10. from keyboards.callbacks_data import MenuCategory
  11. from loader import db, scheduler, logger
  12. router = Router()
  13. # router.message.bind_filter(IsAdmin)
  14. # router.message.bind_filter(F.chat.type == "private")
  15. @router.message(
  16. F.chat.type == "private",
  17. commands=['start'])
  18. async def start(message: types.Message, context: dict):
  19. users = context["users"]
  20. wor = "\n".join(context["stop_words"])
  21. text = f'Привет!\nТеперь добавь меня в чаты где нужна моя помощь.\n' \
  22. f'Основные настройки делаются в личке. \n'
  23. keys = menu_keys.admin_menu() if message.from_user.id in config.ADMIN_ID else menu_keys.client_menu()
  24. # db.add_default_words(message.from_user.id)
  25. db.add_client(message.from_user.id, message.from_user.username, message.from_user.full_name)
  26. await message.answer(text, reply_markup=keys)
  27. @router.my_chat_member(
  28. ChatMemberUpdatedFilter(member_status_changed=PROMOTED_TRANSITION),
  29. )
  30. async def bot_added_as_admin(event: ChatMemberUpdated, bot: Bot, context: dict):
  31. print(event)
  32. if event.chat.type in ["group", "supergroup"]:
  33. db.add_chat(event.from_user.id, event.chat.id, 0)
  34. text = f"Привет! Спасибо, что добавили меня в " \
  35. f'{hlink(event.chat.title, event.chat.invite_link)}. Теперь можно назначать этой группе обязательные каналы.'
  36. elif event.chat.type == 'channel':
  37. db.add_chat(event.from_user.id, event.chat.id, 2)
  38. url = event.chat.invite_link if event.chat.invite_link else f"https://t.me/{event.chat.username}"
  39. text = f"Привет! Меня ту добавили в канал {hlink(event.chat.title, url)}\n" \
  40. f"Теперь его можно сделать обязательным для одной из ваших групп"
  41. context['users'] = db.get_all_clients()
  42. mess = await bot.send_message(chat_id=event.from_user.id, text=text)
  43. scheduler.add_job(delete_mess, args=(mess,), trigger='date',
  44. run_date=datetime.datetime.now() + datetime.timedelta(seconds=60))