October 27
Aiogram 3.22 + Wikipedia API
Aiogram 3.22 + Wikipedia API – Telegram bot yaratish (o‘zbek tilida)
1. Maqsad
- Telegram bot yaratamiz.
- Foydalanuvchi matn yuborsa, o‘zbekcha Wikipediadan qisqa ma’lumot (summary) olib, javob qaytaradi.
- Barcha kod Aiogram 3.22 asosida, asinxron usulda ishlaydi.
2. Kerakli kutubxonalar
pip install aiogram==3.22.0 wikipedia-api
3. Bot yaratish (BotFather)
- Telegramda @BotFather ga yozing.
- /newbot → bot nomini va username kiriting.
- Token olasiz → 7627050170:AAF2w-NYia_7u1GaTD6lW5wSLwEx4C9Tepc (masalan). Muhim: Tokenni hech kimga ko‘rsatmang!
4. Kod (to‘liq, izohli)
# 1. Importlar
import asyncio
from aiogram import Bot, Dispatcher, F
from aiogram.types import Message
from wikipediaapi import Wikipedia
# 2. Bot va sozlamalar
TOKEN = "7627050170:AAF2w-NYia_7u1GaTD6lW5wSLwEx4C9Tepc" # <-- O'z tokeningiz
bot = Bot(token=TOKEN)
dp = Dispatcher()
# Wikipedia (o'zbek tili)
wiki = Wikipedia(
user_agent="WikiBot (siz@email.com)", # O'z emailingizni yozing!
language="uz"
)
# 3. Handler: har qanday matnli xabar
@dp.message(F.text)
async def wiki_handler(message: Message):
query = message.text.strip() # foydalanuvchi so'zi
page = wiki.page(query) # Wikipedia sahifasini izlash
if page.exists(): # sahifa topilsa
# 200 belgigacha qisqartiramiz
summary = page.summary[:200] + "..." if len(page.summary) > 200 else page.summary
# Javob yuborish (HTML format)
await message.answer(
f"<b>{page.title}</b>\n\n{summary}\n\n{page.fullurl}",
parse_mode="HTML"
)
else: # sahifa topilmasa
await message.answer(f"'{query}' topilmadi. Boshqa so'z kiriting.")
# 4. Botni ishga tushirish
async def main():
print("Bot ishga tushdi...")
await dp.start_polling(bot)
if __name__ == "__main__":
asyncio.run(main())5. Kodni qator-qator tushuntirish (dars uchun)
Bot bir vaqtda ko‘p xabarlarni qayta ishlay oladi
Botni boshqarish uchun asosiy vositalar
from aiogram.types import Message
from wikipediaapi import Wikipedia
Dekorator – faqat matnli xabarlarga javob ber
async def wiki_handler(message: Message):
Sahifa bor yoki yo‘qligini tekshirish
Asinxron dasturni ishga tushirish
Python tomonidan talab qilinadi
6. Botni sinash
python wiki_bot.py
7. Qo‘shimcha vazifalar (uyga)
Botdan foydalanish qo‘llanmasi