基于网络上的版本修改的,找不到出处了。第一个摸索的lua脚本,调了很久。
主要修改:如果风速不大,就默认不显示,以及调整为了一些格式
local urlApi = 'http://..'
--这个urlApi去申请个免费的就可以了 然后打开对应的json数据修改
local menubar = hs.menubar.new()
local menuData = {}
local weaEmoji = {
lei = '️',
qing = '☀️',
shachen = '',
wu = '',
xue = '❄️',
yu = '',
yujiaxue = '',
yun = '☁️',
zhenyu = '',
yin = '⛅️',
default = ''
}
function updateMenubar()
menubar:setTooltip("Weather Info")
menubar:setMenu(menuData)
end
function getWeather()
hs.http.doAsyncRequest(urlApi, "GET", nil,nil, function(code, body, htable)
if code ~= 200 then
print('get weather error:'..code)
return
end
rawjson = hs.json.decode(body)
city = rawjson.city
menuData = {}
for k, v in pairs(rawjson.data) do
if k == 1 then
menubar:setTitle(weaEmoji[v.wea_img])
if v.win_speed == "<3级" then
titlestr = string.format("%s %s %s ️%s-%s°C", city,weaEmoji[v.wea_img], v.wea, v.tem_night, v.tem_day)
else
titlestr = string.format("%s %s ️%s-%s°C %s %s %s", city,weaEmoji[v.wea_img],v.tem_night, v.tem_day, v.win_speed, v.win, v.wea)
end
item = { title = titlestr }
table.insert(menuData, item)
table.insert(menuData, {title = '-'})
else
if v.win_speed == "<3级" then
titlestr = string.format("%s %s ️%s-%s°C %s", v.date, weaEmoji[v.wea_img], v.tem_night, v.tem_day, v.wea)
else
titlestr = string.format("%s %s ️%s-%s°C %s %s %s", v.date, weaEmoji[v.wea_img],v.tem_night, v.tem_day, v.win_speed, v.win, v.wea)
end
item = { title = titlestr }
table.insert(menuData, item)
end
end
updateMenubar()
end)
end
menubar:setTitle('')
getWeather()
updateMenubar()
hs.timer.doEvery(3000, getWeather)