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()); }