#sqlite #monzo #applications #download #transaction #history #line

bin+lib monzo-cli

A rust 命令行应用程序,用于将 Monzo 交易历史记录下载到 SQLITE 数据库

1 个不稳定版本

0.1.0 2024年6月21日

#1089 in 数据库接口

MIT/Apache

93KB
2.5K SLoC

monzo-rust

A rust 命令行应用程序,用于将 Monzo 交易历史记录下载到 SQLITE 数据库。

安装

cargo install --git https://github.com/richardjlyon/rust-monzo

用法

> monzo-cli

Usage: monzo <COMMAND>

Commands:
  update    Update transactions
  balances  Account balances
  auth      (Re)authorise the application
  reset     Reset the database (WARNING: This will delete all data!)
  help      Print this message or the help of the given subcommand(s)

Options:
  -h, --help     Print help
  -V, --version  Print version

贡献

欢迎提交拉取请求。对于重大更改,请首先打开一个问题来讨论您想要更改的内容。

请确保适当更新测试。

许可

MIT

配置

授权

使用以下内容编辑文件 configuration.toml

start_date = "2024-01-01T00:00:00"
default_days_to_update = 14

[database]
database_path = "db.sqlite"
max_connections = 5

[oath_credentials]
client_id = "XXX"
client_secret = "XXX"
redirect_uri = "https://127.0.0.1:3000/oauth/callback"

在 Monzo 开发者控制台中创建一个新的 OAuth 客户端,并将 client_idclient_secret 替换为新客户端的值。将 start_date 替换为您想要下载的最早交易日期。

自定义分类

在项目的根目录下创建文件 configuration.yaml,内容如下

category_0000Aebc1dJeps1a2lDFKb: "InternetMobile"
category_0000AeNDWV8K5iX53Ohyld: "Car"
category_0000AiofUPXe8c5I6Zxp6g: "Clothing"
category_0000AeR7gxWtXy4Hzy0ULL: "Energy"
category_0000AgThBIKMlNhgpZPRhZ: "Maintenance"
category_0000AeU961sBDb6GUYcQh1: "Subscriptions"

将分类 ID 替换为您想要使用的分类 ID。这些可以在数据库中找到。

注意

  1. 出于安全原因,Monzo API 限制所有交易在认证后的 5 分钟窗口内下载。这意味着您第一次运行应用程序时,需要运行 auth 命令并按照说明进行应用程序认证。这只需要做一次。
  2. 由于缺乏对“Pots”内交易的任何 API 访问,Monzo API 受到严重限制。对此我无能为力。

依赖项

~66MB
~1M SLoC