45 lines
1.4 KiB
Python
45 lines
1.4 KiB
Python
from aiogram import Router, F
|
|
from aiogram.enums import ContentType, ParseMode
|
|
from aiogram.types import Message
|
|
|
|
from messages import *
|
|
import tg.tg_database as database
|
|
|
|
router = Router()
|
|
|
|
|
|
@router.message(F.content_type == ContentType.NEW_CHAT_MEMBERS)
|
|
async def user_join_handler(message: Message):
|
|
chat_id = message.chat.id
|
|
chat = database.DB.create_chat_if_not_exists(chat_id)
|
|
if chat['active'] == 0:
|
|
return
|
|
|
|
for member in message.new_chat_members:
|
|
if member.is_bot:
|
|
continue
|
|
|
|
response = chat['greeting_join'] or MESSAGE_DEFAULT_GREETING_JOIN
|
|
response = response.format(name=f'[{member.first_name}](tg://user?id={member.id})')
|
|
await message.answer(response, parse_mode=ParseMode.MARKDOWN)
|
|
|
|
|
|
@router.message(F.content_type == ContentType.LEFT_CHAT_MEMBER)
|
|
async def user_join_handler(message: Message):
|
|
chat_id = message.chat.id
|
|
chat = database.DB.create_chat_if_not_exists(chat_id)
|
|
if chat['active'] == 0:
|
|
return
|
|
|
|
member = message.left_chat_member
|
|
if member.is_bot:
|
|
return
|
|
|
|
database.DB.delete_user(chat_id, member.id)
|
|
|
|
|
|
@router.message(F.content_type == ContentType.MIGRATE_TO_CHAT_ID)
|
|
async def migration_handler(message: Message):
|
|
old_id, new_id = message.chat.id, message.migrate_to_chat_id
|
|
database.DB.chat_delete(new_id)
|
|
database.DB.chat_update(old_id, id=new_id)
|