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