diff --git a/ai-insights/daily/2026-06-12/2026-06-12_digest.md b/ai-insights/daily/2026/06/12/2026-06-12_digest.md similarity index 100% rename from ai-insights/daily/2026-06-12/2026-06-12_digest.md rename to ai-insights/daily/2026/06/12/2026-06-12_digest.md diff --git a/ai-insights/daily/2026-06-12/2026-06-12_digest_v013053.bak.md b/ai-insights/daily/2026/06/12/2026-06-12_digest_v013053.bak.md similarity index 100% rename from ai-insights/daily/2026-06-12/2026-06-12_digest_v013053.bak.md rename to ai-insights/daily/2026/06/12/2026-06-12_digest_v013053.bak.md diff --git a/ai-insights/daily/2026-06-13/01_浙大学习分析.md b/ai-insights/daily/2026/06/13/01_浙大学习分析.md similarity index 100% rename from ai-insights/daily/2026-06-13/01_浙大学习分析.md rename to ai-insights/daily/2026/06/13/01_浙大学习分析.md diff --git a/ai-insights/daily/2026-06-13/02_讯飞参观学习.md b/ai-insights/daily/2026/06/13/02_讯飞参观学习.md similarity index 100% rename from ai-insights/daily/2026-06-13/02_讯飞参观学习.md rename to ai-insights/daily/2026/06/13/02_讯飞参观学习.md diff --git a/ai-insights/daily/2026-06-13/03_全天学习总结.md b/ai-insights/daily/2026/06/13/03_全天学习总结.md similarity index 100% rename from ai-insights/daily/2026-06-13/03_全天学习总结.md rename to ai-insights/daily/2026/06/13/03_全天学习总结.md diff --git a/ai-insights/daily/2026-06-13/2026-06-13_digest_232719.md b/ai-insights/daily/2026/06/13/2026-06-13_digest_232719.md similarity index 100% rename from ai-insights/daily/2026-06-13/2026-06-13_digest_232719.md rename to ai-insights/daily/2026/06/13/2026-06-13_digest_232719.md diff --git a/ai-insights/daily/2026-06-14/01_宇树科技课程分析_154017.md b/ai-insights/daily/2026/06/14/01_宇树科技课程分析_154017.md similarity index 100% rename from ai-insights/daily/2026-06-14/01_宇树科技课程分析_154017.md rename to ai-insights/daily/2026/06/14/01_宇树科技课程分析_154017.md diff --git a/ai-insights/daily/2026-06-14/01_浙大学习分析_v113954.md b/ai-insights/daily/2026/06/14/01_浙大学习分析_v113954.md similarity index 100% rename from ai-insights/daily/2026-06-14/01_浙大学习分析_v113954.md rename to ai-insights/daily/2026/06/14/01_浙大学习分析_v113954.md diff --git a/ai-insights/daily/2026-06-14/2026-06-14_digest_140030.md b/ai-insights/daily/2026/06/14/2026-06-14_digest_140030.md similarity index 100% rename from ai-insights/daily/2026-06-14/2026-06-14_digest_140030.md rename to ai-insights/daily/2026/06/14/2026-06-14_digest_140030.md diff --git a/ai-insights/daily/2026-06-14/2026-06-14_digest_223026.md b/ai-insights/daily/2026/06/14/2026-06-14_digest_223026.md similarity index 100% rename from ai-insights/daily/2026-06-14/2026-06-14_digest_223026.md rename to ai-insights/daily/2026/06/14/2026-06-14_digest_223026.md diff --git a/ai-insights/daily/2026-06-14/浙江两日记_122834.md b/ai-insights/daily/2026/06/14/浙江两日记_122834.md similarity index 100% rename from ai-insights/daily/2026-06-14/浙江两日记_122834.md rename to ai-insights/daily/2026/06/14/浙江两日记_122834.md diff --git a/ai-insights/daily/2026-06-14/浙江两日记_123227.md b/ai-insights/daily/2026/06/14/浙江两日记_123227.md similarity index 100% rename from ai-insights/daily/2026-06-14/浙江两日记_123227.md rename to ai-insights/daily/2026/06/14/浙江两日记_123227.md diff --git a/ai-insights/daily/2026-06-14/课程记录模板.md b/ai-insights/daily/2026/06/14/课程记录模板.md similarity index 100% rename from ai-insights/daily/2026-06-14/课程记录模板.md rename to ai-insights/daily/2026/06/14/课程记录模板.md diff --git a/ai-insights/daily/2026-06-15/03_海康威视参观学习分析_v102900.md b/ai-insights/daily/2026/06/15/03_海康威视参观学习分析_v102900.md similarity index 100% rename from ai-insights/daily/2026-06-15/03_海康威视参观学习分析_v102900.md rename to ai-insights/daily/2026/06/15/03_海康威视参观学习分析_v102900.md diff --git a/ai-insights/daily/2026-06-15/04_海康威视参观学习总结_v4.md b/ai-insights/daily/2026/06/15/04_海康威视参观学习总结_v4.md similarity index 100% rename from ai-insights/daily/2026-06-15/04_海康威视参观学习总结_v4.md rename to ai-insights/daily/2026/06/15/04_海康威视参观学习总结_v4.md diff --git a/ai-insights/daily/2026-06-15/05_每日总结_2026-06-15.md b/ai-insights/daily/2026/06/15/05_每日总结_2026-06-15.md similarity index 100% rename from ai-insights/daily/2026-06-15/05_每日总结_2026-06-15.md rename to ai-insights/daily/2026/06/15/05_每日总结_2026-06-15.md diff --git a/ai-insights/daily/2026-06-15/2026-06-15_digest_112630.md b/ai-insights/daily/2026/06/15/2026-06-15_digest_112630.md similarity index 100% rename from ai-insights/daily/2026-06-15/2026-06-15_digest_112630.md rename to ai-insights/daily/2026/06/15/2026-06-15_digest_112630.md diff --git a/ai-insights/daily/2026-06-15/2026-06-15_digest_160202.md b/ai-insights/daily/2026/06/15/2026-06-15_digest_160202.md similarity index 100% rename from ai-insights/daily/2026-06-15/2026-06-15_digest_160202.md rename to ai-insights/daily/2026/06/15/2026-06-15_digest_160202.md diff --git a/ai-insights/daily/2026-06-15/2026-06-15_digest_223042.md b/ai-insights/daily/2026/06/15/2026-06-15_digest_223042.md similarity index 100% rename from ai-insights/daily/2026-06-15/2026-06-15_digest_223042.md rename to ai-insights/daily/2026/06/15/2026-06-15_digest_223042.md diff --git a/ai-insights/daily/2026-06-15/关于习近平总书记地方工作期间坚持正确政绩观生动实践_学习研讨报告.md b/ai-insights/daily/2026/06/15/关于习近平总书记地方工作期间坚持正确政绩观生动实践_学习研讨报告.md similarity index 100% rename from ai-insights/daily/2026-06-15/关于习近平总书记地方工作期间坚持正确政绩观生动实践_学习研讨报告.md rename to ai-insights/daily/2026/06/15/关于习近平总书记地方工作期间坚持正确政绩观生动实践_学习研讨报告.md diff --git a/ai-insights/daily/2026-06-15/诸暨枫桥经验学习考察总结.md b/ai-insights/daily/2026/06/15/诸暨枫桥经验学习考察总结.md similarity index 100% rename from ai-insights/daily/2026-06-15/诸暨枫桥经验学习考察总结.md rename to ai-insights/daily/2026/06/15/诸暨枫桥经验学习考察总结.md diff --git a/ai-insights/daily/2026-06-16/00_正反馈飞轮_智能体协作模式.md b/ai-insights/daily/2026/06/16/00_正反馈飞轮_智能体协作模式.md similarity index 100% rename from ai-insights/daily/2026-06-16/00_正反馈飞轮_智能体协作模式.md rename to ai-insights/daily/2026/06/16/00_正反馈飞轮_智能体协作模式.md diff --git a/ai-insights/daily/2026-06-16/01_变革时代的创新思维与创新管理课程分析.md b/ai-insights/daily/2026/06/16/01_变革时代的创新思维与创新管理课程分析.md similarity index 100% rename from ai-insights/daily/2026-06-16/01_变革时代的创新思维与创新管理课程分析.md rename to ai-insights/daily/2026/06/16/01_变革时代的创新思维与创新管理课程分析.md diff --git a/ai-insights/daily/2026-06-16/02_个人数字体系全景.md b/ai-insights/daily/2026/06/16/02_个人数字体系全景.md similarity index 100% rename from ai-insights/daily/2026-06-16/02_个人数字体系全景.md rename to ai-insights/daily/2026/06/16/02_个人数字体系全景.md diff --git a/ai-insights/daily/2026-06-16/03_素材积累与AI能力的辩证关系.md b/ai-insights/daily/2026/06/16/03_素材积累与AI能力的辩证关系.md similarity index 100% rename from ai-insights/daily/2026-06-16/03_素材积累与AI能力的辩证关系.md rename to ai-insights/daily/2026/06/16/03_素材积累与AI能力的辩证关系.md diff --git a/ai-insights/daily/2026-06-16/04_行情数据采集方案_事件线与价格线的双轨归档.md b/ai-insights/daily/2026/06/16/04_行情数据采集方案_事件线与价格线的双轨归档.md similarity index 100% rename from ai-insights/daily/2026-06-16/04_行情数据采集方案_事件线与价格线的双轨归档.md rename to ai-insights/daily/2026/06/16/04_行情数据采集方案_事件线与价格线的双轨归档.md diff --git a/ai-insights/daily/2026-06-16/2026-06-16_digest_223025.md b/ai-insights/daily/2026/06/16/2026-06-16_digest_223025.md similarity index 100% rename from ai-insights/daily/2026-06-16/2026-06-16_digest_223025.md rename to ai-insights/daily/2026/06/16/2026-06-16_digest_223025.md diff --git a/ai-insights/daily/2026-06-17/00_33岁_窄路与高处.md b/ai-insights/daily/2026/06/17/00_33岁_窄路与高处.md similarity index 100% rename from ai-insights/daily/2026-06-17/00_33岁_窄路与高处.md rename to ai-insights/daily/2026/06/17/00_33岁_窄路与高处.md diff --git a/ai-insights/daily/2026-06-17/01_Memos标签设计_四维坐标体系.md b/ai-insights/daily/2026/06/17/01_Memos标签设计_四维坐标体系.md similarity index 100% rename from ai-insights/daily/2026-06-17/01_Memos标签设计_四维坐标体系.md rename to ai-insights/daily/2026/06/17/01_Memos标签设计_四维坐标体系.md diff --git a/ai-insights/daily/2026-06-17/02_开源模型能力阶梯与成本参考.md b/ai-insights/daily/2026/06/17/02_开源模型能力阶梯与成本参考.md similarity index 100% rename from ai-insights/daily/2026-06-17/02_开源模型能力阶梯与成本参考.md rename to ai-insights/daily/2026/06/17/02_开源模型能力阶梯与成本参考.md diff --git a/ai-insights/daily/2026-06-17/03_新稳态_双线写作与反馈飞轮.md b/ai-insights/daily/2026/06/17/03_新稳态_双线写作与反馈飞轮.md similarity index 100% rename from ai-insights/daily/2026-06-17/03_新稳态_双线写作与反馈飞轮.md rename to ai-insights/daily/2026/06/17/03_新稳态_双线写作与反馈飞轮.md diff --git a/ai-insights/daily/2026-06-17/04_待办系统_六病诊断与改造方向.md b/ai-insights/daily/2026/06/17/04_待办系统_六病诊断与改造方向.md similarity index 100% rename from ai-insights/daily/2026-06-17/04_待办系统_六病诊断与改造方向.md rename to ai-insights/daily/2026/06/17/04_待办系统_六病诊断与改造方向.md diff --git a/ai-insights/daily/2026-06-17/05_冯氏四则_战略方法论.md b/ai-insights/daily/2026/06/17/05_冯氏四则_战略方法论.md similarity index 100% rename from ai-insights/daily/2026-06-17/05_冯氏四则_战略方法论.md rename to ai-insights/daily/2026/06/17/05_冯氏四则_战略方法论.md diff --git a/ai-insights/daily/2026-06-17/06_反脆弱重启_从焦虑抑郁到系统重建.md b/ai-insights/daily/2026/06/17/06_反脆弱重启_从焦虑抑郁到系统重建.md similarity index 100% rename from ai-insights/daily/2026-06-17/06_反脆弱重启_从焦虑抑郁到系统重建.md rename to ai-insights/daily/2026/06/17/06_反脆弱重启_从焦虑抑郁到系统重建.md diff --git a/ai-insights/daily/2026-06-17/2026-06-17_digest_223027.md b/ai-insights/daily/2026/06/17/2026-06-17_digest_223027.md similarity index 100% rename from ai-insights/daily/2026-06-17/2026-06-17_digest_223027.md rename to ai-insights/daily/2026/06/17/2026-06-17_digest_223027.md diff --git a/ai-insights/daily/2026-06-17/浙大培训日程全记录.md b/ai-insights/daily/2026/06/17/浙大培训日程全记录.md similarity index 100% rename from ai-insights/daily/2026-06-17/浙大培训日程全记录.md rename to ai-insights/daily/2026/06/17/浙大培训日程全记录.md diff --git a/ai-insights/daily/2026-06-17/致妻子_二十天的平行世界.md b/ai-insights/daily/2026/06/17/致妻子_二十天的平行世界.md similarity index 100% rename from ai-insights/daily/2026-06-17/致妻子_二十天的平行世界.md rename to ai-insights/daily/2026/06/17/致妻子_二十天的平行世界.md diff --git a/ai-insights/daily/2026-06-18/07_时间与缓存——留给未来的素材.md b/ai-insights/daily/2026/06/18/07_时间与缓存——留给未来的素材.md similarity index 100% rename from ai-insights/daily/2026-06-18/07_时间与缓存——留给未来的素材.md rename to ai-insights/daily/2026/06/18/07_时间与缓存——留给未来的素材.md diff --git a/ai-insights/daily/2026-06-18/08_穿行——高铁八小时与地理决定论.md b/ai-insights/daily/2026/06/18/08_穿行——高铁八小时与地理决定论.md similarity index 100% rename from ai-insights/daily/2026-06-18/08_穿行——高铁八小时与地理决定论.md rename to ai-insights/daily/2026/06/18/08_穿行——高铁八小时与地理决定论.md diff --git a/ai-insights/daily/2026-06-18/09_出发.md b/ai-insights/daily/2026/06/18/09_出发.md similarity index 100% rename from ai-insights/daily/2026-06-18/09_出发.md rename to ai-insights/daily/2026/06/18/09_出发.md diff --git a/ai-insights/daily/2026-06-18/10_颍河.md b/ai-insights/daily/2026/06/18/10_颍河.md similarity index 100% rename from ai-insights/daily/2026-06-18/10_颍河.md rename to ai-insights/daily/2026/06/18/10_颍河.md diff --git a/ai-insights/daily/2026-06-18/11_原来不是所有的地方都有关.md b/ai-insights/daily/2026/06/18/11_原来不是所有的地方都有关.md similarity index 100% rename from ai-insights/daily/2026-06-18/11_原来不是所有的地方都有关.md rename to ai-insights/daily/2026/06/18/11_原来不是所有的地方都有关.md diff --git a/ai-insights/daily/2026-06-18/2026-06-18_digest_223037.md b/ai-insights/daily/2026/06/18/2026-06-18_digest_223037.md similarity index 100% rename from ai-insights/daily/2026-06-18/2026-06-18_digest_223037.md rename to ai-insights/daily/2026/06/18/2026-06-18_digest_223037.md diff --git a/ai-insights/daily/2026-06-19/12_有关的三层嵌套.md b/ai-insights/daily/2026/06/19/12_有关的三层嵌套.md similarity index 100% rename from ai-insights/daily/2026-06-19/12_有关的三层嵌套.md rename to ai-insights/daily/2026/06/19/12_有关的三层嵌套.md diff --git a/ai-insights/daily/2026-06-19/13_人生的内核.md b/ai-insights/daily/2026/06/19/13_人生的内核.md similarity index 100% rename from ai-insights/daily/2026-06-19/13_人生的内核.md rename to ai-insights/daily/2026/06/19/13_人生的内核.md diff --git a/ai-insights/daily/2026-06-19/14_思考资产的复利.md b/ai-insights/daily/2026/06/19/14_思考资产的复利.md similarity index 100% rename from ai-insights/daily/2026-06-19/14_思考资产的复利.md rename to ai-insights/daily/2026/06/19/14_思考资产的复利.md diff --git a/ai-insights/daily/2026-06-19/15_笔脑机_最优记录链.md b/ai-insights/daily/2026/06/19/15_笔脑机_最优记录链.md similarity index 100% rename from ai-insights/daily/2026-06-19/15_笔脑机_最优记录链.md rename to ai-insights/daily/2026/06/19/15_笔脑机_最优记录链.md diff --git a/ai-insights/daily/2026-06-19/16_时间容器.md b/ai-insights/daily/2026/06/19/16_时间容器.md similarity index 100% rename from ai-insights/daily/2026-06-19/16_时间容器.md rename to ai-insights/daily/2026/06/19/16_时间容器.md diff --git a/ai-insights/daily/2026-06-19/17_人称的战术.md b/ai-insights/daily/2026/06/19/17_人称的战术.md similarity index 100% rename from ai-insights/daily/2026-06-19/17_人称的战术.md rename to ai-insights/daily/2026/06/19/17_人称的战术.md diff --git a/ai-insights/daily/2026-06-19/18_脆弱的局部与反脆弱的整体.md b/ai-insights/daily/2026/06/19/18_脆弱的局部与反脆弱的整体.md similarity index 100% rename from ai-insights/daily/2026-06-19/18_脆弱的局部与反脆弱的整体.md rename to ai-insights/daily/2026/06/19/18_脆弱的局部与反脆弱的整体.md diff --git a/ai-insights/daily/2026-06-19/2026-06-19_digest_223035.md b/ai-insights/daily/2026/06/19/2026-06-19_digest_223035.md similarity index 100% rename from ai-insights/daily/2026-06-19/2026-06-19_digest_223035.md rename to ai-insights/daily/2026/06/19/2026-06-19_digest_223035.md diff --git a/ai-insights/daily/2026-06-19/work/工作日志_2026-06-19.md b/ai-insights/daily/2026/06/19/work/工作日志_2026-06-19.md similarity index 100% rename from ai-insights/daily/2026-06-19/work/工作日志_2026-06-19.md rename to ai-insights/daily/2026/06/19/work/工作日志_2026-06-19.md diff --git a/ai-insights/daily/2026-06-20/19_无上秘与三重复利.md b/ai-insights/daily/2026/06/20/19_无上秘与三重复利.md similarity index 100% rename from ai-insights/daily/2026-06-20/19_无上秘与三重复利.md rename to ai-insights/daily/2026/06/20/19_无上秘与三重复利.md diff --git a/ai-insights/daily/2026-06-20/2026-06-20_digest_223041.md b/ai-insights/daily/2026/06/20/2026-06-20_digest_223041.md similarity index 100% rename from ai-insights/daily/2026-06-20/2026-06-20_digest_223041.md rename to ai-insights/daily/2026/06/20/2026-06-20_digest_223041.md diff --git a/ai-insights/daily/2026-06-20/20_服务器.md b/ai-insights/daily/2026/06/20/20_服务器.md similarity index 100% rename from ai-insights/daily/2026-06-20/20_服务器.md rename to ai-insights/daily/2026/06/20/20_服务器.md diff --git a/ai-insights/daily/2026-06-20/21_不慌.md b/ai-insights/daily/2026/06/20/21_不慌.md similarity index 100% rename from ai-insights/daily/2026-06-20/21_不慌.md rename to ai-insights/daily/2026/06/20/21_不慌.md diff --git a/ai-insights/daily/2026-06-20/work/工作日志_2026-06-20.md b/ai-insights/daily/2026/06/20/work/工作日志_2026-06-20.md similarity index 100% rename from ai-insights/daily/2026-06-20/work/工作日志_2026-06-20.md rename to ai-insights/daily/2026/06/20/work/工作日志_2026-06-20.md diff --git a/ai-insights/daily/2026-06-21/2026-06-21_digest_223044.md b/ai-insights/daily/2026/06/21/2026-06-21_digest_223044.md similarity index 100% rename from ai-insights/daily/2026-06-21/2026-06-21_digest_223044.md rename to ai-insights/daily/2026/06/21/2026-06-21_digest_223044.md diff --git a/ai-insights/daily/2026-06-21/22_偏见.md b/ai-insights/daily/2026/06/21/22_偏见.md similarity index 100% rename from ai-insights/daily/2026-06-21/22_偏见.md rename to ai-insights/daily/2026/06/21/22_偏见.md diff --git a/ai-insights/daily/2026-06-21/23_关与偏见.md b/ai-insights/daily/2026/06/21/23_关与偏见.md similarity index 100% rename from ai-insights/daily/2026-06-21/23_关与偏见.md rename to ai-insights/daily/2026/06/21/23_关与偏见.md diff --git a/ai-insights/daily/2026-06-21/24_青州兵.md b/ai-insights/daily/2026/06/21/24_青州兵.md similarity index 100% rename from ai-insights/daily/2026-06-21/24_青州兵.md rename to ai-insights/daily/2026/06/21/24_青州兵.md diff --git a/ai-insights/daily/2026-06-21/work/工作日志_2026-06-21.md b/ai-insights/daily/2026/06/21/work/工作日志_2026-06-21.md similarity index 100% rename from ai-insights/daily/2026-06-21/work/工作日志_2026-06-21.md rename to ai-insights/daily/2026/06/21/work/工作日志_2026-06-21.md diff --git a/ai-insights/daily/2026-06-22/2026-06-22_digest_223034.md b/ai-insights/daily/2026/06/22/2026-06-22_digest_223034.md similarity index 100% rename from ai-insights/daily/2026-06-22/2026-06-22_digest_223034.md rename to ai-insights/daily/2026/06/22/2026-06-22_digest_223034.md diff --git a/ai-insights/daily/2026-06-22/25_数耳朵与制度穿透力.md b/ai-insights/daily/2026/06/22/25_数耳朵与制度穿透力.md similarity index 100% rename from ai-insights/daily/2026-06-22/25_数耳朵与制度穿透力.md rename to ai-insights/daily/2026/06/22/25_数耳朵与制度穿透力.md diff --git a/ai-insights/daily/2026-06-22/26_感知密度.md b/ai-insights/daily/2026/06/22/26_感知密度.md similarity index 100% rename from ai-insights/daily/2026-06-22/26_感知密度.md rename to ai-insights/daily/2026/06/22/26_感知密度.md diff --git a/ai-insights/daily/2026-06-22/work/工作日志_2026-06-22.md b/ai-insights/daily/2026/06/22/work/工作日志_2026-06-22.md similarity index 100% rename from ai-insights/daily/2026-06-22/work/工作日志_2026-06-22.md rename to ai-insights/daily/2026/06/22/work/工作日志_2026-06-22.md diff --git a/ai-insights/daily/2026-06-23/2026-06-23_digest_223030.md b/ai-insights/daily/2026/06/23/2026-06-23_digest_223030.md similarity index 100% rename from ai-insights/daily/2026-06-23/2026-06-23_digest_223030.md rename to ai-insights/daily/2026/06/23/2026-06-23_digest_223030.md diff --git a/ai-insights/daily/2026-06-23/work/工作日志_2026-06-23.md b/ai-insights/daily/2026/06/23/work/工作日志_2026-06-23.md similarity index 100% rename from ai-insights/daily/2026-06-23/work/工作日志_2026-06-23.md rename to ai-insights/daily/2026/06/23/work/工作日志_2026-06-23.md diff --git a/analyzers/daily_digest.py b/analyzers/daily_digest.py index eccc15f..fead15c 100644 --- a/analyzers/daily_digest.py +++ b/analyzers/daily_digest.py @@ -36,7 +36,8 @@ def read_previous_digest(date): daily_root = get_output_dir("daily") for days_back in range(1, 8): prev_date = date - timedelta(days=days_back) - prev_dir = os.path.join(daily_root, prev_date.strftime("%Y-%m-%d")) + pd = prev_date.strftime("%Y-%m-%d").split("-") + prev_dir = os.path.join(daily_root, pd[0], pd[1], pd[2]) if not os.path.isdir(prev_dir): continue files = sorted([f for f in os.listdir(prev_dir) if f.endswith(".md")], reverse=True) @@ -235,7 +236,8 @@ def run(memos_client, llm_client, date=None): logger.info("No memos today, skipping") content = format_daily_digest(date, ai_body="今天没有记录灵感。", tags=["灵感收集器", "每日总结", "静默"], doc_type="daily-digest") date_str = date.strftime("%Y-%m-%d") - daily_dir = os.path.join(get_output_dir("daily"), date_str) + parts = date_str.split("-") + daily_dir = os.path.join(get_output_dir("daily"), parts[0], parts[1], parts[2]) os.makedirs(daily_dir, exist_ok=True) now_str = datetime.now(TZ_BEIJING).strftime("%H%M%S") filename = date_str + "_digest_" + now_str + ".md" @@ -269,7 +271,8 @@ def run(memos_client, llm_client, date=None): prev_tags_line = None # Extract tags from previous digest frontmatter daily_root = get_output_dir("daily") - prev_dir = os.path.join(daily_root, prev_date.strftime("%Y-%m-%d")) + pd = prev_date.strftime("%Y-%m-%d").split("-") + prev_dir = os.path.join(daily_root, pd[0], pd[1], pd[2]) if os.path.isdir(prev_dir): prev_files = sorted([f for f in os.listdir(prev_dir) if f.endswith(".md")], reverse=True) if prev_files: @@ -328,7 +331,8 @@ def run(memos_client, llm_client, date=None): ) date_str = date.strftime("%Y-%m-%d") - daily_dir = os.path.join(get_output_dir("daily"), date_str) + parts = date_str.split("-") + daily_dir = os.path.join(get_output_dir("daily"), parts[0], parts[1], parts[2]) os.makedirs(daily_dir, exist_ok=True) now_str = datetime.now(TZ_BEIJING).strftime("%H%M%S") filename = date_str + "_digest_" + now_str + ".md" diff --git a/scripts/run_daily_digest.sh b/scripts/run_daily_digest.sh index 2022e1f..4356db6 100755 --- a/scripts/run_daily_digest.sh +++ b/scripts/run_daily_digest.sh @@ -14,20 +14,17 @@ echo "[$(date '+%Y-%m-%d %H:%M:%S')] Starting daily digest..." >> "$LOG_FILE" cd "$PROJECT_DIR" python3 analyzers/daily_digest.py >> "$LOG_FILE" 2>&1 -# Git push to Gitea +# Git sync: pull rebase first, then always push cd "$PROJECT_DIR" +git pull --rebase origin main >> "$LOG_FILE" 2>&1 || echo "WARNING: rebase failed, continuing..." >> "$LOG_FILE" -# 先拉取远程,避免分支分歧 -git pull --rebase origin main >> "$LOG_FILE" 2>&1 || true - -# Check if there are changes +# Check if anything to commit if [[ -n $(git status --porcelain ai-insights/) ]]; then git add ai-insights/ git commit -m "daily digest $(date '+%Y-%m-%d')" - git push origin main 2>&1 >> "$LOG_FILE" - echo "Pushed to Gitea" >> "$LOG_FILE" -else - echo "No changes to push" >> "$LOG_FILE" fi +# Always push (covers both new commits and rebased pending commits) +git push origin main >> "$LOG_FILE" 2>&1 && echo "Pushed to Gitea successfully" >> "$LOG_FILE" || echo "WARNING: push failed" >> "$LOG_FILE" + echo "[$(date '+%Y-%m-%d %H:%M:%S')] Daily digest done." >> "$LOG_FILE"