public static DiscordEmbedBuilder AddToDiscordEmbed(this PartialWeatherData data, DiscordEmbedBuilder emb) { emb.AddField($"{StaticDiscordEmoji.Cloud} Condition", string.Join(", ", data.Weather.Select(w => w.Main)), inline: true); emb.AddField($"{StaticDiscordEmoji.Drops} Humidity", $"{data.Main.Humidity}%", inline: true); emb.AddField($"{StaticDiscordEmoji.Thermometer} Temperature", $"{data.Main.Temp:F1}°C", inline: true); emb.AddField($"{StaticDiscordEmoji.Thermometer} Min/Max Temp", $"{data.Main.TempMin:F1}°C / {data.Main.TempMax:F1}°C", inline: true); emb.AddField($"{StaticDiscordEmoji.Wind} Wind speed", data.Wind.Speed + " m/s", inline: true); emb.WithThumbnailUrl(WeatherService.GetWeatherIconUrl(data.Weather.FirstOrDefault())); emb.WithFooter("Powered by openweathermap.org"); return(emb); }
private LocalizedEmbedBuilder AddDataToEmbed(LocalizedEmbedBuilder emb, PartialWeatherData data) { emb.WithColor(this.ModuleColor); emb.AddLocalizedTitleField("str-w-condition", data.Weather.Select(w => w.Main).JoinWith(", "), inline: true, titleArgs: Emojis.Cloud); emb.AddLocalizedTitleField("str-w-humidity", $"{data.Main.Humidity}%", inline: true, titleArgs: Emojis.Drops); emb.AddLocalizedTitleField("str-w-temp", $"{data.Main.Temp:F1}°C", inline: true, titleArgs: Emojis.Thermometer); emb.AddLocalizedTitleField("str-w-temp-minmax", $"{data.Main.TempMin:F1}°C / {data.Main.TempMax:F1}°C", inline: true, titleArgs: Emojis.Thermometer); emb.AddLocalizedTitleField("str-w-wind", $"{data.Wind.Speed} m/s", inline: true, titleArgs: Emojis.Wind); emb.WithThumbnail(WeatherService.GetWeatherIconUrl(data.Weather[0])); emb.WithLocalizedFooter("fmt-powered-by", null, "openweathermap.org"); return(emb); }
public static IReadOnlyList <DiscordEmbedBuilder> ToDiscordEmbedBuilders(this Forecast forecast, int amount = 7) { var embeds = new List <DiscordEmbedBuilder>(); for (int i = 0; i < forecast.WeatherDataList.Count && i < amount; i++) { PartialWeatherData data = forecast.WeatherDataList[i]; DateTime date = DateTime.UtcNow.AddDays(i + 1); var emb = new DiscordEmbedBuilder { Title = $"Forecast for {date.DayOfWeek}, {date.Date.ToUniversalTime().ToShortDateString()}", Color = DiscordColor.Aquamarine }; emb.AddField($"{StaticDiscordEmoji.Globe} Location", $"[{forecast.City.Name + ", " + forecast.City.Country}]({WeatherService.GetCityUrl(forecast.City)})", inline: true); emb.AddField($"{StaticDiscordEmoji.Ruler} Coordinates", $"{forecast.City.Coord.Lat}, {forecast.City.Coord.Lon}", inline: true); emb = data.AddToDiscordEmbed(emb); embeds.Add(emb); } return(embeds.AsReadOnly()); }