luckydonald / pytgbot

python module to access the telegram bot api.
MIT License
66 stars 16 forks source link

Markup submodule support #17

Open SKY-ALIN opened 2 years ago

SKY-ALIN commented 2 years ago

Hello! I want to table a proposal to add a special submodule to generate Telegram-specific markup easily.

Motivation

A common markdown format that every programmer uses is really simple and doesn’t require special utils for that, but MarkdownV2 and HTML which let include spoiler, strikethrough and other telegram innovations are different. For example, MarkdownV2 also requires to escape 18 characters, and if it’s not, reject the request. This may make the task of designing markup generation for bots that include business logic complicated enough and I suppose it’s better to have a ready-made out-of-the-box solution for this.

Implementation suggestion

General explanation

I have recently worked on a related challenge and I’m writing this to propose to re-use my solution. It’s the telegram-text module. The general structure in the context of the pytgbot module I propose to implement is the following:

Why telegram-text module?

Example of the module:

from telegram_text import Bold, Italic, Underline

text = Underline(Bold("Bold") + "and" + Italic("italic") + "with underline.")

Usage example in the pytgbot context

from pytgbot import Bot
from pytgbot.text import Spoiler

API_KEY: str
CHAT: str

bot = Bot(API_KEY)

bot.send_message(CHAT, Spoiler("Example Text!"))
SKY-ALIN commented 2 years ago

The same proposal for the teleflask framework 👨🏻‍💻

luckydonald commented 2 years ago

Interesting proposal. I'll have a closer look next week.

SKY-ALIN commented 2 years ago

Ok. Also, I can help with the integration if you agree with the approach

SKY-ALIN commented 1 year ago

Hi! What have you decided on this issue?

Andreasannoeuzg commented 8 months ago

from telegram_text import Bold, Italic, Underline

text = Underline(Bold("Bold") + "and" + Italic("italic") + "with underline.")