From cc34991f2098692a2cb2a9e913bd6667d38fdab5 Mon Sep 17 00:00:00 2001 From: Mikhail Kirillov Date: Wed, 9 Oct 2024 03:05:41 +0400 Subject: Add commands modules; Added /chooser command --- main.py | 85 +++++++---------------------------------------------------------- 1 file changed, 9 insertions(+), 76 deletions(-) (limited to 'main.py') diff --git a/main.py b/main.py index 5ea81d3..7ca8b59 100644 --- a/main.py +++ b/main.py @@ -9,18 +9,16 @@ # with this software. If not, see: # -from telegram import Update, error +from telegram import Update from telegram.ext import ApplicationBuilder, CommandHandler, ContextTypes, \ MessageHandler, filters from dotenv import load_dotenv import os import logging -from rich import inspect -from strings import INVALID_COMMAND, USER_NOT_PROVIDED, USER_ADDED, \ - USER_REMOVED -from utils import context_init +from strings import INVALID_COMMAND from persistence import Persistence +import commands load_dotenv() @@ -31,72 +29,6 @@ logging.basicConfig( ) -async def about(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None: - await update.message.reply_text(''' -Version 0.0 - -python-cinema-club-bot is a bot for Telegram specialized for managing cinema club activities. This software is released as Public Domain using CC0 license. - -Project information: http://57.129.46.169/trac/wiki/python-cinema-club-bot -Source code: http://57.129.46.169/cgit/python-cinema-club-bot/ - -Contributed in 2024 by Mikhail Kirillov (~w96k) - -To the extent possible under law, the author(s) have dedicated all copyright and related and neighboring rights to this software to the public domain worldwide. This software is distributed without any warranty. - -You should have received a copy of the CC0 Public Domain Dedication along with this software. If not, see: - - - ''') - - -async def add( - update: Update, - context: ContextTypes.DEFAULT_TYPE -) -> None: - context_init(context) - - if context.args == []: - await update.message.reply_text(USER_NOT_PROVIDED) - raise error.TelegramError(USER_NOT_PROVIDED) - - for user in context.args: - context.chat_data["users"].append(user) - await update.message.reply_text(USER_ADDED.format(user=user)) - - await update.message.reply_text(context.chat_data) - - -async def list( - update: Update, - context: ContextTypes.DEFAULT_TYPE -) -> None: - context_init(context) - - await update.message.reply_text(context.chat_data) - - -async def remove( - update: Update, - context: ContextTypes.DEFAULT_TYPE -) -> None: - context_init(context) - - if context.args == []: - await update.message.reply_text(USER_NOT_PROVIDED) - raise error.TelegramError(USER_NOT_PROVIDED) - - for user in context.args: - if user == "*": - context.chat_data["users"] = [] - break - - context.chat_data["users"].remove(user) - await update.message.reply_text(USER_REMOVED.format(user=user)) - - await update.message.reply_text(context.chat_data) - - async def unknown(update: Update, context: ContextTypes.DEFAULT_TYPE): await context.bot.send_message( chat_id=update.effective_chat.id, @@ -104,15 +36,16 @@ async def unknown(update: Update, context: ContextTypes.DEFAULT_TYPE): ) -if __name__ == "__main__": +if __name__ == "__main__": app = ApplicationBuilder().token( os.environ.get("TELEGRAM_TOKEN") ).persistence(Persistence).build() - app.add_handler(CommandHandler("about", about)) - app.add_handler(CommandHandler("add", add)) - app.add_handler(CommandHandler("list", list)) - app.add_handler(CommandHandler("remove", remove)) + app.add_handler(CommandHandler("about", commands.about)) + app.add_handler(CommandHandler("add", commands.add_users)) + app.add_handler(CommandHandler("list", commands.list_users)) + app.add_handler(CommandHandler("remove", commands.remove_users)) + app.add_handler(CommandHandler("chooser", commands.chooser_user)) app.add_handler(MessageHandler(filters.COMMAND, unknown)) -- cgit v1.2.3