Как отправить файл raspisanie.jpg, который у меня уже лежит на одном с тг-ботом удаленном сервере на нажатие инлайн-кнопки button_shift2? Путь к этому файлу указан.
import asyncio
from aiogram import Bot, Dispatcher, types, F
from aiogram.filters.command import Command
from aiogram.filters import CommandStart
from aiogram.types import (InlineKeyboardButton, InlineKeyboardMarkup, Message, CallbackQuery)
from config import Config, load_config
import sys
from aiogram.types import FSInputFile
config: Config = load_config()
bot_token: str = config.tg_bot.token
# Создаем объекты бота
bot = Bot(bot_token)
dp = Dispatcher()
button_schedule = InlineKeyboardButton(
text='График работы',
callback_data='button_schedule_pressed'
)
button_contact = InlineKeyboardButton(
text='Контакт',
callback_data='button_contact_pressed'
)
button_docs = InlineKeyboardButton(
text='Документы',
callback_data='button_docs_pressed'
)
button_holidays = InlineKeyboardButton(
text='Отпуск',
callback_data='button_holidays_pressed'
)
button_study = InlineKeyboardButton(
text='Техучеба',
callback_data = 'button_study_pressed'
)
# Создаем объект основной инлайн-клавиатуры
keyboard_main = InlineKeyboardMarkup(
inline_keyboard=[[button_schedule],
[button_contact],
[button_docs],
[button_holidays],
[button_study]]
)
button_shift2 = InlineKeyboardButton(
text='Смена №2',
callback_data='button_shift2_pressed'
)
button_dinner = InlineKeyboardButton(
text='Столовая',
callback_data='button_dinner_pressed'
)
button_sim = InlineKeyboardButton(
text='Тренажер',
callback_data='button_sim_pressed'
)
# Создаем объект инлайн-клавиатуры "График работы"
keyboard_schedule = InlineKeyboardMarkup(
inline_keyboard=[[button_shift2],
[button_dinner],
[button_sim]]
)
# Этот хэндлер будет срабатывать на команду "/start" и отправлять в чат главную клавиатуру
@dp.message(CommandStart())
async def process_start_command(message: Message):
await message.answer(
text='Здравствуйте! Что желаете найти?',
reply_markup=keyboard_main
)
# Этот хэндлер будет срабатывать на кнопку "Расписание" и отправлять в чат клавиатуру с расписаниями
@dp.callback_query(F.data == 'button_schedule_pressed')
async def process_button_schedule_press(callback: CallbackQuery):
if callback.message.text != 'Чего именно?':
await callback.message.edit_text(
text='Чего именно?',
reply_markup=keyboard_schedule
)
await callback.answer()
image_raspisanie = FSInputFile('~/tg_bot_orvd/raspisanie.jpg')
@dp.callback_query(F.data == 'button_shift2_pressed')
async def process_button_shift2_press(callback: CallbackQuery):
if callback.message.text != 'График работы смены №2':
await callback.message.reply_document(
open('~/tg_bot_orvd/files/raspisanie.jpg', 'rb'),
caption='График работы смены №2',
)
@dp.callback_query(F.data == 'button_dinner_pressed')
async def process_button_dinner_press(callback: CallbackQuery):
if callback.message.text != 'График работы столовой:\n\n 09.30-13.30\n 16.00-18.00':
await callback.message.edit_text(
text='График работы столовой:\n'
'09.30-13.30\n'
'16.00-18.00'
)
@dp.callback_query(F.data == 'button_sim_pressed')
async def process_button_sim_press(callback: CallbackQuery):
if callback.message.text != 'Тренировка персонала ОВД':
await callback.message.edit_text(
text='Тренировка персонала ОВД',
reply_markup=keyboard_schedule
)
await callback.answer()
# Запуск процесса поллинга новых апдейтов
if __name__ == "__main__":
dp.run_polling(bot)