public static Task <List <FashionReportEntry> > Get() { Settings settings = Settings.Load(); List <FashionReportEntry> results = new List <FashionReportEntry>(); if (settings.TwitterConsumerKey == null || settings.TwitterConsumerSecret == null || settings.TwitterToken == null || settings.TwitterTokenSecret == null) { return(Task.FromResult(results)); } TwitterService service = new TwitterService(settings.TwitterConsumerKey, settings.TwitterConsumerSecret); service.AuthenticateWith(settings.TwitterToken, settings.TwitterTokenSecret); if (service == null) { return(Task.FromResult(results)); } ListTweetsOnUserTimelineOptions op = new ListTweetsOnUserTimelineOptions { ScreenName = "@KaiyokoStar", IncludeRts = true, ExcludeReplies = true, }; IEnumerable <TwitterStatus> statuses = service.ListTweetsOnUserTimeline(op); foreach (TwitterStatus status in statuses) { if (status.Text == null) { continue; } if (!status.Text.Contains("Fashion Report Week")) { continue; } if (!status.Text.Contains("Full Details")) { continue; } FashionReportEntry entry = GetBaseEntry(status.RetweetedStatus ?? status); if (status.Entities != null && status.Entities.Media != null && status.Entities.Media.Count > 0) { entry.ImageUrl = status.Entities.Media[0].MediaUrl; } results.Add(entry); } return(Task.FromResult(results)); }
private Embed GetEmbed(FashionReportEntry entry) { EmbedBuilder builder = new EmbedBuilder(); builder.Author = new EmbedAuthorBuilder(); builder.Author.IconUrl = entry.AuthorImageUrl; builder.Author.Name = entry.Author; builder.ImageUrl = entry.ImageUrl; builder.Description = entry.Content; builder.Color = Color.Magenta; builder.Timestamp = entry.Time; return(builder.Build()); }
private async Task Post(FashionReportEntry entry) { Log.Write("Posting Fashion Report: " + entry.Content, "Bot"); string?channelIdStr = Settings.Load().FashionReportChannel; if (channelIdStr == null) { return; } ulong channelId = ulong.Parse(channelIdStr); SocketTextChannel channel = (SocketTextChannel)Program.DiscordClient.GetChannel(channelId); await channel.SendMessageAsync(null, false, this.GetEmbed(entry)); }
private Embed GetEmbed(FashionReportEntry entry) { EmbedBuilder builder = new EmbedBuilder { Author = new EmbedAuthorBuilder { IconUrl = entry.AuthorImageUrl, Name = entry.Author, }, ImageUrl = entry.ImageUrl, Description = entry.Content, Color = Color.Magenta, ////Timestamp = entry.Time, Footer = new EmbedFooterBuilder { IconUrl = "https://image.flaticon.com/icons/png/512/733/733579.png", Text = $"@{entry.Author} - Posted {(DateTime.Now - entry.Time).ToMediumString()} ago", }, }; return(builder.Build()); }
private async Task Post(FashionReportEntry entry) { Log.Write("Posting Fashion Report: " + entry.Content, "Bot"); foreach (SocketGuild guild in Program.DiscordClient.Guilds) { GuildSettings settings = await SettingsService.GetSettings <GuildSettings>(guild.Id); if (settings.FashionReportChannel == null) { continue; } ulong channelId = ulong.Parse(settings.FashionReportChannel); SocketTextChannel channel = (SocketTextChannel)Program.DiscordClient.GetChannel(channelId); if (channel == null) { continue; } await channel.SendMessageAsync(null, false, this.GetEmbed(entry)); } }