{"id":22419793,"url":"https://github.com/cromarmot/billanalysis","last_synced_at":"2026-05-08T08:08:52.285Z","repository":{"id":48447591,"uuid":"383709288","full_name":"CroMarmot/BillAnalysis","owner":"CroMarmot","description":"个人离线账目统计(Alipay,Wechat)","archived":false,"fork":false,"pushed_at":"2024-01-08T06:50:52.000Z","size":729,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-01T09:45:16.498Z","etag":null,"topics":["alipay","flask","python3","reactjs","sqlite3","wechat"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CroMarmot.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-07-07T07:18:56.000Z","updated_at":"2024-01-08T06:50:56.000Z","dependencies_parsed_at":"2022-08-24T05:50:59.865Z","dependency_job_id":null,"html_url":"https://github.com/CroMarmot/BillAnalysis","commit_stats":null,"previous_names":["cromarmot/billanalysis"],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CroMarmot%2FBillAnalysis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CroMarmot%2FBillAnalysis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CroMarmot%2FBillAnalysis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CroMarmot%2FBillAnalysis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CroMarmot","download_url":"https://codeload.github.com/CroMarmot/BillAnalysis/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245785715,"owners_count":20671631,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alipay","flask","python3","reactjs","sqlite3","wechat"],"created_at":"2024-12-05T16:16:49.447Z","updated_at":"2026-05-08T08:08:47.237Z","avatar_url":"https://github.com/CroMarmot.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 账单统计分析\n\n支付宝/微信账单处理无法自定义功能，或操作不够方便，一个自用的账目查看\n\n基于 [flask] + [echarts] + [sqlite3] + [reactjs]\n## 准备\n\n`pip install -r requirement.txt`\n\n从支付宝/微信 官方下载csv数据\n\n支付宝账单需要 编码从gbk转换为utf8:\n\n`./gbk2utf8.sh \u003cyour csv\u003e`\n\n## 微信账单密码\n\n微信每次只能下载3个月的账单，而且走邮箱带密码步骤十分繁琐，这里提供一个 数字密码爆破的脚本，需要修改代码里去掉字母的部分即可使用\n\nhttps://github.com/CroMarmot/zipcracker\n\n```diff\n-    alphabet += 'abcdefghijklmnopqrstuvwxyz'\n-    alphabet += 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'\n+#    alphabet += 'abcdefghijklmnopqrstuvwxyz'\n+#    alphabet += 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'\n```\n\n## 使用\n\n### backend\n\n```sh\n# 进入服务端文件夹\ncd backend\n# 创建虚拟环境\npython3 -m venv venv\n# 启用虚拟环境\n. venv/bin/activate\n# 安装模块及依赖\npip install -e .\n# 启动服务, 其中\u003crecord.db\u003e为存储文件,可以替换\npython3 -m bill_analysis.analysis record.db\n```\n\n### frontend\n\n```sh\n# 进入前端文件夹\ncd frontend\n# 查看可用node版本\nnvm ls-remote --lts\n# 安装一个v16.x.x的版本, 原始代码比较老,没支持v18\nnvm install v16.20.2\n# 使用对应版本\nnvm use v16.20.2\n# 安装依赖\nyarn\n# 启动服务\nyarn start\n```\n\n浏览器访问\u003chttp://localhost:3000/\u003e\n\n## 当前功能\n\n- 支持 支付宝账单 和 微信账单\n- 上传csv文件, 自动识别账单类型\n- 查看 月/周 统计(柱状)/详情(饼图+列表)\n- 支持金额,名称,交易时间排序\n- 标记忽略，查看忽略列表，撤销标记\n\n## TODO\n\n- [ ] 读取备注，增加备注\n- [ ] 备注 映射管理\n- [ ] Tag/Category\n- [ ] Ignore 导入/导出 scripts\n- [ ] 上传管理\n- [ ] 支持 编码自动识别\n- [ ] 使用RxJs?\n- [ ] i18n\n- [ ] 总额/均值\n- [ ] 解决 Alipay/Wechat 内部的 合并 覆盖(目前用户保证账单，两份月周份无重复)\n- [ ] 批量上传\n- [ ] search\n- [ ] 一些单元unit test 和 覆盖率报告\n\n[flask]: https://flask.palletsprojects.com/en/2.0.x/\n[echarts]: https://echarts.apache.org/\n[sqlite3]: https://www.sqlite.org/index.html\n[reactjs]: https://reactjs.org/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcromarmot%2Fbillanalysis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcromarmot%2Fbillanalysis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcromarmot%2Fbillanalysis/lists"}