From 421a8aa1f74a8c3904ae9f3448957865fddf5843 Mon Sep 17 00:00:00 2001 From: yangxiangyuan Date: Sun, 19 Jul 2026 20:45:41 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E7=9F=A5=E8=B5=84?= =?UTF-8?q?=E6=9C=AD=E8=AE=B0=E5=B7=A5=E5=85=B7=E5=8F=8A=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 新增知资札记完整站点:包含首页、详情页、管理后台 2. 添加站点图标、鉴权配置与后端API鉴权逻辑 3. 在市场页面新增知资札记入口跳转 4. 新增经典乡村音乐播放列表文件 5. 临时添加养生谚语批量导入脚本 --- .../debug/insert_health_proverbs.js | 108 +++ .../debug/insert_health_proverbs_server.js | 144 ++++ public/icons/zhizi_notes.svg | 4 + public/tools/markets/index.html | 5 +- public/tools/markets/markets.js | 24 +- .../tools/zen_box/country_top50_playlist.json | 182 +++++ public/tools/zhizi_notes/admin.css | 245 ++++++ public/tools/zhizi_notes/admin.html | 104 +++ public/tools/zhizi_notes/admin.js | 696 ++++++++++++++++++ public/tools/zhizi_notes/auth_config.json | 15 + public/tools/zhizi_notes/detail.css | 96 +++ public/tools/zhizi_notes/detail.html | 79 ++ public/tools/zhizi_notes/detail.js | 224 ++++++ public/tools/zhizi_notes/index.html | 147 ++++ public/tools/zhizi_notes/zhizi_notes.css | 416 +++++++++++ public/tools/zhizi_notes/zhizi_notes.js | 594 +++++++++++++++ .../skills/email_sender/email.db-shm | Bin 32768 -> 32768 bytes .../skills/email_sender/email.db-wal | Bin 745752 -> 1017672 bytes src/server/index.js | 165 +++++ src/server/zhizi_notes.js | 518 +++++++++++++ 20 files changed, 3752 insertions(+), 14 deletions(-) create mode 100644 dev_test_scripts/debug/insert_health_proverbs.js create mode 100644 dev_test_scripts/debug/insert_health_proverbs_server.js create mode 100644 public/icons/zhizi_notes.svg create mode 100644 public/tools/zen_box/country_top50_playlist.json create mode 100644 public/tools/zhizi_notes/admin.css create mode 100644 public/tools/zhizi_notes/admin.html create mode 100644 public/tools/zhizi_notes/admin.js create mode 100644 public/tools/zhizi_notes/auth_config.json create mode 100644 public/tools/zhizi_notes/detail.css create mode 100644 public/tools/zhizi_notes/detail.html create mode 100644 public/tools/zhizi_notes/detail.js create mode 100644 public/tools/zhizi_notes/index.html create mode 100644 public/tools/zhizi_notes/zhizi_notes.css create mode 100644 public/tools/zhizi_notes/zhizi_notes.js create mode 100644 src/server/zhizi_notes.js diff --git a/dev_test_scripts/debug/insert_health_proverbs.js b/dev_test_scripts/debug/insert_health_proverbs.js new file mode 100644 index 0000000..93291fe --- /dev/null +++ b/dev_test_scripts/debug/insert_health_proverbs.js @@ -0,0 +1,108 @@ +/** + * 养生谚语批量插入日历提醒库 + * 用法:在 calendar_reminder 页面的浏览器控制台粘贴执行 + * 规则:61条谚语,每天1条,循环推送,截至2027-03-31 + */ +(function () { + const proverbs = [ + { text: "早不酒,晚不茶", note: "早晨饮酒伤胃,晚上饮茶影响睡眠。" }, + { text: "睡前泡脚,胜吃补药", note: "泡脚促进血液循环,帮助入睡,比吃补品还有效。" }, + { text: "春捂秋冻,无病无痛", note: "春天别急着减衣,秋天别急着加衣,让身体适应季节变化。" }, + { text: "五谷加大枣,胜吃灵芝草", note: "粗粮配大枣,营养全面,比名贵药材更养人。" }, + { text: "头要凉,脚要暖,肚子要不满", note: "头部宜清凉,脚部宜保暖,吃饭七分饱最健康。" }, + { text: "春三月,早卧早起;夏三月,夜卧早起秋三月,早卧早起;冬三月,早卧晚起", note: "顺应四季作息规律,春夏养阳、秋冬养阴。" }, + { text: "出汗不迎风,跑步莫凹胸", note: "出汗后避风防感冒,跑步挺胸护心肺。" }, + { text: "大蒜是个宝,常吃身体好", note: "大蒜杀菌消炎,增强免疫力。" }, + { text: "寒从脚上起,病从口中入", note: "脚部受凉易生病,饮食不洁是百病之源。" }, + { text: "三分医,七分养,十分防", note: "治病三分靠医,七分靠养,十分靠预防。" }, + { text: "中午睡眼好,犹如捡个宝", note: "午间小憩恢复精力,胜过任何补品。" }, + { text: "汗水没干,冷水莫沾", note: "运动出汗后毛孔张开,喝冷水易伤脾胃。" }, + { text: "三天不吃青,两眼冒金星", note: "不吃蔬菜会缺乏维生素,导致头晕眼花。" }, + { text: "吃米带点糖,营养又健康", note: "米饭中加少许糖,补充能量又开胃。" }, + { text: "若要人不失眠,煮粥加白莲", note: "白莲(莲子)安神助眠,煮粥食用效果佳。" }, + { text: "一日三笑,人生难老", note: "乐观爱笑的人心态年轻,衰老更慢。" }, + { text: "粗粮养人,粗活益身", note: "吃粗粮、干粗活,身体更结实。" }, + { text: "臭鱼烂虾,索命冤家", note: "不新鲜的鱼虾含有毒素,吃了伤身。" }, + { text: "夏天一碗绿豆汤,解毒去暑赛仙方", note: "绿豆汤清热解毒,是夏日最佳饮品。" }, + { text: "三天吃一只羊,不如洗脚再上床", note: "睡前泡脚比吃补品更能养生。" }, + { text: "食服常温一体皆春", note: "饮食温度适宜,身体四季如春。" }, + { text: "吃药不忌嘴,跑断医生腿", note: "服药期间不忌口,药效大打折扣。" }, + { text: "宁可食无肉,不可饭无汤", note: "饭前喝汤养胃,比吃肉更重要。" }, + { text: "汗水未干,冷水莫沾", note: "与第12条同义,强调运动后忌冷水。" }, + { text: "吃面多喝汤,胜似开药方", note: "面汤助消化,养胃健脾。" }, + { text: "养生在勤,养心在静", note: "身体要勤运动,心灵要静修养。" }, + { text: "核桃山中宝,补肾又健脑", note: "核桃富含不饱和脂肪酸,补脑益肾。" }, + { text: "喝了空腹茶,疾病身上爬", note: "空腹喝茶伤胃,容易引起胃部不适。" }, + { text: "多喝凉白开,健康自然来", note: "白开水是最好的饮料,促进新陈代谢。" }, + { text: "喝茶不洗杯,阎王把命催", note: "茶杯不清洗会滋生细菌,危害健康。" }, + { text: "多吃咸盐,少活十年", note: "高盐饮食导致高血压,缩短寿命。" }, + { text: "尽量少喝酒,病魔绕道走", note: "适量饮酒或戒酒,远离肝病和心脑血管疾病。" }, + { text: "晚饭少吃口,活到九十九", note: "晚餐七分饱,减轻肠胃负担,延年益寿。" }, + { text: "一日三脑,不老也老", note: "过度用脑不休息,加速衰老。应劳逸结合。" }, + { text: "萝卜出了地,郎中没生意", note: "萝卜消食化滞,常吃萝卜少生病。" }, + { text: "饱不洗头,饿不洗澡", note: "吃饱洗头影响消化,空腹洗澡易头晕。" }, + { text: "夏不睡石,秋不睡板。春不露脐,冬不蒙头", note: "夏天别睡石头地,秋天别睡硬板;春天护肚脐,冬天别蒙头睡。" }, + { text: "宁可锅中存放,不让肚子饱胀", note: "饭菜宁可留着下顿吃,也不要一次吃撑。" }, + { text: "饱食即卧,乃生百病", note: "吃饱就躺下,食物不消化,百病丛生。" }, + { text: "早起不在鸡鸣前,晚起不在日出后", note: "作息顺应自然,不早于鸡鸣,不晚于日出。" }, + { text: "春夏养阳,秋冬养阴", note: "中医养生核心:春夏补阳气,秋冬养阴精。" }, + { text: "宁可无肉,不可无豆", note: "豆类富含植物蛋白,比肉类更健康。" }, + { text: "一日两苹果,毛病绕道过", note: "苹果富含维生素和纤维,每天两个保健康。" }, + { text: "冠心病,吃银杏", note: "银杏叶提取物有助于改善心血管循环。" }, + { text: "吃鲜橙,防卒中", note: "橙子富含维C和钾,有助于预防中风。" }, + { text: "吃西柚,防血稠", note: "西柚(葡萄柚)有助于降低血液黏稠度。" }, + { text: "蘑菇餐,防血栓", note: "蘑菇含多糖体,有助于预防血栓形成。" }, + { text: "日出后,晨练宜,空气新鲜利身体", note: "太阳出来后再晨练,避开清晨浊气。" }, + { text: "齿常叩,舌常转,生津开胃齿固坚", note: "叩齿转舌是传统养生法,促进唾液分泌,坚固牙齿。" }, + { text: "年轻不养生,老来养医生", note: "年轻时不注重养生,老了只能靠医生。" }, + { text: "睡前洗脚,胜吃补药", note: "与第2条同义,强调睡前泡脚的重要性。" }, + { text: "常饮菊花茶,老来不眼花", note: "菊花清肝明目,长期饮用保护视力。" }, + { text: "百步走,活到九十九", note: "饭后散步百步,助消化、延年益寿。" }, + { text: "晨吃三片姜,如喝人参汤", note: "生姜温胃散寒,早晨吃姜胜过补品。" }, + { text: "屋有七叶一枝花,毒蛇绕着不进家", note: "七叶一枝花(重楼)是草药,也有驱蛇之效。" }, + { text: "生瓜梨枣,多吃不好", note: "生冷瓜果吃多伤脾胃,宜适量。" }, + { text: "春不露肚脐,冬不遮过头", note: "春天护好肚脐防受凉,冬天别戴太厚的帽子捂过头。" }, + { text: "睡觉不开灯,早起头不晕", note: "开灯睡觉影响睡眠质量,导致晨起头晕。" }, + { text: "女子三日不断藕,男子三日不断姜", note: "藕养血适合女性,姜温阳适合男性。" }, + { text: "烟熏火燎,不吃为好", note: "烧烤烟熏食物含致癌物,应尽量少吃。" }, + { text: "若要百病不生,常带饥饿三分", note: "吃饭留三分饥饿感,不过饱,是养生最高境界。" } + ]; + + const startDate = new Date('2026-07-17T00:00:00.000Z'); // 北京时间 08:00 + const endDate = new Date('2027-03-31T00:00:00.000Z'); + const title = "每日一念,养生谚语"; + + const totalDays = Math.floor((endDate - startDate) / 86400000) + 1; + console.log("共生成 " + totalDays + " 条记录,循环 " + Math.floor(totalDays / 61) + " 轮余 " + (totalDays % 61) + " 条"); + + let count = 0; + const promises = []; + + for (let d = new Date(startDate); d <= endDate; d.setUTCDate(d.getUTCDate() + 1)) { + const dayIndex = Math.floor((d - startDate) / 86400000); + const p = proverbs[dayIndex % 61]; + const content = p.text + "\n======================\n" + p.note; + + // end: 每天北京时间 17:00 = UTC 09:00 + const endD = new Date(d); + endD.setUTCHours(9, 0, 0, 0); + + const ev = Models.createEvent({ + title: title, + content: content, + start: d.toISOString(), + end: endD.toISOString(), + allDay: false, + remindAt: d.toISOString() + }); + + promises.push(DB.addEvent(ev)); + count++; + } + + Promise.all(promises).then(function () { + console.log("插入完成,共 " + count + " 条养生谚语记录"); + }).catch(function (err) { + console.error("插入失败:", err); + }); +})(); diff --git a/dev_test_scripts/debug/insert_health_proverbs_server.js b/dev_test_scripts/debug/insert_health_proverbs_server.js new file mode 100644 index 0000000..055aa92 --- /dev/null +++ b/dev_test_scripts/debug/insert_health_proverbs_server.js @@ -0,0 +1,144 @@ +/** + * 养生谚语批量插入日历提醒服务器 SQLite 数据库 + * 规则:61条谚语,每天1条,循环推送,截至2027-03-31 + * 执行:node dev_test_scripts/debug/insert_health_proverbs_server.js + */ +const Database = require('better-sqlite3'); +const path = require('path'); +const crypto = require('crypto'); + +const DB_PATH = path.join(process.cwd(), 'data', 'calendar_reminder.db'); +const db = new Database(DB_PATH); +db.pragma('journal_mode = WAL'); + +const proverbs = [ + { text: "早不酒,晚不茶", note: "早晨饮酒伤胃,晚上饮茶影响睡眠。" }, + { text: "睡前泡脚,胜吃补药", note: "泡脚促进血液循环,帮助入睡,比吃补品还有效。" }, + { text: "春捂秋冻,无病无痛", note: "春天别急着减衣,秋天别急着加衣,让身体适应季节变化。" }, + { text: "五谷加大枣,胜吃灵芝草", note: "粗粮配大枣,营养全面,比名贵药材更养人。" }, + { text: "头要凉,脚要暖,肚子要不满", note: "头部宜清凉,脚部宜保暖,吃饭七分饱最健康。" }, + { text: "春三月,早卧早起;夏三月,夜卧早起秋三月,早卧早起;冬三月,早卧晚起", note: "顺应四季作息规律,春夏养阳、秋冬养阴。" }, + { text: "出汗不迎风,跑步莫凹胸", note: "出汗后避风防感冒,跑步挺胸护心肺。" }, + { text: "大蒜是个宝,常吃身体好", note: "大蒜杀菌消炎,增强免疫力。" }, + { text: "寒从脚上起,病从口中入", note: "脚部受凉易生病,饮食不洁是百病之源。" }, + { text: "三分医,七分养,十分防", note: "治病三分靠医,七分靠养,十分靠预防。" }, + { text: "中午睡眼好,犹如捡个宝", note: "午间小憩恢复精力,胜过任何补品。" }, + { text: "汗水没干,冷水莫沾", note: "运动出汗后毛孔张开,喝冷水易伤脾胃。" }, + { text: "三天不吃青,两眼冒金星", note: "不吃蔬菜会缺乏维生素,导致头晕眼花。" }, + { text: "吃米带点糖,营养又健康", note: "米饭中加少许糖,补充能量又开胃。" }, + { text: "若要人不失眠,煮粥加白莲", note: "白莲(莲子)安神助眠,煮粥食用效果佳。" }, + { text: "一日三笑,人生难老", note: "乐观爱笑的人心态年轻,衰老更慢。" }, + { text: "粗粮养人,粗活益身", note: "吃粗粮、干粗活,身体更结实。" }, + { text: "臭鱼烂虾,索命冤家", note: "不新鲜的鱼虾含有毒素,吃了伤身。" }, + { text: "夏天一碗绿豆汤,解毒去暑赛仙方", note: "绿豆汤清热解毒,是夏日最佳饮品。" }, + { text: "三天吃一只羊,不如洗脚再上床", note: "睡前泡脚比吃补品更能养生。" }, + { text: "食服常温一体皆春", note: "饮食温度适宜,身体四季如春。" }, + { text: "吃药不忌嘴,跑断医生腿", note: "服药期间不忌口,药效大打折扣。" }, + { text: "宁可食无肉,不可饭无汤", note: "饭前喝汤养胃,比吃肉更重要。" }, + { text: "汗水未干,冷水莫沾", note: "与第12条同义,强调运动后忌冷水。" }, + { text: "吃面多喝汤,胜似开药方", note: "面汤助消化,养胃健脾。" }, + { text: "养生在勤,养心在静", note: "身体要勤运动,心灵要静修养。" }, + { text: "核桃山中宝,补肾又健脑", note: "核桃富含不饱和脂肪酸,补脑益肾。" }, + { text: "喝了空腹茶,疾病身上爬", note: "空腹喝茶伤胃,容易引起胃部不适。" }, + { text: "多喝凉白开,健康自然来", note: "白开水是最好的饮料,促进新陈代谢。" }, + { text: "喝茶不洗杯,阎王把命催", note: "茶杯不清洗会滋生细菌,危害健康。" }, + { text: "多吃咸盐,少活十年", note: "高盐饮食导致高血压,缩短寿命。" }, + { text: "尽量少喝酒,病魔绕道走", note: "适量饮酒或戒酒,远离肝病和心脑血管疾病。" }, + { text: "晚饭少吃口,活到九十九", note: "晚餐七分饱,减轻肠胃负担,延年益寿。" }, + { text: "一日三脑,不老也老", note: "过度用脑不休息,加速衰老。应劳逸结合。" }, + { text: "萝卜出了地,郎中没生意", note: "萝卜消食化滞,常吃萝卜少生病。" }, + { text: "饱不洗头,饿不洗澡", note: "吃饱洗头影响消化,空腹洗澡易头晕。" }, + { text: "夏不睡石,秋不睡板。春不露脐,冬不蒙头", note: "夏天别睡石头地,秋天别睡硬板;春天护肚脐,冬天别蒙头睡。" }, + { text: "宁可锅中存放,不让肚子饱胀", note: "饭菜宁可留着下顿吃,也不要一次吃撑。" }, + { text: "饱食即卧,乃生百病", note: "吃饱就躺下,食物不消化,百病丛生。" }, + { text: "早起不在鸡鸣前,晚起不在日出后", note: "作息顺应自然,不早于鸡鸣,不晚于日出。" }, + { text: "春夏养阳,秋冬养阴", note: "中医养生核心:春夏补阳气,秋冬养阴精。" }, + { text: "宁可无肉,不可无豆", note: "豆类富含植物蛋白,比肉类更健康。" }, + { text: "一日两苹果,毛病绕道过", note: "苹果富含维生素和纤维,每天两个保健康。" }, + { text: "冠心病,吃银杏", note: "银杏叶提取物有助于改善心血管循环。" }, + { text: "吃鲜橙,防卒中", note: "橙子富含维C和钾,有助于预防中风。" }, + { text: "吃西柚,防血稠", note: "西柚(葡萄柚)有助于降低血液黏稠度。" }, + { text: "蘑菇餐,防血栓", note: "蘑菇含多糖体,有助于预防血栓形成。" }, + { text: "日出后,晨练宜,空气新鲜利身体", note: "太阳出来后再晨练,避开清晨浊气。" }, + { text: "齿常叩,舌常转,生津开胃齿固坚", note: "叩齿转舌是传统养生法,促进唾液分泌,坚固牙齿。" }, + { text: "年轻不养生,老来养医生", note: "年轻时不注重养生,老了只能靠医生。" }, + { text: "睡前洗脚,胜吃补药", note: "与第2条同义,强调睡前泡脚的重要性。" }, + { text: "常饮菊花茶,老来不眼花", note: "菊花清肝明目,长期饮用保护视力。" }, + { text: "百步走,活到九十九", note: "饭后散步百步,助消化、延年益寿。" }, + { text: "晨吃三片姜,如喝人参汤", note: "生姜温胃散寒,早晨吃姜胜过补品。" }, + { text: "屋有七叶一枝花,毒蛇绕着不进家", note: "七叶一枝花(重楼)是草药,也有驱蛇之效。" }, + { text: "生瓜梨枣,多吃不好", note: "生冷瓜果吃多伤脾胃,宜适量。" }, + { text: "春不露肚脐,冬不遮过头", note: "春天护好肚脐防受凉,冬天别戴太厚的帽子捂过头。" }, + { text: "睡觉不开灯,早起头不晕", note: "开灯睡觉影响睡眠质量,导致晨起头晕。" }, + { text: "女子三日不断藕,男子三日不断姜", note: "藕养血适合女性,姜温阳适合男性。" }, + { text: "烟熏火燎,不吃为好", note: "烧烤烟熏食物含致癌物,应尽量少吃。" }, + { text: "若要百病不生,常带饥饿三分", note: "吃饭留三分饥饿感,不过饱,是养生最高境界。" } +]; + +const title = "每日一念,养生谚语"; +const startDate = new Date('2026-07-17T00:00:00.000Z'); // 北京时间 08:00 = UTC 00:00 +const endDate = new Date('2027-03-31T00:00:00.000Z'); + +const totalDays = Math.floor((endDate - startDate) / 86400000) + 1; +console.log("共生成 " + totalDays + " 条记录,循环 " + Math.floor(totalDays / 61) + " 轮余 " + (totalDays % 61) + " 条"); + +// 检查是否已有养生谚语记录 +const existingCount = db.prepare("SELECT COUNT(*) as cnt FROM events WHERE title = ?").get(title).cnt; +if (existingCount > 0) { + console.log("数据库中已有 " + existingCount + " 条养生谚语记录,先删除旧数据..."); + db.prepare("DELETE FROM events WHERE title = ?").run(title); +} + +const stmt = db.prepare(`INSERT INTO events + (id, title, content, start, end, allDay, remindAt, recurrence, createdAt, updatedAt, completed, deleted) + VALUES (@id, @title, @content, @start, @end, @allDay, @remindAt, @recurrence, @createdAt, @updatedAt, @completed, @deleted)`); + +const insertMany = db.transaction((records) => { + for (const r of records) stmt.run(r); +}); + +const records = []; +let count = 0; + +for (let d = new Date(startDate); d <= endDate; d.setUTCDate(d.getUTCDate() + 1)) { + const dayIndex = Math.floor((d - startDate) / 86400000); + const p = proverbs[dayIndex % 61]; + const content = p.text + "\n======================\n" + p.note; + + // end: 每天北京时间 17:00 = UTC 09:00 + const endD = new Date(d); + endD.setUTCHours(9, 0, 0, 0); + + const now = new Date().toISOString(); + records.push({ + id: crypto.randomUUID(), + title: title, + content: content, + start: d.toISOString(), + end: endD.toISOString(), + allDay: 0, + remindAt: d.toISOString(), + recurrence: null, + createdAt: now, + updatedAt: now, + completed: 0, + deleted: 0 + }); + count++; +} + +insertMany(records); +console.log("插入完成,共 " + count + " 条养生谚语记录到服务器数据库"); + +// 验证 +const verifyCount = db.prepare("SELECT COUNT(*) as cnt FROM events WHERE title = ?").get(title).cnt; +console.log("验证:数据库中现有 " + verifyCount + " 条养生谚语记录"); + +const todayRecord = db.prepare("SELECT * FROM events WHERE title = ? AND start LIKE ?").get(title, '2026-07-17%'); +if (todayRecord) { + console.log("今天(07-17)的记录:", todayRecord.title, "-", todayRecord.content.substring(0, 40)); +} else { + console.log("警告:未找到今天的记录!"); +} + +db.close(); diff --git a/public/icons/zhizi_notes.svg b/public/icons/zhizi_notes.svg new file mode 100644 index 0000000..f474a1a --- /dev/null +++ b/public/icons/zhizi_notes.svg @@ -0,0 +1,4 @@ + + + 札 + \ No newline at end of file diff --git a/public/tools/markets/index.html b/public/tools/markets/index.html index 0ffecde..8e1e84c 100644 --- a/public/tools/markets/index.html +++ b/public/tools/markets/index.html @@ -25,6 +25,7 @@ + @@ -125,9 +126,7 @@ - +