import { discordWebhook } from "https://esm.town/v/stevekrouse/discordWebhook";
import { fetchJSON } from "https://esm.town/v/stevekrouse/fetchJSON?v=41";
import process from "node:process";
let output = "**Hyderabad Weather Report**\n\n";
const accuweatherCityCode = "202190";
const getForecast = async () => {
const forecastData = await fetchJSON(
`http://dataservice.accuweather.com/forecasts/v1/daily/1day/${accuweatherCityCode}?apikey=${process.env.accuWeather}&details=true&metric=true`,
);
return forecastData.DailyForecasts[0];
};
let dailyForecast = await getForecast();
const maxTemp = dailyForecast.RealFeelTemperature.Maximum.Value;
const minTemp = dailyForecast.RealFeelTemperature.Minimum.Value;
const maxTempPhrase = dailyForecast.RealFeelTemperature.Maximum.Phrase;
const minTempPhrase = dailyForecast.RealFeelTemperature.Minimum.Phrase;
const dayShortPhrase = dailyForecast.Day.ShortPhrase;
output += `Day will be ${maxTempPhrase.toLowerCase()} with a high of **${maxTemp}°C**. ${dayShortPhrase}.\n`;
const uvIndex = dailyForecast.AirAndPollen.find(item => item.Name === "UVIndex").Value;
let uvRecommendation = "";
if (uvIndex >= 8) {
uvRecommendation = "SPF50+ sunscreen is advised!";
}
else if (uvIndex >= 5) {
uvRecommendation = "SPF30+ sunscreen is advised!";
}
output += `The UV index is ${uvIndex}. ${uvRecommendation}\n`;
const rainProbability = dailyForecast.Day.RainProbability;
let umbrellaRec = "";
if (rainProbability > 50) {
umbrellaRec = "☔️**Carry an umbrella!**";
}
output += `${rainProbability}% chance of rain today. ${umbrellaRec}\n`;
output += `Night will be ${minTempPhrase.toLowerCase()} with a low of **${minTemp}°C**.`;
export const discordWebhookWeatherHyd = discordWebhook({
url: process.env.HydGenHook,
content: output,
});
console.log(output);