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
def read_feed_item(i):
try:
+ if i.get("status", "") == "DECLINED":
+ return
date = datetime.strptime(i["transactionTime"], "%Y-%m-%dT%H:%M:%S.%fZ")
amount = i["amount"]["minorUnits"] / 100
if i["direction"] == "OUT":