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.