# -*- coding: utf-8 -*- import json, os, datetime ROOT = os.path.abspath('.') now = datetime.datetime.now() REPORT_DAY = '2026-08-02' # reportDay=无(今日/昨日均0)→ 回落为今天,出诚实的未阅读笔记 MINUTES = 0 QUOTE_COUNT = 0 # 当日个人划线数(不含热门兜底) BOOK_COUNT = 11 streak = json.load(open('reading-streak.json', encoding='utf-8')) S = streak['streak'] QUOTE = '圣人的书,都是给人看的,拿来办事,百无一用。' BOOK = '大明王朝1566(全集)' LABEL = '《%s》(来自本书热门划线)' % BOOK CORE = [ '**阅读中断已进入第 2 天,但断点还很新。** 07-31 读了 73 分钟(本周峰值),08-01、08-02 连续两天为 0。11 本在读书里最后被翻动的是《大明王朝1566(全集)》,停在 07-31 09:48、进度 3%。三天前才刚创下单日新高,现在回到原处的成本仍然极低——不需要重头再来,只要把这本书翻开。', '**书架摊得太开,是启动困难的结构性原因。** 11 本在读书中有 8 本进度停在 0%(《大医·日出篇》《沧浪之水》《小妇人》《遥远的向日葵地》《桃花源没事儿》《大医·破晓篇》《飘》等),真正在推进的只有《生死疲劳》15%、《傲慢与偏见》4%、《大明王朝1566》3%。选择越多越难开始,建议这周只认《大明王朝1566》一本主线,其余先归档。', '**输入在涨,输出没跟上。** 账号至今累计仅 3 条划线,最新一条停在 07-28。前几天时长从 16 分钟一路涨到 73 分钟,但没有沉淀下任何标记。明天重启时给自己一个最低门槛:读 10 分钟 + 至少留 1 条划线,让"读过"变成"留下过"。', ] THINK = ( '今天这条热门划线有点像一句反话——"圣人的书,都是给人看的,拿来办事,百无一用"。' '放在一个连续两天没读书的日子里看,它的刺恰好扎在反面:书之所以"百无一用",' '往往不是因为书没用,而是因为它一直停在"给人看"的状态,从没被拿去"办事"。\n\n' '这两天没读,多半不是没时间,而是阅读还没有嵌进任何一件具体的事里。' '11 本在读、8 本停在 0%,本身就说明这些书目前只是"打算看",还不是"要用的"。' '明天不妨换个入口:不为打卡去读,而是带一个问题去读——比如在《大明王朝1566》里,' '嘉靖如何在不表态的情况下操控局势?带着问题读 10 分钟,比空着脑子读一小时更容易续上。\n\n' '连续打卡 5 天的记录还在,但它已经两天没有前进了。streak 的意义不在数字本身,' '而在于它是否还能提醒你今天该翻开书——今晚还有时间,10 分钟就够。' ) lines = [] lines.append('# 今日读书收获(%s)' % REPORT_DAY) lines.append('') lines.append('> 阅读打卡 | 连续打卡 %d 天' % S) lines.append('') lines.append('## 金句摘录') lines.append('') lines.append('今日(2026-08-02)与昨日(2026-08-01)微信读书均无阅读记录,阅读时长 0 分钟,' '因此**没有当日个人划线**。(已交叉核对:11 本在读书的进度更新时间最新为 07-31 09:48,' '无任何一本在 8 月被翻动。)') lines.append('') lines.append('以下是从最近阅读的《%s》中精选的 1 条热门划线,供今日阅读参考——它不来自今天的阅读,' '只是一个重新开始的引子:' % BOOK) lines.append('') lines.append('> %s ——%s' % (QUOTE, LABEL)) lines.append('') lines.append('## 核心观点') lines.append('') for i, c in enumerate(CORE, 1): lines.append('%d. %s' % (i, c)) lines.append('') lines.append('## 个人思考') lines.append('') lines.append(THINK) lines.append('') lines.append('---') lines.append('*已保存 · 今日未打卡(无阅读记录) · 在读书 %d 本*' % BOOK_COUNT) md = '\n'.join(lines) outdir = os.path.join(ROOT, '读书收获', REPORT_DAY[:4]) os.makedirs(outdir, exist_ok=True) outpath = os.path.join(outdir, '今日读书收获_%s.md' % REPORT_DAY) open(outpath, 'w', encoding='utf-8').write(md) print('WROTE', outpath, len(md), 'chars') status = { 'date': REPORT_DAY, 'streak': S, 'minutes': MINUTES, 'bookCount': BOOK_COUNT, 'bookTitle': BOOK, 'quoteText': QUOTE, 'quoteLabel': '《%s》(来自本书热门划线)' % BOOK, 'quoteSource': '本书热门划线', 'corePoints': [c.replace('**', '') for c in CORE], 'generatedAt': now.strftime('%Y-%m-%d %H:%M:%S'), 'path': outpath, 'quoteCount': QUOTE_COUNT, 'noReadingToday': True, } for p in ['reading-note-status.json', '.weread/tmp/last_reading_note.json']: json.dump(status, open(p, 'w', encoding='utf-8'), ensure_ascii=False, indent=2) print('STATUS ->', p) # 打卡:reportDay 无阅读 → streak 不变 print('STREAK unchanged =', S, '| lastReadDate =', streak['lastReadDate'])