public DiscordEmbed Build(RoadsterInfo roadster)
        {
            var daysFromLaunch = (int)(DateTime.Now - _launchDate).TotalDays;

            var embedBuilder = new DiscordEmbedBuilder
            {
                Title       = roadster.Name,
                Description = $"{roadster.Details} [[Wikipedia]]({roadster.Wikipedia})",
                Color       = new DiscordColor(Constants.EmbedColor),
                ImageUrl    = StarmanImageUrl,
                Footer      = new DiscordEmbedBuilder.EmbedFooter {
                    Text = $"Roadster has been launched {daysFromLaunch} days ago."
                }
            };

            embedBuilder.AddField("Speed", $"{roadster.SpeedKph:# ### ###}  kph", true);
            embedBuilder.AddField("Period", $"{(int)roadster.PeriodDays} days", true);

            embedBuilder.AddField("Distance to Earth", $"{roadster.EarthDistanceKilometers:# ### ### ###} km", true);
            embedBuilder.AddField("Distance to Mars", $"{roadster.MarsDistanceKilometers:# ### ### ###} km", true);

            embedBuilder.AddField("Apoapsis", $"{roadster.ApoapsisAu:0.###} au = {roadster.ApoapsisAu * 149_597_871:# ### ### ###} km", true);
            embedBuilder.AddField("Periapsis", $"{roadster.PeriapsisAu:0.###} au = {roadster.PeriapsisAu * 149_597_871:# ### ### ###} km", true);

            embedBuilder.AddField("Inclination", $"{roadster.Inclination:0.###}", true);
            embedBuilder.AddField("Eccentricity", $"{roadster.Eccentricity:0.###}", true);

            embedBuilder.AddField("Longitude", $"{roadster.Longitude:0.###}", true);
            embedBuilder.AddField("Semi-major axis", $"{roadster.SemiMajorAxisAu:0.###}", true);

            return(embedBuilder);
        }
        public static EmbedBuilder DiscordEmbed(this RoadsterInfo roadster, Random rng)
        {
            var embed = new EmbedBuilder()
                        .WithTitle($"NORAD:{roadster.NoradId}")
                        .WithDescription($"{roadster.Name} was put into space {roadster.DateTimeUtc!.Humanize()}.")
                        .WithUrl(roadster.Wikipedia)
                        .WithFooter("🚀 https://github.com/r-spacex/SpaceX-API");

            if (roadster.SpeedKph.HasValue)
            {
                embed.AddField("Speed", $"{roadster.SpeedKph}Kph", true);
            }

            embed.AddField("Orbit", roadster.OrbitType, true);

            if (roadster.PeriodDays.HasValue)
            {
                embed.AddField("Period", roadster.PeriodDays.Value.Days().Humanize(), true);
            }

            if (roadster.EarthDistanceKilometers.HasValue)
            {
                embed.AddField("Distance From Earth", $"{(int)roadster.EarthDistanceKilometers:#,##0}Km", true);
            }

            if (roadster.MarsDistanceKilometers.HasValue)
            {
                embed.AddField("Distance From Mars", $"{(int)roadster.MarsDistanceKilometers:#,##0}Km", true);
            }

            if (roadster.EarthDistanceKilometers.HasValue && roadster.MarsDistanceKilometers.HasValue)
            {
                embed.WithColor(roadster.EarthDistanceKilometers.Value < roadster.MarsDistanceKilometers.Value ? Color.Blue : Color.Red);
            }

            if (roadster.FlickrImages.Count > 0)
            {
                embed.WithImageUrl(roadster.FlickrImages.Random(rng));
            }

            return(embed);
        }
Example #3
0
 public OddityRoadsterInfo(RoadsterInfo info)
 {
     _info = info;
 }