diff --git a/commands/interaction/slash/utils/weather.js b/commands/interaction/slash/utils/weather.js index 2290f8e..daae1c9 100644 --- a/commands/interaction/slash/utils/weather.js +++ b/commands/interaction/slash/utils/weather.js @@ -23,18 +23,39 @@ function temperature(value, units){ return `${Math.floor(modifiers[units](value))}${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")} ` +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" + } +} - 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") +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")} ` + + 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 = []; 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(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")}` // Render weather alerts diff --git a/commands/message/utils/weather.js b/commands/message/utils/weather.js index fb35a8a..2ded8af 100644 --- a/commands/message/utils/weather.js +++ b/commands/message/utils/weather.js @@ -23,6 +23,23 @@ function temperature(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){ 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 = []; 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(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")}` // Render weather alerts