from telethon import TelegramClient, events, Button import aiohttp import html import random client = TelegramClient("bot", , "") client.start() @client.on(events.NewMessage(pattern=r"^/start$")) async def start(event): await event.reply("Hi I am a trivia bot. To start a new question send /new") trivia_url = "https://opentdb.com/api.php?amount=1" @client.on(events.NewMessage(pattern=r"^/new$")) async def new(event): async with aiohttp.ClientSession() as session: async with session.get(trivia_url) as resp: results = await resp.json() message = "category : " + results["results"][0]["category"] + "\ndifficulty : " + \ results["results"][0]["difficulty"] + "\nquestion : " + \ results["results"][0]["question"] buttons = [] buttons.append(Button.inline(results["results"][0]["correct_answer"], b"correct")) for incorrect_answer in results["results"][0]["incorrect_answers"]: buttons.append(Button.inline(incorrect_answer, data=b"incorrect")) random.shuffle(buttons) buttons = [buttons[i:i + 2] for i in range(0, len(buttons), 2)] await event.reply(html.unescape(message), buttons=buttons) @client.on(events.CallbackQuery) async def callback(event): print(event) data = event.data if data == b"correct": await event.answer("Correct") print("Correct") elif data == b"incorrect": await event.answer("Incorrect") print("Incorrect") await event.reply("Thank you for choosing") client.run_until_disconnected()