[Open source, Python, Финансы в IT, Лайфхаки для гиков] Python-скрипт для импорта банковских расходов в Splitwise

Автор Сообщение
news_bot ®

Стаж: 6 лет 9 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
21-Июн-2021 20:38

Если для вас важен вопрос ведения личного или семейного бюджета, или если вы часто ездите в совместные поездки с друзьями, то вы либо уже слышали про Splitwise,либо вам может быть полезно про него услышать. Splitwise - это довольно удобный сайт + приложения для iOS и Андроид, которые позволяют вести учёт совместных расходов. Имеется также полезная функция минимизации количества взаиморасчётов (пример: если все должны Саше по 100 рублей, Петя должен саше еще +20 рублей, а Вася должен Пете 120 рублей, то в итоге Вася отдаст сразу 220 рублей Саше, и все рады). Впервые я пользовался Splitwise пару лет назад в поездке с друзьями в Италию, и с тех пор мы довольно часто используем его для разных целей - покупки подарков, совместных поездок на пикники, и т.д.
Пользоваться Splitwise довольно просто - создаёте группу, приглашаете в неё друзей, каждый добавляет туда сколько потратил, и в какой пропорции эти траты нужно разделить (по дефолту - поровну). Вы можете вести расчёт всех ваших взаимных расходов в одной группе, а можете создавать отдельную группу для каждой поездки/подарка/ и тд.
Если вы, допустим, хотите вести в Splitwise семейный бюджет - записывать туда общие расходы на аренду, покупки, ЖКХ, веб версия также показывает диаграмму ваших затрат по категориям (правда эти категории для каждого платежа еще нужно назначить). В приложении эта функция платная, однако в веб версии, которую я чаще всего использую, диаграммы можно смотреть и без подписки. В общем, основной юскейс для меня - это именно ведение бюджета, поэтому когда мне очередной раз в напоминают, что пора бы заполнить сплитвайз, обычно я, тяжело вздыхая, открывал приложение своего банка, и начинал методично ручками перебивать туда все траты. Если вам важна история платежей и вы хотите смотреть на диаграммки, то кроме суммы и разбивки вам придётся заполнить: дату, выбрать из меню категорию платежа, написать более-менее понятное название, по которому можно будет адекватно идентифицировать платёж.
Так выглядит форма ввода в веб-версии.В общем, в определенный момент, когда я откладывал это дело целый месяц, я понял, что вносить пару десятков платежей ручками для меня просто неприемлемо, так что я решил наговнокодить что-нибудь для этого дела на питончике. Так за пару выходных появился мой монстр Франкенштейна под названием splitwise_importer (ссылка на гитхаб).splitwise_importerSplitwise_importer - программа с TUI интерфейсом (форк библиотеки npyscreen, ее использует например Telegram TUI), написанa на Python, работает из консоли, и использует Python-API сплитвайза (конкретно этот форк, потому что мэйнтейнер не мерджит полезный PR).
Программа максимально костыльно-доморощенная, так что user experience может быть сильно на любителя, впрочем, главная задача спасения от монотонных действий - выполнена. Протестировано на MacOS и Ubuntu 20.04 WSL с Python 3.7.1+.Чтобы начать использовать splitwise_importer нужно:
  • зарегистрироваться в Splitwise, получить ключи для приложения и вставить их в конфиг
  • скачать выгрузку операций из интернет банка в формате CSV.
  • в конфиге заполнить секцию с расположениями полей в CSV (колонка суммы, колонка даты, и т.д.). В дефолтном конфиге у меня заполнены колонки для Тинькофф-банка, так что можете сразу пользоваться.
  • (опционально) во втором конфиге прописать соответствие категорий платежа из выгрузки вашего банка категориям сплитвайза (они все есть в файле). Если лень, то все траты будут вноситься по дефолту как General expenses.
Запускаем в консоли скрипт importer.py, открывается диалог выбора файла. По идее, если вызывать скрипт сразу из нужной директории, то выбор файла стартует в ней же, при этом ничего не ломается, так что можно создать alias для запуска скрипта. Подтверждаем выбор файла.
Окно выбора операций. Отображается тестовый CSV с повторяющейся одной и той же строчкой.Появится основное окно выбора операций, стрелочками двигаем курсор, пробелом отмечаем операции к отправке. Жмём "ОК", в окошке 'log' наблюдаем результат отправки каждой операции (либо ОК, либо ошибка, которую вернул сервер Splitwise). Вот и всё. Надеюсь кому-то ещё программа пригодится. Подробная инструкция в репозитории.
===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_open_source, #_python, #_finansy_v_it (Финансы в IT), #_lajfhaki_dlja_gikov (Лайфхаки для гиков), #_splitwise, #_kontrol_rashodov (контроль расходов), #_finansy (финансы), #_python, #_tui, #_npyscreen, #_open_source, #_python, #_finansy_v_it (
Финансы в IT
)
, #_lajfhaki_dlja_gikov (
Лайфхаки для гиков
)
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 22-Ноя 13:47
Часовой пояс: UTC + 5