Matnlarni formatlash
Telegram bot orqali foydalanuvchilarga jo’natilayotgan xabarlarni formatlab jo’natish imkoniyati mavjud bo’lib, textlarni ajralib turadigan va chiroyliroq qilib jo’natish imkonini beradi.
Ushbu formatlash bizga botimiz orqali foydalanuvchilarga bold, italic, underline, strikethrough, code, url va spoiler(ustiga bosilmagunigacha ko’rinmaydigan) ko’rinishidagi matnlarni jo’nata olamiz.
Formatlash uchun 3xil format mavjud: HTML, Markdown va MarkdownV2. Bulardan asosan foydalanadiganlar HTML va Markdown2 hisoblanadi. Shuning uchun biz siz bilan shu ikki usulda matnlarni formatlab jo’natishni ko’rib chiqamiz.
Quyidagi kodni birinchi bo’limda yozgan kodimizga /start buyurg’ini “ushlab” olish uchun yozilgan handler’dan kegin qo’shib olamiz:
E’tibor bergan bo’lsangiz biz answer() funksiyasiga faqatgina text argumentini emas,balki parse_mode argumentini ham qo’shdik,ushbu argument orqali biz Telegram’ga matnimizni qaysi formatda formatlash kerakligini ko’rsatamiz.
@dp.message_handler(commands=['format'])
async def formating(message: types.Message):
# HTML
await message.answer(
text="<b>Black</b>, <i>italic</i>, <u>underline</u>, <s>strikethrough</s>, <a href='https://example.com'>link</a>, <tg-spoiler>spoiler</tg-spoiler>\n\nHTML",
parse_mode='HTML',
)
# MarkdownV2
await message.answer(
text="*Black*, _italic_, __underline__, ~strikethrough~, [link](https://example.com), ||spoiler||\n\nMarkdownV2",
parse_mode='MarkdownV2')PythonKeling endi kodimizni ishga tushirib, botimizni sinab ko’ramiz:

To’liq kod: havola
Matnlarni formatlash bo’yicha to’liqroq quyidagi havola orqali tanishib chiqishingiz mumkin: havola.
Aiogramning Bot classida parse_mode argumenti bo’lib, ushbu argument orqali biz oson qaysi format turida formatlash kerakligini bera olamiz, masalan:
bot = Bot("BOT_TOKEN",parse_mode=types.ParseMode.HTML)PythonMedia fayllar
Telegram Bot orqali nafaqat matnlar bilan ishlash, shu bilan bir qatorda rasmlar, giflar, videolar, audiolar, stickerlar, geolokatsiyalar va hokazolar bilan ishlash mumkin. Barcha media fayllar o’zining file_id va file_unique_idsiga ega. file_id bitta mediafaylni ko’p martta tezkor yuborish uchun foydalanilishi mumkin.
Tezkor yuborish mumkinligining sababi ushbu fayl allaqachon Telegram serverlarida mavjudligidur. Botlarda media fayllarni yuborish uchun ushbu usuldan foydalanish tavsiya etiladi. Masalan, quyidagi kod foydalanuvchidan kelgan animatsiya’ni o’ziga bir zumda file_idsi orqali qaytaradi:
# Foydalanuvchidan kelayotgan sticker'ni "ushlab" olish uchun handler
@dp.message_handler(content_types=['sticker'])
async def return_anim(message: types.Message):
# Foydalanuvchi jo'natgan stickerga javoban jo'natilgan stickerni qaytaradi
await message.reply_sticker(message.sticker.file_id)Python
file_idhar bir Telegram Bot uchun unikal bo’ladi, yani bitta bot orqali olinganfile_idboshqa bot uchun ishlamaydi.file_unique_idesa biror bir media fayl uchun boshqa botlarda ham o’zgarmas identifikator hisoblanadi,file_unique_idorqali mediafayllarni jo’natib bo’lmaydi.
Aiogramda foydalanuvchidan kelgan media fayllar va fayllarni yuklash uchun download() funksiyasi mavjud,namuna uchun kod:
# Foydalanuvchidan kelgan faylni "ushlab" olish uchun handler
@dp.message_handler(content_types=['document'])
async def down_doc(message: types.Message):
# Bot ishga tushirilgan direktoriyaga faylni yuklaydi
await message.document.download()
await message.reply("✅ Fayl muvaffaqiyatli yuklandi!")
# Foydalanuvchidan kelgan rasmni "ushlab" olish uchun handler
@dp.message_handler(content_types=["photo"])
async def down_photo(message: types.Message):
# Bot ishga tushirilgan diroktoriyadagi images nomli papkaga rasmni yuklaydi.
await message.photo[-1].download()
await message.reply("✅ Rasm muvaffaqiyatli yuklandi!")PythonE’tibor bergan bo’lsangiz biz rasmni yuklashdamessage.photo[-1]qildik. Buning sababi foydalanuvchi botga rasm yuborganida Telegram bizga bittaphotoobyektida foydalanuvchi jo’natgan rasmnining har-xil sifatdagisini yuboradi, eng oxirgisi eng sifatlisi hisoblanadi, shuning uchun biz eng oxirgi elementni, yani eng sifatli rasmningfile_idsini[-1]orqali olamiz va yuklaymiz.
Keyingi qism: Tugmalar bilan ishlash(2-dars).

Eng ko’p o’qilgan maqolalar