Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (14)

Лучшие ответы пользователя

Все ответы (7)
  • Можна ли в aiogram реализовать следующую функцию?

    @Tim-developer
    Извиняюсь, что так долго. Пишите, ecли будут вопросы

    from aiogram import Dispatcher, Bot, executor
    from aiogram.types import *
    
    
    bot = Bot("TOKEN")
    dp = Dispatcher(bot)
    
    
    @dp.message_handler(text="Кнопка1")
    async def main(message: Message):
        keyboard = InlineKeyboardMarkup(row_width=1)
        btn1 = InlineKeyboardButton(text="Инлайн кнопка1", callback_data="btn1")
        btn2 = InlineKeyboardButton(text="Инлайн кнопка2", callback_data="btn2")
        btn3 = InlineKeyboardButton(text="Инлайн кнопка3", callback_data="btn3")
        keyboard.add(btn1, btn2, btn3)
        await message.answer("Инлайновые кнопки Кнопки1", reply_markup=keyboard)
    
    
    @dp.callback_query_handler(text="btn1")
    async def btn1(call: CallbackQuery):
        photo = open("img.png", "rb")
        msg = await call.message.answer_photo(photo=photo, caption="Прикреплённый к фото текст кнопки 1")
        keyboard = call.message.reply_markup
        btn1 = InlineKeyboardButton(text="Инлайн кнопка1 (Свернуть)", callback_data=f"{msg.message_id}_btn1")
        keyboard["inline_keyboard"][0][0] = btn1
        await call.message.edit_reply_markup(keyboard)
    
    
    @dp.callback_query_handler(text="btn2")
    async def btn2(call: CallbackQuery):
        photo = open("img.png", "rb")
        msg = await call.message.answer_photo(photo=photo, caption="Прикреплённый к фото текст кнопки 2")
        keyboard = call.message.reply_markup
        btn2 = InlineKeyboardButton(text="Инлайн кнопка2 (Свернуть)", callback_data=f"{msg.message_id}_btn2")
        keyboard["inline_keyboard"][1][0] = btn2
        await call.message.edit_reply_markup(keyboard)
    
    
    @dp.callback_query_handler(text="btn3")
    async def btn3(call: CallbackQuery):
        photo = open("img.png", "rb")
        msg = await call.message.answer_photo(photo=photo, caption="Прикреплённый к фото текст кнопки 3")
        keyboard = call.message.reply_markup
        btn3 = InlineKeyboardButton(text="Инлайн кнопка2 (Свернуть)", callback_data=f"{msg.message_id}_btn3")
        keyboard["inline_keyboard"][2][0] = btn3
        await call.message.edit_reply_markup(keyboard)
    
    
    @dp.callback_query_handler(regexp=r"[\d]+_btn1")
    async def btn1_pthotodel(call: CallbackQuery):
        await bot.delete_message(call.message.chat.id, int(call.data.split("_")[0]))
        keyboard = call.message.reply_markup
        btn1 = InlineKeyboardButton(text="Инлайн кнопка1", callback_data="btn1")
        keyboard["inline_keyboard"][0][0] = btn1
        await call.message.edit_reply_markup(keyboard)
    
    
    @dp.callback_query_handler(regexp=r"[\d]+_btn2")
    async def btn1_pthotodel(call: CallbackQuery):
        await bot.delete_message(call.message.chat.id, int(call.data.split("_")[0]))
        keyboard = call.message.reply_markup
        btn2 = InlineKeyboardButton(text="Инлайн кнопка2", callback_data="btn2")
        keyboard["inline_keyboard"][1][0] = btn2
        await call.message.edit_reply_markup(keyboard)
    
    
    @dp.callback_query_handler(regexp=r"[\d]+_btn3")
    async def btn1_pthotodel(call: CallbackQuery):
        await bot.delete_message(call.message.chat.id, int(call.data.split("_")[0]))
        keyboard = call.message.reply_markup
        btn3 = InlineKeyboardButton(text="Инлайн кнопка3", callback_data="btn3")
        keyboard["inline_keyboard"][2][0] = btn3
        await call.message.edit_reply_markup(keyboard)
    
    
    executor.start_polling(dp)
    Ответ написан
    3 комментария
  • Как отправить аудиофайл в боте телеграм Python?

    @Tim-developer
    from aiogram.types import FSInputFile
    
    
    @dp.message(Command('song'))
    async def send_songs(message):
        await message.answer("Hello!")
        await message.answer("World!")
        audio = FSInputFile('audio.mp3') # используй FSInputFile вместо open
        await bot.send_audio(message.chat.id, audio)
    Ответ написан
    Комментировать