Программа для ведения домашних расходов. Используется телеграм бот, гугл таблица и гугл скрипт.
Пользователь пишет в чат боту текст (например: продукты 350), который переносится в таблицу на 2 листа. На первом листе формируется общий поток входящей информации (дата, отправитель, текст), а втором листе происходит сортировка текста по колонкам (категориям расходов). После того как операции выполнились - отправляется обратно в чат эмодзи.
У бота есть команды:
- /report - спрашивает дополнительно "За какой период сформировать отчёт?" и выдаёт в чат сумму расходов по категориям за месяц или на текущий момент с начала месяца;
- /category - выдаёт в чат список ключевых слов по категорям, которые помогают скрипту сортировать входящий текст
Если входящий текст будет уникальным и под него не предусмотрена категория, то сумма расхода будет размещена в "прочее". Если входящий текст не содерщит цифр (сумма расхода), то вернется эмодзи обратно, а данные не будут обрадатываться и записываться в таблицу.
База категорий расходов состоит из двух частей для вывода в чат и предотвращения ошибок по количеству символов.
Когда данные сортируются, то выполняется проверка на последний день месяца. Если получается последний день, то скрипт делает новую строку желтого цвета (итоговую) и вычисляет сумму столбцов, а потом записывает в ячейки.
В таблице есть страница "Статистика" в неё данные копируем в ручном режиме.
На данный момент написан скрипт по приёмке фотографий (чеков) и загрузке их в таблицу в странице "Чеки". Но как показала практика - телеграмм удаляет фотографии с своих серверов и полученные ссылки потом не актуальны. Разработка в этом направления остановилась.
Также пытался уставить проверку пользователя. Сначала создал базу пользователей и потом проверял по ней отправителя прежде чем обрабатывать информацию. Возникали проблемы с условиями проверки массивов. Позже оказалось проблемным обрабатывать вызовы кнопок из чата с ботом. Когда сигнал идет с командой - одни ключи, а без команды другие. Получалось много ошибок, поэтому разработка в этом направлении остановилась.