Ejemplo n.º 1
0
 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);
 }
Ejemplo n.º 2
0
 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);
 }
Ejemplo n.º 3
0
        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());
        }