【LUA】mac状态栏添加天气

时间:2024-01-27 11:51:08
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)