Создаю телеграм бота, который хранит в себе закинутые в него документы. В БД я передаю и храню file_name и file_id документа.
Не разберусь как по названию документов реализовать сам вывод файла.
class DataInput(StatesGroup):
r = State()
@dp.message_handler(commands=['get_file_db'])
async def input_name(message: types.Message):
await bot.send_message(message.from_user.id, 'Введите название файла')
await DataInput.r.set()
@dp.message_handler(state=DataInput.r)
async def find_file(message: types.Message, state: FSMContext):
user_id = message.from_user.id
document = message.document.file_id
file = await bot.get_file(document)
r = message.text
all_files = session.query(Documents).all()
for row in all_files:
print(row.file_name)
if row.file_name == r:
await message.answer(row.file_name)
await bot.send_chat_action(user_id, ChatActions.UPLOAD_DOCUMENT)
await asyncio.sleep(1)
await bot.send_media_group(user_id, file, caption='Этот файл специально для тебя!', parse_mode='Markdown')
await state.finish()