Телеграм-бот на python ищет в гугл таблице сообщение от пользователя и выдает обратно всю строку
Всем привет! Пишу телеграм-бота (на python, использую pyTelegrambotapi) и никак не могу придумать часть кода. Задача: пользователь вводит название лекарства, происходит поиск в гугл таблице этого лекарства, и в ответ бот присылает целую строку. Пример: -сообщение от пользователя: анальгин; -ответ от бота: Наименование: анальгин Годен до: 01.01.2000 Количество: 2
На данный момент код такой:
import telebot
import gspread
bot_token = 'Токен моего бота'
googlesheet_id = 'ID гугл таблицы'
bot = telebot.TeleBot(bot_token)
gc = gspread.service_account(filename='Наименование json файла')
sh = gc.open('Название моей таблицы')
wks = sh.worksheet('sheet1')
@bot.message_handler(commands=['start', 'help'])
def send_welcome(message):
bot.reply_to(message,
"Привет, я буду записывать ваши лекарства в таблицу. Введите лекарство через дефис в виде НАИМЕНОВАНИЕ-ЗАБОЛЕВАНИЕ-СРОК ГОДНОСТИ-КОЛИЧЕСТВО:")
@bot.message_handler(content_types=["text"])
def repeat_all_messages(message):
try:
title, illness, expire, quantity = message.text.split("-", 3)
text_message = f'В таблицу добавлена запись'
bot.send_message(message.chat.id, text_message)
sh = gc.open('название моей таблицы')
wks.append_row([title, illness, expire, quantity])
except:
bot.send_message(message.chat.id, 'ОШИБКА! Неправильный формат данных!')
bot.send_message(message.chat.id, 'Введите лекарство через дефис в виде НАИМЕНОВАНИЕ-ЗАБОЛЕВАНИЕ-СРОК ГОДНОСТИ-КОЛИЧЕСТВО:')
if __name__ == '__main__':
bot.polling(none_stop=True)
Ответы (1 шт):
Автор решения: ZxNuClear
→ Ссылка
С библиотекой telebot не работал, но могу показать пример для aiogram:
@dp.message_handler()
async def search(message: types.Message):
try:
search_cell = wks.find(message.text)
list = wks.row_values(search_cell.row)
await bot.send_message(message.from_user.id, "Наименование: %s\nГоден до: %s\nКоличество: %s" % (list[0], list[1], list[2]))
except:
await bot.send_message(message.from_user.id, f'В таблице {message.text} не найдено!')
так выглядит Лист в google таблице:
а это результат вывода в Telegram:

