Files
tg_bot_collections/tg.py
Frost Ming 0b60ae2fbe feat: add summary and search commands (#54)
* feat: add summary and search commands

Signed-off-by: Frost Ming <me@frostming.com>

* fix formats

Signed-off-by: Frost Ming <me@frostming.com>

* fix: clean up

Signed-off-by: Frost Ming <me@frostming.com>
2025-07-08 11:41:57 +08:00

60 lines
1.6 KiB
Python

import argparse
import logging
from telebot import TeleBot
from config import settings
from handlers import list_available_commands, load_handlers
logger = logging.getLogger("bot")
def setup_logging(debug: bool):
logger.setLevel(logging.DEBUG if debug else logging.INFO)
handler = logging.StreamHandler()
handler.setFormatter(
logging.Formatter(
"%(asctime)s - [%(levelname)s] - %(filename)s:%(lineno)d - %(message)s"
)
)
logger.addHandler(handler)
def main():
# Init args
parser = argparse.ArgumentParser()
parser.add_argument(
"tg_token", help="tg token", default=settings.telegram_bot_token, nargs="?"
)
parser.add_argument(
"--debug", "--verbose", "-v", action="store_true", help="Enable debug mode"
)
# 'disable-command' option
# The action 'append' will allow multiple entries to be saved into a list
# The variable name is changed to 'disable_commands'
parser.add_argument(
"--disable-command",
action="append",
dest="disable_commands",
help="Specify a command to disable. Can be used multiple times.",
default=[],
choices=list_available_commands(),
)
options = parser.parse_args()
setup_logging(options.debug)
# Init bot
bot = TeleBot(options.tg_token)
load_handlers(bot, options.disable_commands)
logger.info("Bot init done.")
# Start bot
logger.info("Starting tg collections bot.")
bot.infinity_polling(timeout=10, long_polling_timeout=5)
if __name__ == "__main__":
main()