]>
git.rmz.io Git - dotfiles.git/blob - bin/monzo.py
3 from datetime
import datetime
10 class UnknownAccountError(Exception):
13 def get_account(data
):
14 account_id
= data
["transactions"][0]["account_id"]
16 return "Accounts:Monzo"
17 elif account_id
== "":
18 return "Accounts:Joint Account"
20 raise UnknownAccountError(account_id
)
22 if __name__
== "__main__":
23 with open(sys
.argv
[1], 'r') if len(sys
.argv
) > 1 else sys
.stdin
as fp
:
26 if outformat
== "qif":
28 print("NCurrent {}".format(get_account(data
)))
33 for t
in data
.get("transactions"):
34 if t
.get("decline_reason", ""):
38 date
= datetime
.strptime(t
["created"], "%Y-%m-%dT%H:%M:%S.%fZ")
40 date
= datetime
.strptime(t
["created"], "%Y-%m-%dT%H:%M:%SZ")
41 amount
= t
["amount"] / 100
42 if "name" in t
.get("counterparty", {}):
43 payee
= t
["counterparty"]["name"]
44 elif t
["merchant"] is None:
45 payee
= t
["description"]
47 payee
= t
["merchant"]["name"]
48 memo
= t
["description"]
49 memo
+= "\n{local_amount} {local_currency}".format(**t
)
51 if outformat
== "csv":
52 print('{date:%Y-%m-%d},{amount},"{payee}","{description}","{notes}"'.format(date
=date
,
56 elif outformat
== "qif":
57 print("D{:%Y-%m-%d}".format(date
))
58 print("T{}".format(amount
))
59 print("P{}".format(payee
))
60 print("M{}".format(memo
))
61 print("#{}".format(t
['id']))