summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikhail Kirillov <w96k@runbox.com>2024-10-08 01:37:34 +0400
committerMikhail Kirillov <w96k@runbox.com>2024-10-08 01:48:33 +0400
commit5179f7ba87b9f66a1133112dfbad416e4dc6662e (patch)
treee9bbd85b19e048838024df936161521b6391132b
parent50e04dd95de3dd41a1389712785f583ca60144fe (diff)
Add about command
-rw-r--r--app.py52
1 files changed, 47 insertions, 5 deletions
diff --git a/app.py b/app.py
index 3c754e7..a479d11 100644
--- a/app.py
+++ b/app.py
@@ -9,9 +9,11 @@
# with this software. If not, see:
# <http://creativecommons.org/publicdomain/zero/1.0/>.
-from telegram import Update
-from telegram.ext import ApplicationBuilder, CommandHandler, ContextTypes
+from telegram import Update, error
+from telegram.ext import ApplicationBuilder, CommandHandler, ContextTypes, \
+ MessageHandler, filters
from dotenv import load_dotenv
+from rich import inspect
import os
import logging
@@ -22,14 +24,54 @@ logging.basicConfig(
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
)
+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.
-async def hello(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
- await update.message.reply_text(f'Hello {update.effective_user.first_name}')
+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) <w96k@runbox.com>
+
+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:
+<http://creativecommons.org/publicdomain/zero/1.0/>
+
+ ''')
+
+async def add_choose_cycle(
+ update: Update,
+ context: ContextTypes.DEFAULT_TYPE
+) -> None:
+ command = update.message.text
+
+ user = command.replace("/add", "")
+
+ inspect(user)
+
+ try:
+ if user == "":
+ raise error.TelegramError("User is not provided. Use /add @username")
+ except error.TelegramError as err:
+ await update.message.reply_text(err.message)
+ return
+
+ await update.message.reply_text(update.message.text)
+
+
+async def unknown(update: Update, context: ContextTypes.DEFAULT_TYPE):
+ await context.bot.send_message(chat_id=update.effective_chat.id, text="Invalid command. Available commands: /add")
app = ApplicationBuilder().token(
os.environ.get('TELEGRAM_TOKEN')
).build()
-app.add_handler(CommandHandler("hello", hello))
+app.add_handler(CommandHandler("about", about))
+app.add_handler(CommandHandler("add", add_choose_cycle))
+
+app.add_handler(MessageHandler(filters.COMMAND, unknown))
app.run_polling()