X-Git-Url: https://git.rmz.io/dotfiles.git/blobdiff_plain/80fa553cc77084a9e31f7c1ce3154afb817c1262..fdd63454b51a35418ec23d3489cf20ae66a2299d:/bin/monzo.py diff --git a/bin/monzo.py b/bin/monzo.py index e54aae5..1335007 100755 --- a/bin/monzo.py +++ b/bin/monzo.py @@ -7,15 +7,32 @@ import sys outformat = "qif" # outformat = "csv" + +class UnknownAccountError(Exception): + pass + + +def get_account(data): + account_id = data["transactions"][0]["account_id"] + if account_id == "": + return "Accounts:Monzo" + elif account_id == "": + return "Accounts:Joint Account" + + raise UnknownAccountError(account_id) + + if __name__ == "__main__": - if outformat == "qif": - print("!Account") - print("NCurrent Accounts:Monzo") - print("^") - print("!Type:Bank") - cnt = 1 with open(sys.argv[1], 'r') if len(sys.argv) > 1 else sys.stdin as fp: data = json.load(fp) + + if outformat == "qif": + print("!Account") + print("NCurrent {}".format(get_account(data))) + print("^") + print("!Type:Bank") + + cnt = 1 for t in data.get("transactions"): if t.get("decline_reason", ""): continue @@ -32,8 +49,15 @@ if __name__ == "__main__": else: payee = t["merchant"]["name"] memo = t["description"] + try: + memo = "Tab: {}".format(t["tab"]["name"]) + except KeyError: + pass + memo += "\n{local_amount} {local_currency}".format(**t) notes = t["notes"] + if notes: + memo += "\nNotes: {notes}".format(**t) if outformat == "csv": print('{date:%Y-%m-%d},{amount},"{payee}","{description}","{notes}"'.format(date=date, payee=payee,