This is a simple Telegram bot with interface to Firefly III to process and store simple transactions.

Overview

Firefly Telegram Bot

Fireflies are free, so beautiful. (Les lucioles sont libres, donc belles.)
― Charles de Leusse, Les Contes de la nuit

This is a simple Telegram bot with interface to Firefly III to process and store simple transactions (e.g. withdraw, deposit, transfer).

sample-transaction

This bot uses natural language processing (NLP).

The public bot can be accessed in telegram @FinanceFlyBot. I advised to create your own bot as the DB for this is not encrypted and for testing purposes only. The bot is hosted in Azure App Services free tier.

Docker 🐋

Docker images can be found in this link:

Deployment

The bot can be easily deployed through containerization (e.g. docker).
To run the docker image:

docker run \
    -e TG_BOT_TOKEN=
   
     \
    -e TG_MASTER_ID=
    
      \
    -e FF_BASE_PATH=
     
       \
    -e FF_PAT=
      
        \
    -e APP_SHARED_STORAGE_PATH=/var/lib/ff-bot-db \
    -e WIT_ACCESS_TOKEN=
       
         \ -v $PWD:/var/lib/ff-bot-db \ 0x61c88647/firefly-tg-bot-rs:latest 
       
      
     
    
   

The wit.ai Bot

The bot can be found here. Use your facebook login to access the bot, its open and can be accessed freely. All private data will not be stored in the utterance list. You can export it to create your own bot.

Environment Variables

This are the relevant environment variables needed to be set.

TG_BOT_TOKEN - The telegram bot token which can be found in BotFather after creating a new bot.
TG_MASTER_ID - The responsible person on where to report error (can be a group, channel, or user).
FF_BASE_PATH - The firefly III instance that this bot will connect to.
FF_PAT - This is your firefly III personal access token.
APP_SHARED_STORAGE_PATH - The path where the local account storage will be stored (e.g. /var/lib/ff-bot-db).
WIT_ACCESS_TOKEN - This is your wit.ai access token.

What's in the roadmap?

  • Create state machine to reduce code duplication.
  • Make bot accept more words.
  • Get info about latest 10 transaction created.
  • Do reconcilation and support tags and categories.

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Related Projects

References

You might also like...
Telegram bot for searching in Arch User Repository ( AUR ); Implemented using rust.

AurSearchBot A Telegram Inline Search Bot Written in Rust Introduction Telegram Bot that can search AUR ( Arch User Repository ) in inline mode. This

Autogenerated wrapper for the Telegram Bot API written in Rust.
Autogenerated wrapper for the Telegram Bot API written in Rust.

An Elegant Rust Client for Telegram Bot API crates.io • docs.rs Table of contents Introduction Key Features Installation Getting Started Documentation

A Telegram bot to watch animes

AmimeWatch A Telegram bot to watch animes. Re-written version of AmimeWatch in Rust. Preparing Configuration Create a file named config.toml and fill

An out-of-box ChatGPT bot for Telegram.
An out-of-box ChatGPT bot for Telegram.

TeleGPT API Docs | Releases | Twitter An out-of-box ChatGPT bot for Telegram. TeleGPT is a Telegram bot based on teloxide framework and async_openai.

An out-of-box ChatGPT bot for Telegram.
An out-of-box ChatGPT bot for Telegram.

TeleGPT API Docs | Releases | Twitter An out-of-box ChatGPT bot for Telegram. TeleGPT is a Telegram bot based on teloxide framework and async_openai.

A Telegram bot written in Rust.

Knight-Bot Table of Contents About Support chat Installation Setting up your environment Build manually Commands Commands on TODO list Find this bot A

A Telegram ChatGPT bot
A Telegram ChatGPT bot

A customizable Telegram bot with a ChatGPT (or GPT4, bring your own API key) backend. You can configure the bot’s context and prompt in template settings.

secmem-proc is a crate designed to harden a process against low-privileged attackers running on the same system trying to obtain secret memory contents of the current process.

secmem-proc is a crate designed to harden a process against low-privileged attackers running on the same system trying to obtain secret memory contents of the current process. More specifically, the crate disables core dumps and tries to disable tracing on unix-like OSes.

Matrix bot inspired by Shirt Bot.

matrix-openai-bot Matrix bot inspired by Shirt Bot. Usage Run the bot after building it or grabbing the latest release $ matrix-openai-bot Edit the ge

Owner
How long is forever?
null
Telegram bot help you to run Rust code in Telegram via Rust playground

RPG_BOT (Rust Playground Bot) Telegram bot help you to run Rust code in Telegram via Rust playground Bot interface The bot supports 3 straightforward

TheAwiteb 8 Dec 6, 2022
A small monitoring process that checks if kstars is active, if not it sends a request to notify a user via telegram that it crashed

Astro monitor A small monitoring process that checks if kstars is active, if not it sends a request to notify a user via telegram that it crashed Inst

Mattia Procopio 2 Jan 10, 2022
A Simple, But amazing telegram bot, Made using the Rust language!

Telegram bot in Rust A fun Telegram bot made using Rust language.

Deep Alchemy 2 Dec 21, 2021
A simple Telegram bot that eats anonymous channel messages, written in Rust.

tgbot-nochanmsg By Asuna Right Control When creating your bot from botfather, it's not bad to disable privacy mode, because it needs to access the mes

h3a.moe 2 Aug 5, 2022
A simple telegram bot to get the tunnel info from ngrok.

Telegram Ngrok Bot A simple bot to fetch the running tunnels from ngrok api. Prerequisits Ngrok agent should be running. Configuration Ngrok config ve

Ishan Dongol 8 Feb 22, 2024
Uradhura is a telegram bot that fetches information and media from reddit

Pathetic little Telegram bot that fetches information from Reddit posts(with gif, image(post with single image) and video)

The Penguins Org 3 May 28, 2022
This is a Telegram bot I'm working on in my free time to learn Rust.

Maldness Bot This is a Telegram bot I'm working on in my free time to learn Rust. Building docker build -t . should be enough.

Sergey Kislyakov 10 May 13, 2022
Telegram Bot Template with Cloudflare Workers

cf-workers-telegram-bot-template Usage This template starts you off with a src/lib.rs file, acting as an entrypoint for requests hitting your Worker.

Lee Taehoon 2 Sep 23, 2021
Rust telegram bot library for many runtimes

Telbot Telbot provides telegram bot types and api wrappers. Specifically, telbot now supports: telbot-types: basic telegram types / requests / respons

kiwiyou 17 Dec 3, 2022
Telegram bot that zhuzh Twitter content

@twt_2_tg_bot Telegram bot that zhuzh shared Twitter content Text converter Some tweets may contain line breaks or even dialogs. Such tweets are barel

Vladimir 6 Nov 6, 2022