From cee337168444afc967bb422ed70142dc16057a8a Mon Sep 17 00:00:00 2001 From: kefandaoren Date: Fri, 5 Sep 2025 17:09:29 +0800 Subject: [PATCH] vault backup: 2025-09-05 17:09:29 --- Calendar/Diary/2025-09-05.md | 40 +++++++++-------------- Extras/Template/Diary.md | 62 ++++++++++++++++++++++++++++-------- 2 files changed, 63 insertions(+), 39 deletions(-) diff --git a/Calendar/Diary/2025-09-05.md b/Calendar/Diary/2025-09-05.md index 7c31f765..3154a992 100644 --- a/Calendar/Diary/2025-09-05.md +++ b/Calendar/Diary/2025-09-05.md @@ -1,44 +1,34 @@ --- atlas: "[[DailyNote]]" -completed: 0 -created: <% tp.date.now("YYYY-MM-DD HH:mm:ss") %> +completed: 4 +created: 2025-09-05 16:54:16 incomplete: 3 -modified: +modified: 2025-09-05 17:04:11 tags: - DailyNote -title: <% tp.file.title %> -total: 3 +title: 2025-09-05 +total: 7 --- -<%* let url = 'https://www.tianqi.com/yuexiuqu/' -let res = await request({url: url,method: "GET"}); -res = res.replace(/\n/g,'') -let dqwd = /

(\d+)<\/b>℃<\/i><\/p>/.exec(res) -let tqwdfw = /(.*?)<\/b>(.*?)<\/span>/.exec(res) -let sdfxzwx = /

(.*?)<\/b>(.*?)<\/b>(.*?)<\/b><\/dd>/.exec(res) -let kqzlrcrl = /
(.*?)<\/h5>
(.*?)<\/h6>(.*?)
(.*?)<\/span><\/dd>/.exec(res) -let 天气 = '天气:' + tqwdfw[1] -let 温度范围 = '温度:' + tqwdfw[2] -let 湿度 = sdfxzwx[1] -let 风向 = sdfxzwx[2] -let 紫外线 = sdfxzwx[3] -let 空气质量 = kqzlrcrl[2] + ',' + kqzlrcrl[1] -let 日出日落 = kqzlrcrl[3] + ' ' +kqzlrcrl[4] -%> -> [!tip] << [[<% tp.date.now("YYYY-MM-DD", -1) %>]] | [[<% tp.date.now("YYYY-MM-DD", 1) %>]] >> -> <% 天气 %>,<% 温度范围 %>,<% 湿度 %>,<% 空气质量 %>
-> <% 风向 %>,<% 紫外线 %>,<% 日出日落 %> +> [!tip] << [[2025-09-04]] | [[2025-09-06]] >> +> 天气:多云,温度:35℃ / 29 ~ 35℃,湿度:53%,PM: 14,空气质量:优
+> 风向:东风 3级,紫外线:很弱,日出: 06:10 日落: 18:40 # 生活 -- [ ] <% tp.file.cursor() %> +- [ ] 更新账本 📅 2025-09-05 +- [ ] 安装货架 📅 2025-09-05 +- [x] 更新日记模板 📅 2025-09-05 ✅ 2025-09-05 +- [ ] 调整作息时间 📅 2025-09-05 # 学习 -- [ ] +- [x] 打卡扇贝阅读 📅 2025-09-05 ✅ 2025-09-05 # 工作 -- [ ] +- [x] 注册易行南航电子签约平台 📅 2025-09-05 ✅ 2025-09-05 +- [x] 申请退还易行国铁投标保证金 📅 2025-09-05 ✅ 2025-09-05 # 随笔 diff --git a/Extras/Template/Diary.md b/Extras/Template/Diary.md index 7c31f765..85560524 100644 --- a/Extras/Template/Diary.md +++ b/Extras/Template/Diary.md @@ -9,20 +9,54 @@ tags: title: <% tp.file.title %> total: 3 --- -<%* let url = 'https://www.tianqi.com/yuexiuqu/' -let res = await request({url: url,method: "GET"}); -res = res.replace(/\n/g,'') -let dqwd = /

