]> git.rmz.io Git - dotfiles.git/blobdiff - bin/monzo.py
bin: add cmk
[dotfiles.git] / bin / monzo.py
index e54aae5bce487a124b76309cfcf1a471ca405d14..6980487aeef81e218ceb584da7f64cafc98f8326 100755 (executable)
@@ -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,6 +49,11 @@ 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 outformat == "csv":