代码:
let nl = /<dd class="week">(.*?)<\/dd>/. exec (res)
let 农历 = nl[1]
调用:
<% 农历 %>
试试,我这边能正常显示。如果有问题就坐等大佬解答吧,我只不过是依样画葫芦
代码:
let nl = /<dd class="week">(.*?)<\/dd>/. exec (res)
let 农历 = nl[1]
调用:
<% 农历 %>
试试,我这边能正常显示。如果有问题就坐等大佬解答吧,我只不过是依样画葫芦
可以可以,非常可以。谢谢大神!
搭配 templater 插件,放在模板文件里。一楼大佬回答蛮清楚的了。
分享一段我自用的 templater 脚本,可以实现位置自动获取,效果如图:
<%*
// 高德天气API,需要高德Key
let ipUrl = 'https://restapi.amap.com/v3/ip';
let weatherUrl = 'https://restapi.amap.com/v3/weather/weatherInfo'
let key = YOUR_KEY;
// 腾讯IP定位,需要腾讯Key
let tencentIpUrl = 'https://apis.map.qq.com/ws/location/v1/ip';
let tencentKey = YOUR_KEY;
let adcode = eval("(" + await request({url: tencentIpUrl + `?key=${tencentKey}`, method: "GET"}) + ")").result.ad_info.adcode
console.log("adcode: " + adcode)
let 位置 = ''
let 天气 = ''
let 温度 = ''
let 风向 = ''
await fetch(weatherUrl + `?key=${key}&city=${adcode}&extensions=all`)
.then(res => res.json())
.then((data) => {
let info = data.forecasts[0]
console.log("info:" + info)
位置 = info.province + '-' + info.city
天气 = '🌅' + info.casts[0].dayweather + ' / 🌃' + info.casts[0].nightweather
温度 = '🌅' + info.casts[0].daytemp_float + '℃' + '/ 🌃' + info.casts[0].nighttemp_float + '℃'
})
-%>
🌻日期🌻 :: <% tp.file.creation_date("YYYY MM DD dddd") %>
⌚️时间⌚️ :: <% tp.file.creation_date("HH:mm:ss") %>
🌍位置🌍 :: <% 位置 %>
☁️天气☁️ :: <% 天气 %>
🌡️温度🌡️ :: <% 温度 %>
template 插件自己写脚本,或用 weather 插件
感谢分享,不过尝试你的脚本失败,发现几个问题
let weatherUrl = 'https://restapi.amap.com/v3/weather/weatherInfo'
这个应该是高德地图的天气api,而不是注释的和风天气感谢您的反馈,注释错误已修正,能否给出第二点的错误信息,在我这里脚本是可以正常工作的
我的问题,之前的key是web端(js api),申请为 web服务才对。
没问题了,再次感谢分享。
我是在Android手机上使用Obsidian。通常这段代码都能正确获取天气信息。但是偶尔显示的却是前一天的天气信息, 并未正确获取网站上已经更新的天气信息。今天又这样了,很奇怪。
以前遇上过类似故障,莫名其妙就好了。这次故障已经持续一周了,同样的代码,电脑上正常,手机上总是获取的前一天的天气信息。搞不懂哦。
故障原因找到了,网页缓存的问题。
解决办法:GET请求URL后加随机数,让服务器认为不是相同的请求,将url: url 修改为url: url + new Date().getTime() 。
很尴尬,故障又出现了。添加随机数没解决问题。
现状:将URL后附加的参数从new date().gettime()修改为 tp.date.now(“YYYYMMDDHHmmss”) ,已连续五天都正常获取天气信息了。
是不是不能用了 直接复制显示报错哎
为啥这段代码时不时的就会报错无法运行啊,有时候又能用,求大佬解答
用腾讯地图出现不能本地访问地址的情况,用AI改了下代码,直接用高德,这个可以用。
<%*
// 高德 API Key(请替换为自己的)
let amapKey = "e9bdc5dedcc073b879f7142fcaa35a12";
// 高德 IP 定位 API
let ipUrl = `https://restapi.amap.com/v3/ip?key=${amapKey}`;
// 获取用户所在地区的 adcode
let ipResponse = await fetch(ipUrl);
let ipData = await ipResponse.json();
let adcode = ipData.adcode;
console.log("高德返回的 adcode:", adcode);
// 高德天气 API
let weatherUrl = `https://restapi.amap.com/v3/weather/weatherInfo?key=${amapKey}&city=${adcode}&extensions=all`;
let 位置 = "";
let 天气 = "";
let 温度 = "";
// 获取天气信息
await fetch(weatherUrl)
.then(res => res.json())
.then(data => {
let info = data.forecasts[0];
console.log("天气信息:", info);
位置 = info.province + '-' + info.city;
天气 = '🌅' + info.casts[0].dayweather + ' / 🌃' + info.casts[0].nightweather;
温度 = '🌅' + info.casts[0].daytemp + '℃' + ' / 🌃' + info.casts[0].nighttemp + '℃';
});
// 输出到 Obsidian Templater
-%>
🌻 **日期** :: <% tp.file.creation_date("YYYY MM DD dddd") %>
⌚️ **时间** :: <% tp.file.creation_date("HH:mm:ss") %>
🌍 **位置** :: <% 位置 %>
☁️ **天气** :: <% 天气 %>
🌡️ **温度** :: <% 温度 %>
感谢大佬,我摆置一天总于ok了
请问代码是放在哪里啊?
我直接到它复制粘贴到某个ob页面中。
然后在我的日记模板的yaml区写上:
农历: <% 农历 %>
没有效果啊。