43 lines
2.2 KiB
Markdown
43 lines
2.2 KiB
Markdown
BunyMuny
|
|
===
|
|
[![Build Status](https://drone.bune.city/api/badges/lynnesbian/BunyMuny/status.svg)](https://drone.bune.city/lynnesbian/BunyMuny)
|
|
|
|
BunyMuny parses the CSV output of various bank statement listings and converts it to something more human readable with nice visualisations.
|
|
|
|
## Building
|
|
```bash
|
|
git clone https://git.bune.city/lynnesbian/BunyMuny
|
|
cd BunyMuny
|
|
dotnet build
|
|
```
|
|
|
|
## Supported banks
|
|
- ME Bank ([guide](https://git.bune.city/lynnesbian/BunyMuny/raw/branch/master/guide/me.png))
|
|
- NAB
|
|
- CommBank
|
|
|
|
## The rules file
|
|
By default, BunyMuny checks for rules in `rules.csv` in the current directory.
|
|
This is a Comma Separated Values file, which can be edited either by hand, or with a program like [Libreoffice Calc](https://www.libreoffice.org/discover/calc/) or [Microsoft Office Excel](https://www.microsoft.com/en-au/microsoft-365/excel).
|
|
An example rules file might look like this:
|
|
```csv
|
|
Match,Value,Category,Description,CaseSensitive
|
|
Start,Purchase Cash Converters,Personal,Cashies,true
|
|
Exact,Purchase TRANSLINK BRISBANE,Transport,Go Card,true
|
|
```
|
|
This means that:
|
|
- Any statement that starts with "Purchase Cash Converters" (case sensitive) will be assigned the category "Personal", and the description "Cashies".
|
|
- Any statement with the *exact* description "Purchase TRANSLINK BRISBANE" (case sensitive) will be assigned the category "Transport", and the description "Go Card".
|
|
- Any statement that doesn't match these two rules will be categorised as "Other", and will use the description provided by the bank file.
|
|
|
|
### Detailed explanation
|
|
- `Match` specifies the type of matching to perform. It can be any of the following:
|
|
- "Start": Match the start of the description.
|
|
- "End": Match the end of the description.
|
|
- "Contains": Match anywhere in the description.
|
|
- "Exact": Only match if the bank statement's description is exactly equal to the provided value.
|
|
- "Regex": Match with [regular expressions](https://en.wikipedia.org/wiki/Regular_expression).
|
|
- `Value` specifies the value to match against.
|
|
- `Category` is the category that the statement should be filed under.
|
|
- `Description` is a short description to distinguish the particular merchant.
|
|
- `CaseSensitive` specifies whether or not the match should be case sensitive.
|