All Projects → vjFaLk → firefly-bot

vjFaLk / firefly-bot

Licence: MIT License
Bot to quickly create transactions in Firefly III

Programming Languages

python
139335 projects - #7 most used programming language
Dockerfile
14818 projects

Projects that are alternatives of or similar to firefly-bot

F80
A Professional Telegram-Bot Based On valtman.name/telegram-cli
Stars: ✭ 36 (-26.53%)
Mutual labels:  telegram-bot
silverbox
Guide describing how to setup compact, silent and energy-efficient GNU/Linux home server
Stars: ✭ 42 (-14.29%)
Mutual labels:  firefly-iii
dictum
🤔 API to get access to the collection of the most inspiring expressions of mankind
Stars: ✭ 77 (+57.14%)
Mutual labels:  telegram-bot
AusweisBot
Telegram bot to generate self-authorizations for moving around during covid-19 pandemic in France
Stars: ✭ 13 (-73.47%)
Mutual labels:  telegram-bot
telegram-xkcd-password-generator
Readable Passwords Generator For Telegram (Bot API)
Stars: ✭ 26 (-46.94%)
Mutual labels:  telegram-bot
Bot-Telegram-BeMEAN
💣 Bot para o Telegram do grupo do Be MEAN
Stars: ✭ 76 (+55.1%)
Mutual labels:  telegram-bot
idea
Gestor de actividades en grupo
Stars: ✭ 16 (-67.35%)
Mutual labels:  telegram-bot
spbu4u
Telegram bot Timetable for SPbU students @Spbu4UBot | Телеграм бот Расписание для студентов СПбГУ
Stars: ✭ 20 (-59.18%)
Mutual labels:  telegram-bot
everyone-bot
Telegram bot to get everyone's attention in a group chat. Like @everyone in other messaging applications.
Stars: ✭ 52 (+6.12%)
Mutual labels:  telegram-bot
digitalocean-helper-bot
用 telegram bot 管理 Digital Ocean 账号
Stars: ✭ 24 (-51.02%)
Mutual labels:  telegram-bot
telegram-support-bot
A Telegram ticketing/supporting system.
Stars: ✭ 180 (+267.35%)
Mutual labels:  telegram-bot
yii2-telegram
Support chat for site based on Telegram bot
Stars: ✭ 49 (+0%)
Mutual labels:  telegram-bot
tinjecttelegram delphi
LMCODE
Stars: ✭ 37 (-24.49%)
Mutual labels:  telegram-bot
EPUB-to-PDF
Telegram bot EPUB to PDF converter
Stars: ✭ 25 (-48.98%)
Mutual labels:  telegram-bot
notion-help-bot
A Notion-backend Telegram bot, designed for Notion CN Community (https://t.me/Notionso).
Stars: ✭ 67 (+36.73%)
Mutual labels:  telegram-bot
pe4kin
Erlang wrapper for Telegram bot API https://core.telegram.org/bots
Stars: ✭ 47 (-4.08%)
Mutual labels:  telegram-bot
polaris.py
A multiplatform Python bot using plugins!
Stars: ✭ 19 (-61.22%)
Mutual labels:  telegram-bot
Click-Counter-Bot
A telegram bot module for how to count total clicks on button.
Stars: ✭ 23 (-53.06%)
Mutual labels:  telegram-bot
TelegaGraph
TelegaGraph. Print messages from telegram to thermal printer
Stars: ✭ 23 (-53.06%)
Mutual labels:  telegram-bot
pastebin-bot
Advanced functional Pastebin Telegram Bot made using better-pastebin and TelegrafJS. This bot will help you to create pastes (Texts) on Pastebin which is a text cloud.
Stars: ✭ 16 (-67.35%)
Mutual labels:  telegram-bot

Firefly Bot

A Telegram bot to create transactions in Firefly III

Setup

First you'll have to generate a Telegram Bot token through BotFather. Once you generate the token, keep it safe.

Docker (Recommended)

docker create \
  --name=firefly-bot \ 
  -e TELEGRAM_BOT_TOKEN=<your-bot-token> \
  -v </path/to/config>:/config \
  vjfalk1/firefly-telegram-bot

Manual

You'll need python 3.8 and pip installed

  • Clone the repository
  • Install dependencies by running pip install -r requirements.txt
  • Run export TELEGRAM_BOT_TOKEN=<your-bot-token>
  • Run python3 ./src/bot.py

Usage

Setup

  • Once the bot is up and running, initiate a chat with the bot. Send /start to initiate setup
    • /start can also be used to re-run the setup at a later time
  • You will first be asked for your Firefly URL. Enter the full URL including the protocol. Eg - https://firefly.host.com
    • Make sure not to include a trailing slash
  • Second, you will be asked for your User Token. You will have to generate one from the profile section in your Firefly instance, under OAuth.
  • Lastly, you will be asked for a default account, by default all transactions will use this account as the source account, however, you can override it per transaction

Creating a Transaction

All you need to do is send a message to the bot with the following format

Amount, Description, Category, Budget, Source account, Destination account

Only the first two values are needed. The rest are optional. The description value is used for destination account as well.

Examples

A simple one -

5, Starbucks

One with all the fields being used -

5, Mocha with an extra shot for Steve, Coffee, Food Budget, UCO Bank, Starbucks

You can skip specfic fields by leaving them empty (except the first two) -

5, Starbucks, , Food Budget, UCO Bank

You can also specify accounts by using their id instead of their name -

5, Mocha with an extra shot for Steve, Coffee, Food Budget, 5, 35


Development

  • Clone the repository
  • Install Poetry
  • Install dependencies by running poetry install
  • Run poetry shell to activate virtualenv
  • Start the bot by running python src/bot.py

Notes

Why Poetry AND requirements.txt? I don't want to use poetry inside Docker. It's unnecessary bloat and complexity. So I just generate a requirements.txt anytime I change deps using - poetry export -f requirements.txt > requirements.txt. It can then be used for Docker, or just anyone who wants to use this without having to install (and figure out) poetry.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].