add air quality to weather

This commit is contained in:
bignutty 2024-08-28 20:46:34 +02:00
parent 92652f60cc
commit 8ad6d39cfa
2 changed files with 48 additions and 6 deletions

View file

@ -23,18 +23,39 @@ function temperature(value, units){
return `${Math.floor(modifiers[units](value))}${units}` return `${Math.floor(modifiers[units](value))}${units}`
} }
function renderWeatherCard(context, data, units){ function getUvIndex(value){
let description = `### ${weatherIcon(data.result.current.icon.id)} ${temperature(data.result.current.temperature.current, units)}${data.result.current.condition.label}\n\n${pill("Feels like")} ${smallPill(temperature(data.result.current.temperature.feels_like, units))} ${pill("Wind")} ` switch(i){
case i <= 2:
return "uv_index_0"
case i <= 5:
return "uv_index_1"
case i <= 7:
return "uv_index_2"
case i <= 10:
return "uv_index_3"
case i <= 11:
return "uv_index_4"
default:
return "question"
}
}
if(units == "°F") description += smallPill((data.result.current.wind.speed / 1.609).toFixed(2) + " mph") function renderWeatherCard(context, data, units){
else description += smallPill((data.result.current.wind.speed).toFixed(2) + " km/h") let description = `### ${weatherIcon(data.result.current.icon.id)} ${temperature(data.result.current.temperature.current, units)}${data.result.current.condition.label}\n\n${pill("Feels like")} ${smallPill(temperature(data.result.current.temperature.feels_like, units))} ${pill("Wind")} `
if(units == "°F") description += smallPill((data.result.current.wind.speed / 1.609).toFixed(2) + " mph")
else description += smallPill((data.result.current.wind.speed).toFixed(2) + " km/h")
let secondaryPills = []; let secondaryPills = [];
if(data.result.current.humidity > 0) secondaryPills.push(`${pill("Humidity")} ${smallPill(Math.floor(data.result.current.humidity * 100) + "%")}`) if(data.result.current.humidity > 0) secondaryPills.push(`${pill("Humidity")} ${smallPill(Math.floor(data.result.current.humidity * 100) + "%")}`)
if(data.result.current.uvindex > 0) secondaryPills.push(`${pill("UV Index")} ${smallPill(data.result.current.uvindex)}`) if(data.result.current.uvindex > 0) secondaryPills.push(`${iconPill(getUvIndex(data.result.uvindex), "UV Index")} ${smallPill(data.result.current.uvindex)}`)
if(secondaryPills.length >= 1) description += '\n' + secondaryPills.join(` `) if(secondaryPills.length >= 1) description += '\n' + secondaryPills.join(` `)
if(data.result.air_quality){
description += `\n${iconPill("air_quality_" + data.result.air_quality.type, "Air Quality")} ${smallPill(`${data.result.air_quality.label} (${data.result.air_quality.value})`)}`
}
description += `\n\n${iconPill("sun", "Sunrise")} ${timestamp(data.result.current.sun.sunrise, "t")} ${iconPill("moon", "Sunset")} ${timestamp(data.result.current.sun.sunset, "t")}` description += `\n\n${iconPill("sun", "Sunrise")} ${timestamp(data.result.current.sun.sunrise, "t")} ${iconPill("moon", "Sunset")} ${timestamp(data.result.current.sun.sunset, "t")}`
// Render weather alerts // Render weather alerts

View file

@ -23,6 +23,23 @@ function temperature(value, units){
return `${Math.floor(modifiers[units](value))}${units}` return `${Math.floor(modifiers[units](value))}${units}`
} }
function getUvIndex(value){
switch(i){
case i <= 2:
return "uv_index_0"
case i <= 5:
return "uv_index_1"
case i <= 7:
return "uv_index_2"
case i <= 10:
return "uv_index_3"
case i <= 11:
return "uv_index_4"
default:
return "question"
}
}
function renderWeatherCard(context, data, units){ function renderWeatherCard(context, data, units){
let description = `### ${weatherIcon(data.result.current.icon.id)} ${temperature(data.result.current.temperature.current, units)}${data.result.current.condition.label}\n\n${pill("Feels like")} ${smallPill(temperature(data.result.current.temperature.feels_like, units))} ${pill("Wind")} ` let description = `### ${weatherIcon(data.result.current.icon.id)} ${temperature(data.result.current.temperature.current, units)}${data.result.current.condition.label}\n\n${pill("Feels like")} ${smallPill(temperature(data.result.current.temperature.feels_like, units))} ${pill("Wind")} `
@ -31,10 +48,14 @@ function renderWeatherCard(context, data, units){
let secondaryPills = []; let secondaryPills = [];
if(data.result.current.humidity > 0) secondaryPills.push(`${pill("Humidity")} ${smallPill(Math.floor(data.result.current.humidity * 100) + "%")}`) if(data.result.current.humidity > 0) secondaryPills.push(`${pill("Humidity")} ${smallPill(Math.floor(data.result.current.humidity * 100) + "%")}`)
if(data.result.current.uvindex > 0) secondaryPills.push(`${pill("UV Index")} ${smallPill(data.result.current.uvindex)}`) if(data.result.current.uvindex > 0) secondaryPills.push(`${iconPill(getUvIndex(data.result.uvindex), "UV Index")} ${smallPill(data.result.current.uvindex)}`)
if(secondaryPills.length >= 1) description += '\n' + secondaryPills.join(` `) if(secondaryPills.length >= 1) description += '\n' + secondaryPills.join(` `)
if(data.result.air_quality){
description += `\n${iconPill("air_quality_" + data.result.air_quality.type, "Air Quality")} ${smallPill(`${data.result.air_quality.label} (${data.result.air_quality.value})`)}`
}
description += `\n\n${iconPill("sun", "Sunrise")} ${timestamp(data.result.current.sun.sunrise, "t")} ${iconPill("moon", "Sunset")} ${timestamp(data.result.current.sun.sunset, "t")}` description += `\n\n${iconPill("sun", "Sunrise")} ${timestamp(data.result.current.sun.sunrise, "t")} ${iconPill("moon", "Sunset")} ${timestamp(data.result.current.sun.sunset, "t")}`
// Render weather alerts // Render weather alerts