# 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 (
[email protected])", # 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())