source: python-cinema-club-bot/main.py@ 0d48ea2

Last change on this file since 0d48ea2 was 0d48ea2, checked in by Mikhail Kirillov <w96k@…>, on Oct 9, 2024 at 3:40:27 AM

Add /set command; Add error_handler;

  • Property mode set to 100644
File size: 2.0 KB
Line 
1# This file is part of python-cinema-club-bot
2# contributed in 2024 by Mikhail Kirillov (~w96k) <w96k@runbox.com>
3
4# To the extent possible under law, the author(s) have dedicated all copyright
5# and related and neighboring rights to this software to the public domain
6# worldwide. This software is distributed without any warranty.
7
8# You should have received a copy of the CC0 Public Domain Dedication along
9# with this software. If not, see:
10# <http://creativecommons.org/publicdomain/zero/1.0/>
11
12from telegram import Update
13from telegram.ext import ApplicationBuilder, CommandHandler, ContextTypes, \
14 MessageHandler, filters
15from dotenv import load_dotenv
16import os
17import logging
18
19from strings import INVALID_COMMAND
20from persistence import Persistence
21import commands
22
23
24load_dotenv()
25
26logging.basicConfig(
27 level=logging.INFO,
28 format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
29)
30
31
32async def unknown(update: Update, context: ContextTypes.DEFAULT_TYPE):
33 await context.bot.send_message(
34 chat_id=update.effective_chat.id,
35 text=INVALID_COMMAND
36 )
37
38async def error_handler(update: object, context: ContextTypes.DEFAULT_TYPE) -> None:
39 logging.error("Exception:", exc_info=context.error)
40
41 await context.bot.send_message(
42 chat_id=update.effective_chat.id,
43 text=context.error.message
44 )
45
46if __name__ == "__main__":
47 app = ApplicationBuilder().token(
48 os.environ.get("TELEGRAM_TOKEN")
49 ).persistence(Persistence).build()
50
51 # Meta commands
52 app.add_handler(CommandHandler("about", commands.about))
53
54 # Movie commands
55 app.add_handler(CommandHandler("set", commands.set_users))
56 app.add_handler(CommandHandler("add", commands.add_users))
57 app.add_handler(CommandHandler("list", commands.list_users))
58 app.add_handler(CommandHandler("remove", commands.remove_users))
59 app.add_handler(CommandHandler("chooser", commands.chooser_user))
60
61 app.add_handler(MessageHandler(filters.COMMAND, unknown))
62 app.add_error_handler(error_handler)
63
64
65 app.run_polling()
66
Note: See TracBrowser for help on using the repository browser.