(\d+)<\/b>℃<\/i><\/p>/.exec(res) -let tqwdfw = /(.*?)<\/b>(.*?)<\/span>/.exec(res) -let sdfxzwx = /

(.*?)<\/b>(.*?)<\/b>(.*?)<\/b><\/dd>/.exec(res) -let kqzlrcrl = /
(.*?)<\/h5>
(.*?)<\/h6>(.*?)
(.*?)<\/span><\/dd>/.exec(res) -let 天气 = '天气:' + tqwdfw[1] -let 温度范围 = '温度:' + tqwdfw[2] -let 湿度 = sdfxzwx[1] -let 风向 = sdfxzwx[2] -let 紫外线 = sdfxzwx[3] -let 空气质量 = kqzlrcrl[2] + ',' + kqzlrcrl[1] -let 日出日落 = kqzlrcrl[3] + ' ' +kqzlrcrl[4] -%> +<%* +/** 使用 Obsidian 的 requestUrl 绕过 CORS,并且所有正则结果都做了空值保护 **/ +const resp = await requestUrl ({ + url: ' https://www.tianqi.com/yuexiuqu/ ', + method: 'GET', + // 可选:有些站会根据 UA 返回不同内容 + headers: { 'user-agent': 'Mozilla/5.0 Obsidian-Templater' }, + throw: false, // 出错时不要直接抛异常 + contentType: null // 让它按文本处理 +}); + +if (! resp || resp. status >= 400) { + let 错误 = resp ? `HTTP ${resp. status}` : '无响应'; + let 提示 = `天气获取失败(${错误})`; + // 给下面的变量提供安全默认值,避免后续渲染时报错 + tR += ''; // 不输出提示到正文的话,保留空字符串 + var 天气 = 提示, 温度范围 = '', 湿度 = '', 风向 = '', 紫外线 = '', 空气质量 = '', 日出日落 = ''; +} else { + let html = String (resp. text || ''). replace (/\n/g, ''); + + // 正则执行+容错 + const mNow = /

(\d+)<\/b>℃<\/i><\/p>/. exec (html); + const mRange = /(.*?)<\/b>(.*?)<\/span>/. exec (html); + const mShidu = /

(.*?)<\/b>(.*?)<\/b>(.*?)<\/b><\/dd>/. exec (html); + const mKq = /
(.*?)<\/h5>
(.*?)<\/h6>(.*?)
((?:.|\s)*?)<\/span><\/dd>/. exec (html); + + // 安全取值 + const 当前温度 = mNow?.[1] ? `${mNow[1]}℃` : ''; + const 天气文本 = mRange?.[1] ?? ''; + const 温度段 = mRange?.[2] ?? ''; + const 湿度文本 = mShidu?.[1] ?? ''; + const 风向文本 = mShidu?.[2] ?? ''; + const 紫外线文本 = mShidu?.[3] ?? ''; + const 空气级别 = mKq?.[1] ?? ''; // 如优/良/轻度污染... + const 空气描述 = mKq?.[2] ?? ''; // 如 AQI 数值或说明 + const 日出 = mKq?.[3] ?? ''; + const 日落 = mKq?.[4]?.replace (/<.*?>/g, '') ?? ''; // 去掉可能的标签 + + // 暴露给下方模板使用的变量(沿用你的命名) + var 天气 = '天气:' + (天气文本 || '未知'); + var 温度范围 = '温度:' + ([当前温度, 温度段]. filter (Boolean). join (' / ') || '未知'); + var 湿度 = 湿度文本 || ''; + var 风向 = 风向文本 || ''; + var 紫外线 = 紫外线文本 || ''; + var 空气质量 = (空气描述 && 空气级别) ? `${空气描述},${空气级别}` : (空气描述 || 空气级别 || ''); + var 日出日落 = [日出, 日落]. filter (Boolean). join (' '); +} +-%> > [!tip] << [[<% tp.date.now("YYYY-MM-DD", -1) %>]] | [[<% tp.date.now("YYYY-MM-DD", 1) %>]] >> > <% 天气 %>,<% 温度范围 %>,<% 湿度 %>,<% 空气质量 %>