38 lines
1.7 KiB
Python
38 lines
1.7 KiB
Python
import logging
|
|
from telegram.ext import ApplicationBuilder, CommandHandler, MessageHandler, CallbackQueryHandler, ChatMemberHandler, filters
|
|
from app.config import load_config
|
|
from app.bot.handlers.start import start, help_cmd, groups_cmd
|
|
from app.bot.handlers.add_group import add_group_cmd, add_group_capture
|
|
from app.bot.handlers.drafts import new_cmd, on_text
|
|
from app.bot.handlers.media import on_media
|
|
from app.bot.handlers.callbacks import on_callback
|
|
from app.bot.handlers.join_info import on_my_chat_member # ← ново
|
|
|
|
def main():
|
|
cfg = load_config()
|
|
logging.basicConfig(level=getattr(logging, cfg.log_level.upper(), logging.INFO))
|
|
app = ApplicationBuilder().token(cfg.bot_token).build()
|
|
|
|
# Commands
|
|
app.add_handler(CommandHandler("start", start))
|
|
app.add_handler(CommandHandler("help", help_cmd))
|
|
app.add_handler(CommandHandler("groups", groups_cmd))
|
|
app.add_handler(CommandHandler("add_group", add_group_cmd))
|
|
app.add_handler(CommandHandler("new", new_cmd))
|
|
|
|
# Callback queries
|
|
app.add_handler(CallbackQueryHandler(on_callback))
|
|
|
|
# Private chat handlers
|
|
app.add_handler(MessageHandler(filters.ChatType.PRIVATE & filters.TEXT, on_text))
|
|
app.add_handler(MessageHandler(filters.ChatType.PRIVATE & filters.FORWARDED, add_group_capture))
|
|
app.add_handler(MessageHandler(filters.ChatType.PRIVATE & (filters.PHOTO | filters.VIDEO | filters.ANIMATION), on_media))
|
|
|
|
# NEW: реагируем, когда бота добавили/изменили права в чате
|
|
app.add_handler(ChatMemberHandler(on_my_chat_member, chat_member_types=ChatMemberHandler.MY_CHAT_MEMBER))
|
|
|
|
app.run_polling(allowed_updates=None)
|
|
|
|
if __name__ == "__main__":
|
|
main()
|