{"id":5340,"date":"2023-01-30T04:36:45","date_gmt":"2023-01-30T04:36:45","guid":{"rendered":"https:\/\/texnokun.uz\/?p=5340"},"modified":"2023-02-19T05:19:38","modified_gmt":"2023-02-19T05:19:38","slug":"xabarlar-bilan-ishlash-1-dars","status":"publish","type":"post","link":"https:\/\/texnokun.uz\/?p=5340","title":{"rendered":"Xabarlar bilan ishlash (1-dars)"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\">Matnlarni formatlash<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Telegram bot orqali foydalanuvchilarga jo&#8217;natilayotgan xabarlarni formatlab jo&#8217;natish imkoniyati mavjud bo&#8217;lib, textlarni ajralib turadigan va chiroyliroq qilib jo&#8217;natish imkonini beradi. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ushbu formatlash bizga botimiz orqali foydalanuvchilarga <strong>bold<\/strong>, <em>italic<\/em>, <u>underline<\/u>, <s>strikethrough<\/s>, <code>code<\/code>, <a href=\"https:\/\/github.com\/RDev-Uz\/BotDarslari#\">url<\/a> va spoiler(ustiga bosilmagunigacha ko&#8217;rinmaydigan) ko&#8217;rinishidagi matnlarni jo&#8217;nata olamiz.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">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&#8217;natishni ko&#8217;rib chiqamiz. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Quyidagi kodni birinchi bo&#8217;limda yozgan kodimizga <code>\/start<\/code> buyurg&#8217;ini &#8220;ushlab&#8221; olish uchun yozilgan handler&#8217;dan kegin qo&#8217;shib olamiz:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">E&#8217;tibor bergan bo&#8217;lsangiz biz <code>answer()<\/code> funksiyasiga faqatgina text argumentini emas,balki <code>parse_mode<\/code> argumentini ham qo&#8217;shdik,ushbu argument orqali biz Telegram&#8217;ga matnimizni qaysi formatda formatlash kerakligini ko&#8217;rsatamiz.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled\" style=\"font-size:.875rem;line-height:1.25rem\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"@dp.message_handler(commands=['format'])\nasync def formating(message: types.Message):\n    # HTML\n    await message.answer(\n        text=&quot;&lt;b&gt;Black&lt;\/b&gt;, &lt;i&gt;italic&lt;\/i&gt;, &lt;u&gt;underline&lt;\/u&gt;, &lt;s&gt;strikethrough&lt;\/s&gt;, &lt;a href='https:\/\/example.com'&gt;link&lt;\/a&gt;, &lt;tg-spoiler&gt;spoiler&lt;\/tg-spoiler&gt;\\n\\nHTML&quot;,\n        parse_mode='HTML',\n    )\n    # MarkdownV2\n    await message.answer(\n        text=&quot;*Black*, _italic_, __underline__, ~strikethrough~, [link](https:\/\/example.com), ||spoiler||\\n\\nMarkdownV2&quot;,\n        parse_mode='MarkdownV2')\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\"><code><span class=\"line\"><span style=\"color: #DCDCAA\">@dp.message_handler<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">commands<\/span><span style=\"color: #D4D4D4\">=[<\/span><span style=\"color: #CE9178\">&#39;format&#39;<\/span><span style=\"color: #D4D4D4\">])<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">async<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">def<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">formating<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">message<\/span><span style=\"color: #D4D4D4\">: types.Message):<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #6A9955\"># HTML<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #C586C0\">await<\/span><span style=\"color: #D4D4D4\"> message.answer(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #9CDCFE\">text<\/span><span style=\"color: #D4D4D4\">=<\/span><span style=\"color: #CE9178\">&quot;&lt;b&gt;Black&lt;\/b&gt;, &lt;i&gt;italic&lt;\/i&gt;, &lt;u&gt;underline&lt;\/u&gt;, &lt;s&gt;strikethrough&lt;\/s&gt;, &lt;a href=&#39;https:\/\/example.com&#39;&gt;link&lt;\/a&gt;, &lt;tg-spoiler&gt;spoiler&lt;\/tg-spoiler&gt;<\/span><span style=\"color: #D7BA7D\">\\n\\n<\/span><span style=\"color: #CE9178\">HTML&quot;<\/span><span style=\"color: #D4D4D4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #9CDCFE\">parse_mode<\/span><span style=\"color: #D4D4D4\">=<\/span><span style=\"color: #CE9178\">&#39;HTML&#39;<\/span><span style=\"color: #D4D4D4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    )<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #6A9955\"># MarkdownV2<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #C586C0\">await<\/span><span style=\"color: #D4D4D4\"> message.answer(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #9CDCFE\">text<\/span><span style=\"color: #D4D4D4\">=<\/span><span style=\"color: #CE9178\">&quot;*Black*, _italic_, __underline__, ~strikethrough~, [link](https:\/\/example.com), ||spoiler||<\/span><span style=\"color: #D7BA7D\">\\n\\n<\/span><span style=\"color: #CE9178\">MarkdownV2&quot;<\/span><span style=\"color: #D4D4D4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #9CDCFE\">parse_mode<\/span><span style=\"color: #D4D4D4\">=<\/span><span style=\"color: #CE9178\">&#39;MarkdownV2&#39;<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span><\/code><\/pre><span style=\"display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#1e1e1e;color:#c7c7c7;font-size:12px;line-height:1;position:relative\">Python<\/span><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Keling endi kodimizni ishga tushirib, botimizni sinab ko&#8217;ramiz:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/github.com\/RDev-Uz\/BotDarslari\/raw\/main\/images\/2_dars_1.png\" alt=\"\"\/><\/figure>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><\/p>\n<cite>To&#8217;liq kod: <a href=\"https:\/\/github.com\/RDev-Uz\/BotDarslari\/blob\/main\/code\/2dars_1.py\">havola<\/a><\/cite><\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Matnlarni formatlash bo&#8217;yicha to&#8217;liqroq quyidagi havola orqali tanishib chiqishingiz mumkin: <a href=\"https:\/\/core.telegram.org\/bots\/api#formatting-options\">havola<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aiogramning <code>Bot<\/code> classida <code>parse_mode<\/code> argumenti bo&#8217;lib, ushbu argument orqali biz oson qaysi format turida formatlash kerakligini bera olamiz, masalan:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled\" style=\"font-size:.875rem;line-height:1.25rem\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"bot = Bot(&quot;BOT_TOKEN&quot;,parse_mode=types.ParseMode.HTML)\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\"><code><span class=\"line\"><span style=\"color: #D4D4D4\">bot = Bot(<\/span><span style=\"color: #CE9178\">&quot;BOT_TOKEN&quot;<\/span><span style=\"color: #D4D4D4\">,<\/span><span style=\"color: #9CDCFE\">parse_mode<\/span><span style=\"color: #D4D4D4\">=types.ParseMode.HTML)<\/span><\/span><\/code><\/pre><span style=\"display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#1e1e1e;color:#c7c7c7;font-size:12px;line-height:1;position:relative\">Python<\/span><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Media fayllar<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">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&#8217;zining <code>file_id<\/code> va <code>file_unique_id<\/code>siga ega. <code>file_id<\/code> bitta mediafaylni ko&#8217;p martta tezkor yuborish uchun foydalanilishi mumkin. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">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&#8217;ni o&#8217;ziga bir zumda <code>file_id<\/code>si orqali qaytaradi:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled\" style=\"font-size:.875rem;line-height:1.25rem\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"# Foydalanuvchidan kelayotgan sticker'ni &quot;ushlab&quot; olish uchun handler\n@dp.message_handler(content_types=['sticker'])\nasync def return_anim(message: types.Message):\n    # Foydalanuvchi jo'natgan stickerga javoban jo'natilgan stickerni qaytaradi\n    await message.reply_sticker(message.sticker.file_id)\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\"><code><span class=\"line\"><span style=\"color: #6A9955\"># Foydalanuvchidan kelayotgan sticker&#39;ni &quot;ushlab&quot; olish uchun handler<\/span><\/span>\n<span class=\"line\"><span style=\"color: #DCDCAA\">@dp.message_handler<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">content_types<\/span><span style=\"color: #D4D4D4\">=[<\/span><span style=\"color: #CE9178\">&#39;sticker&#39;<\/span><span style=\"color: #D4D4D4\">])<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">async<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">def<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">return_anim<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">message<\/span><span style=\"color: #D4D4D4\">: types.Message):<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #6A9955\"># Foydalanuvchi jo&#39;natgan stickerga javoban jo&#39;natilgan stickerni qaytaradi<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #C586C0\">await<\/span><span style=\"color: #D4D4D4\"> message.reply_sticker(message.sticker.file_id)<\/span><\/span><\/code><\/pre><span style=\"display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#1e1e1e;color:#c7c7c7;font-size:12px;line-height:1;position:relative\">Python<\/span><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Natija: <a href=\"https:\/\/github.com\/RDev-Uz\/BotDarslari\/blob\/main\/images\/2_dars_2.png\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/github.com\/RDev-Uz\/BotDarslari\/raw\/main\/images\/2_dars_2.png\" alt=\"\"\/><\/figure>\n\n\n\n<blockquote class=\"wp-block-quote has-medium-font-size is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><\/p>\n<cite><code>file_id<\/code> har bir Telegram Bot uchun unikal bo&#8217;ladi, yani bitta bot orqali olingan <code>file_id<\/code> boshqa bot uchun ishlamaydi. <code>file_unique_id<\/code> esa biror bir media fayl uchun boshqa botlarda ham o&#8217;zgarmas identifikator hisoblanadi, <code>file_unique_id<\/code> orqali mediafayllarni jo&#8217;natib bo&#8217;lmaydi.<\/cite><\/blockquote>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Aiogramda foydalanuvchidan kelgan media fayllar va fayllarni yuklash uchun <code>download()<\/code> funksiyasi mavjud,namuna uchun kod:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled\" style=\"font-size:.875rem;line-height:1.25rem\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"# Foydalanuvchidan kelgan faylni &quot;ushlab&quot; olish uchun handler\n@dp.message_handler(content_types=['document'])\nasync def down_doc(message: types.Message):\n    # Bot ishga tushirilgan direktoriyaga faylni yuklaydi\n    await message.document.download()\n    await message.reply(&quot;\u2705 Fayl muvaffaqiyatli yuklandi!&quot;)\n\n\n# Foydalanuvchidan kelgan rasmni &quot;ushlab&quot; olish uchun handler\n@dp.message_handler(content_types=[&quot;photo&quot;])\nasync def down_photo(message: types.Message):\n    # Bot ishga tushirilgan diroktoriyadagi images nomli papkaga rasmni yuklaydi.\n    await message.photo[-1].download()\n    await message.reply(&quot;\u2705 Rasm muvaffaqiyatli yuklandi!&quot;)\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\"><code><span class=\"line\"><span style=\"color: #6A9955\"># Foydalanuvchidan kelgan faylni &quot;ushlab&quot; olish uchun handler<\/span><\/span>\n<span class=\"line\"><span style=\"color: #DCDCAA\">@dp.message_handler<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">content_types<\/span><span style=\"color: #D4D4D4\">=[<\/span><span style=\"color: #CE9178\">&#39;document&#39;<\/span><span style=\"color: #D4D4D4\">])<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">async<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">def<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">down_doc<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">message<\/span><span style=\"color: #D4D4D4\">: types.Message):<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #6A9955\"># Bot ishga tushirilgan direktoriyaga faylni yuklaydi<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #C586C0\">await<\/span><span style=\"color: #D4D4D4\"> message.document.download()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #C586C0\">await<\/span><span style=\"color: #D4D4D4\"> message.reply(<\/span><span style=\"color: #CE9178\">&quot;\u2705 Fayl muvaffaqiyatli yuklandi!&quot;<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\"># Foydalanuvchidan kelgan rasmni &quot;ushlab&quot; olish uchun handler<\/span><\/span>\n<span class=\"line\"><span style=\"color: #DCDCAA\">@dp.message_handler<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">content_types<\/span><span style=\"color: #D4D4D4\">=[<\/span><span style=\"color: #CE9178\">&quot;photo&quot;<\/span><span style=\"color: #D4D4D4\">])<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">async<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">def<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">down_photo<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">message<\/span><span style=\"color: #D4D4D4\">: types.Message):<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #6A9955\"># Bot ishga tushirilgan diroktoriyadagi images nomli papkaga rasmni yuklaydi.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #C586C0\">await<\/span><span style=\"color: #D4D4D4\"> message.photo[-<\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">].download()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #C586C0\">await<\/span><span style=\"color: #D4D4D4\"> message.reply(<\/span><span style=\"color: #CE9178\">&quot;\u2705 Rasm muvaffaqiyatli yuklandi!&quot;<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span><\/code><\/pre><span style=\"display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#1e1e1e;color:#c7c7c7;font-size:12px;line-height:1;position:relative\">Python<\/span><\/div>\n\n\n\n<blockquote class=\"wp-block-quote has-medium-font-size is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><\/p>\n<cite>E&#8217;tibor bergan bo&#8217;lsangiz biz rasmni yuklashda <code>message.photo[-1]<\/code> qildik. Buning sababi foydalanuvchi botga rasm yuborganida Telegram bizga bitta <code>photo<\/code> obyektida foydalanuvchi jo&#8217;natgan rasmnining har-xil sifatdagisini yuboradi, eng oxirgisi eng sifatlisi hisoblanadi, shuning uchun biz eng oxirgi elementni, yani eng sifatli rasmning <code>file_id<\/code>sini <code>[-1]<\/code> orqali olamiz va yuklaymiz.<\/cite><\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Keyingi qism: <strong><a href=\"https:\/\/texnokun.uz\/?p=5353\">Tugmalar bilan ishlash(2-dars)<\/a><\/strong>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ushbu bo&#8217;limda biz siz bilan Telegram bot tuzish uchun mo&#8217;ljallangan aiogram framework&#8217;ida xabarlar bilan ishlashni o&#8217;rganamiz!<\/p>\n","protected":false},"author":12,"featured_media":5308,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_mi_skip_tracking":false,"footnotes":""},"categories":[14],"tags":[103,104],"class_list":["post-5340","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dasturlash","tag-aiogram","tag-telegram-bot"],"_links":{"self":[{"href":"https:\/\/texnokun.uz\/index.php?rest_route=\/wp\/v2\/posts\/5340","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/texnokun.uz\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/texnokun.uz\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/texnokun.uz\/index.php?rest_route=\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/texnokun.uz\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5340"}],"version-history":[{"count":19,"href":"https:\/\/texnokun.uz\/index.php?rest_route=\/wp\/v2\/posts\/5340\/revisions"}],"predecessor-version":[{"id":5731,"href":"https:\/\/texnokun.uz\/index.php?rest_route=\/wp\/v2\/posts\/5340\/revisions\/5731"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/texnokun.uz\/index.php?rest_route=\/wp\/v2\/media\/5308"}],"wp:attachment":[{"href":"https:\/\/texnokun.uz\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5340"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/texnokun.uz\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5340"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/texnokun.uz\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5340"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}