auto: sync OpenClaw config 2026-08-08 17:17

This commit is contained in:
2026-08-08 17:17:00 +08:00
parent 3b3f9453c6
commit 22b1bbe584
10 changed files with 240 additions and 3 deletions
+9
View File
@@ -47,6 +47,15 @@
## 2026年数据进展
- **2026-07 汪礼平七月微信账单**7/017/31,77笔)
- 支出74笔¥3,130.44 | 收入3笔¥610.00
- 支出分类:餐饮/食品¥1,709.79 | 转账/红包¥900(杨小平400+老公200+红包给佳艳300)| 购物¥475.85(拼多多/抖音)| 其他¥40(三城寺香火5×10)| 交通¥4.8(铁塔能源)
- 单笔最大:红星扫码¥736(7/26,疑大宗采购)
- 收入:杨轩转账400、汪和平200、佳艳红包10
- 主要支付方式:安徽农信储蓄卡(8043);零钱少量
- 日常以菜市场/超市小摊为主(好想来、惠康、皖商、新皖韵),消费结构健康
- 注:7/31 抖音@红星736已入餐饮分类,若属批量采购可复核
- **2026-07-15**:导入杨轩2026上半年三张卡流水
- **工行交通卡2808**64条流水,34笔外部支出¥3,774
- 火车票¥3,632 = 96%,滴滴¥101,共享单车¥15,停车费¥11,卡年费¥10
File diff suppressed because one or more lines are too long
+49
View File
@@ -0,0 +1,49 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""分析汪礼平2026年(1-7月)转账/红包往来"""
import json, pymysql, re
from collections import defaultdict
cfg = json.load(open('db_config.json'))
conn = pymysql.connect(host=cfg['host'], port=cfg['port'], user=cfg['user'],
password=str(cfg['password']), database=cfg['database'], charset='utf8mb4')
cur = conn.cursor()
cur.execute("""
SELECT recorded_date, amount, note FROM variable_expenses
WHERE member_id=1 AND recorded_date BETWEEN '2026-01-01' AND '2026-07-31'
AND (category='转账/红包' OR category LIKE '%红包%' OR note LIKE '%微信转账%' OR note LIKE '%微信红包%')
ORDER BY recorded_date
""")
rows = cur.fetchall()
def peer_of(note):
parts = [p.strip() for p in note.replace('[微信] ', '').split('|')]
if len(parts) >= 2:
return parts[1]
return '(未知)'
by_peer_month = defaultdict(set)
by_peer_total = defaultdict(float)
by_peer_count = defaultdict(int)
by_peer_amounts = defaultdict(list)
for d, amt, note in rows:
p = peer_of(note)
m = d.strftime('%Y-%m')
a = float(amt)
by_peer_month[p].add(m)
by_peer_total[p] += a
by_peer_count[p] += 1
by_peer_amounts[p].append((d.strftime('%m-%d'), a))
conn.close()
print(f'2026年1-7月 转账/红包共 {len(rows)}\n')
cands = [(by_peer_count[p], by_peer_total[p], p, sorted(by_peer_month[p]), by_peer_amounts[p])
for p in by_peer_month]
cands.sort(key=lambda x: (-x[1]))
print('=== 按累计金额排序 ===')
for cnt, tot, p, months, amts in cands:
print(f'\n{p} | {cnt}笔 | 累计 ¥{tot:,.0f} | {len(months)}个月 {months}')
details = ''.join(f'{d}¥{a:.0f}' for d, a in amts)
print(f' 明细: {details}')
+37
View File
@@ -0,0 +1,37 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""查询汪礼平与汪和平相关的全部转账/红包/收支记录"""
import json, pymysql
cfg = json.load(open('db_config.json'))
conn = pymysql.connect(host=cfg['host'], port=cfg['port'], user=cfg['user'],
password=cfg.get('password'), database=cfg['database'], charset='utf8mb4')
cur = conn.cursor()
# 支出方向(微信转出给汪和平)
print('=== 汪礼平 → 汪和平(支出/转出) ===')
cur.execute("""
SELECT recorded_date, amount, note FROM variable_expenses
WHERE member_id=1 AND note LIKE '%汪和平%' ORDER BY recorded_date
""")
for d, a, n in cur.fetchall():
print(f' {d} ¥{float(a):>9.2f} {"支出" if "支出" in n else "转出"} {n}')
# 收入方向(汪和平转入→汪礼平)
print()
print('=== 汪和平 → 汪礼平(收入/转入) ===')
cur.execute("""
SELECT recorded_date, amount, source, note FROM income_records
WHERE member_id=1 AND (source LIKE '%汪和平%' OR note LIKE '%汪和平%') ORDER BY recorded_date
""")
rows = cur.fetchall()
if rows:
for d, a, s, n in rows:
print(f' {d} ¥{float(a):>9.2f} {"收入" if "收入" in n else "转入"} 来源:{s} {n}')
else:
# income_records 可能没有汪和平相关,检查所有收入
cur.execute("SELECT recorded_date, amount, source, note FROM income_records WHERE member_id=1 ORDER BY recorded_date")
print(' (income_records 中未匹配,全部收入记录如下:)')
for d, a, s, n in cur.fetchall():
print(f' {d} ¥{float(a):>9.2f} 来源:{s} {n or ""}')
conn.close()
+48
View File
@@ -0,0 +1,48 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""分析汪礼平跨月重复的转账/红包对象"""
import json, pymysql, re
from collections import defaultdict
cfg = json.load(open('db_config.json'))
conn = pymysql.connect(host=cfg['host'], port=cfg['port'], user=cfg['user'],
password=str(cfg['password']), database=cfg['database'], charset='utf8mb4')
cur = conn.cursor()
cur.execute("""
SELECT recorded_date, amount, note FROM variable_expenses
WHERE member_id=1 AND (category='转账/红包' OR category LIKE '%红包%' OR note LIKE '%微信转账%' OR note LIKE '%微信红包%')
""")
rows = cur.fetchall()
def peer_of(note):
# note 形如 [微信] 转账|对方名|备注 或 转账 | 对方 | 备注
parts = [p.strip() for p in note.replace('[微信] ', '').split('|')]
if len(parts) >= 2:
return parts[1]
m = re.search(r'转账\s*[:|]\s*([^|\s]+)', note)
return None
# 按对方+月份统计
by_peer_month = defaultdict(set) # peer -> set of 'YYYY-MM'
by_peer_total = defaultdict(float)
by_peer_count = defaultdict(int)
for d, amt, note in rows:
p = peer_of(note)
if not p:
p = '(未知)'
month = d.strftime('%Y-%m')
by_peer_month[p].add(month)
by_peer_total[p] += float(amt)
by_peer_count[p] += 1
# 按月数排序,找出跨月重复的
print('=== 转账对象出现月份数(>=2个月视为规律性) ===')
multi = []
for p, months in by_peer_month.items():
if len(months) >= 2:
multi.append((len(months), by_peer_count[p], by_peer_total[p], p, sorted(months)))
multi.sort(key=lambda x: (-x[0], -x[2]))
for nmon, ncnt, tot, p, months in multi:
print(f' {p:16s} 出现{nmon}个月共{ncnt}笔 累计¥{tot:.0f} 月:{months}')
conn.close()
+23
View File
@@ -0,0 +1,23 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import json, pymysql
cfg = json.load(open('db_config.json'))
conn = pymysql.connect(host=cfg['host'], port=cfg['port'], user=cfg['user'],
password=str(cfg['password']), database=cfg['database'], charset='utf8mb4')
cur = conn.cursor()
# 汪礼平所有转账/红包类支出
cur.execute("""
SELECT recorded_date, amount, note FROM variable_expenses
WHERE member_id=1 AND (category='转账/红包' OR category LIKE '%红包%' OR note LIKE '%微信转账%' OR note LIKE '%微信红包%')
ORDER BY recorded_date
""")
rows = cur.fetchall()
print(f'{len(rows)}笔转账/红包类记录:')
for r in rows:
print(f' {r[0]} {r[1]:>8.2f} {r[2]}')
print()
cur.execute("SELECT MIN(recorded_date), MAX(recorded_date) FROM variable_expenses WHERE member_id=1")
print('汪礼平支出日期范围:', cur.fetchone())
conn.close()