import subprocess from telebot import TeleBot from telebot.types import Message def github_poster_handler(message: Message, bot: TeleBot): """github poster: /github [-]""" m = message.text.strip() message_list = m.split(",") name = message_list[0].strip() cmd_list = ["github_poster", "github", "--github_user_name", name, "--me", name] if len(message_list) > 1: years = message_list[1] cmd_list.append("--year") cmd_list.append(years.strip()) r = subprocess.check_output(cmd_list).decode("utf-8") try: if "done" in r: # TODO windows path r = subprocess.check_output( ["cairosvg", "OUT_FOLDER/github.svg", "-o", f"github_{name}.png"] ).decode("utf-8") with open(f"github_{name}.png", "rb") as photo: bot.send_photo( message.chat.id, photo, reply_to_message_id=message.message_id ) except: bot.reply_to(message, "github poster error") def register(bot: TeleBot) -> None: bot.register_message_handler( github_poster_handler, commands=["github"], pass_bot=True ) bot.register_message_handler( github_poster_handler, regexp="^github:", pass_bot=True )