public static DiscordEmbed CreateInstagramEmbed(InstaMedia m, BotConfigFile_SocialAccount user)
        {
            DiscordEmbedBuilder builder = new DiscordEmbedBuilder();

            builder.Title = $"Instagram Post by {user.screen_name}";
            if (m.Caption != null)
            {
                builder.Description = m.Caption.Text;
            }
            builder.Url = $"https://www.instagram.com/p/{m.Code}/";

            builder.Color = DiscordColor.Grayple;

            if (m.MediaType == InstaMediaType.Carousel)
            {
                //Use carousel
                builder.ImageUrl = m.Carousel[0].Images[0].Uri;
            }
            else
            {
                //Use legacy
                builder.ImageUrl = m.Images[0].Uri;
            }

            builder.Author = new DiscordEmbedBuilder.EmbedAuthor
            {
                IconUrl = m.User.ProfilePicture,
                Url     = $"https://instagram.com/{m.User.UserName}/",
                Name    = $"@{m.User.UserName}"
            };

            builder.Footer = new DiscordEmbedBuilder.EmbedFooter
            {
                Text    = Program.FOOTER_TEXT,
                IconUrl = "https://romanport.com/static/nerd_bot/twitter.png"
            };

            builder.Timestamp = m.TakenAt;

            return(builder.Build());
        }
        public static DiscordEmbed CreateYouTubeEmbed(YouTubePost post, BotConfigFile_SocialAccount account)
        {
            //Build
            DiscordEmbedBuilder builder = new DiscordEmbedBuilder();

            builder.Title       = "New Video - " + post.snippet.title;
            builder.Url         = $"https://youtube.com/watch?v={post.id.videoId}";
            builder.Color       = DiscordColor.Red;
            builder.Description = post.snippet.description;
            builder.ImageUrl    = post.snippet.thumbnails.high.url;
            builder.Author      = new DiscordEmbedBuilder.EmbedAuthor
            {
                Name = account.screen_name
            };
            builder.Footer = new DiscordEmbedBuilder.EmbedFooter
            {
                Text    = Program.FOOTER_TEXT,
                IconUrl = "https://romanport.com/static/nerd_bot/twitter.png?v=2"
            };
            builder.Timestamp = post.snippet.publishedAt;
            return(builder.Build());
        }
        public static async Task <YouTubePost[]> FetchChannel(BotConfigFile_SocialAccount account)
        {
            //The YouTube API is simple. Thank god. This is how everything should be.
            string url = $"https://www.googleapis.com/youtube/v3/search?key={Program.config.youtube_auth}&channelId={account.username}&part=snippet,id&order=date&maxResults=20";
            YouTubePostContainer response;

            using (WebClient hc = new WebClient())
            {
                string reply = hc.DownloadString(url);
                response = JsonConvert.DeserializeObject <YouTubePostContainer>(reply);
            }

            //Now, just filter this to videos
            List <YouTubePost> posts = new List <YouTubePost>();

            foreach (var p in response.items)
            {
                if (p.kind == "youtube#searchResult" && p.id.kind == "youtube#video")
                {
                    posts.Add(p);
                }
            }
            return(posts.ToArray());
        }
        public static DiscordEmbed CreateTwitterEmbed(TwitterPost post)
        {
            //Try and find the social account for this
            BotConfigFile_SocialAccount account = null;
            var foundAccounts = Program.config.social_pages.Where(x => x.username.ToLower() == post.user.screen_name.ToLower());

            if (foundAccounts.Count() == 1)
            {
                account = foundAccounts.First();
            }
            else
            {
                account = new BotConfigFile_SocialAccount
                {
                    screen_name = post.user.name,
                    platform    = BotConfigFile_SocialAccountType.Twitter,
                    username    = post.user.screen_name
                }
            };     //Create dummy

            //Build
            DiscordEmbedBuilder builder = new DiscordEmbedBuilder();

            if (post.in_reply_to_status_id == null)
            {
                //Original tweet
                builder.Title       = $"Twitter Post by {account.screen_name}";
                builder.Description = post.text;
            }
            else
            {
                //Reply to a tweet
                builder.Title       = $"Twitter Reply by {account.screen_name}";
                builder.Description = $"*(In [reply]({ $"https://twitter.com/{post.in_reply_to_screen_name}/status/{post.in_reply_to_status_id}" }) to @{post.in_reply_to_screen_name})*\n" + post.text;
            }

            builder.Url   = $"https://twitter.com/{post.user.screen_name}/status/{post.id.ToString()}";
            builder.Color = new DiscordColor("#48AAE6");

            if (post.extended_entities != null)
            {
                if (post.extended_entities.media != null)
                {
                    if (post.extended_entities.media.Length >= 1)
                    {
                        var media = post.extended_entities.media[0];
                        builder.ImageUrl = media.media_url_https;
                    }
                }
            }

            builder.Author = new DiscordEmbedBuilder.EmbedAuthor
            {
                IconUrl = post.user.profile_image_url_https,
                Name    = "@" + post.user.screen_name,
                Url     = $"https://twitter.com/{post.user.screen_name}"
            };

            builder.Footer = new DiscordEmbedBuilder.EmbedFooter
            {
                Text    = Program.FOOTER_TEXT,
                IconUrl = "https://romanport.com/static/nerd_bot/twitter.png"
            };

            return(builder.Build());
        }