コード例 #1
0
        private async void ProcessPayload(string payload)
        {
            try {
                GitHubWebHookData ghdata = JsonConvert.DeserializeObject <GitHubWebHookData>(payload);

                if (ghdata.action == "released")
                {
                    EmbedBuilder eb = null;
                    eb = new EmbedBuilder {
                        Color = new Color((uint)EmbedColor.SalmonPink)
                    };
                    eb.WithAuthor("I've heard some great news!");
                    eb.WithThumbnailUrl(ghdata.repository.html_url + "/raw/master/thumbnail.png");
                    eb.WithTitle(ghdata.release.name);
                    eb.WithUrl(ghdata.release.html_url);
                    eb.WithDescription("There is a new version of Miharu Available!");

                    List <string> tags = new List <string>();
                    tags.Add("Miharu");

                    await DiscordAPIHelper.PublishNews(eb, _databaseManager, _discordSocketClient, tags.ToArray());
                }
            }
            catch (Exception e) {
                Logger.LogError("Error processing GitHub release payload: " + e.Message);
            }
        }
コード例 #2
0
        private async void OnRSSUpdateAsync(object sender, RSSUpdateEventArgs e)
        {
            EmbedBuilder eb = new EmbedBuilder {
                Color = new Color((uint)EmbedColor.SalmonPink)
            };

            eb.WithAuthor("I've heard some great news!");
            eb.WithTitle(e.Update.Title.Text);
            eb.WithUrl(e.Update.Id);
            eb.WithFooter($"There is a new chapter available to read!");

            int    idIndex  = e.Feed.Id.LastIndexOf("/") + 1;
            int    id       = -1;
            string imageUrl = null;

            if (int.TryParse(e.Feed.Id.Substring(idIndex), out id))
            {
                imageUrl = $"https://mangadex.org/images/manga/{id}.";
            }
            if (imageUrl != null)
            {
                if (DoesImageExist(ref imageUrl))
                {
                    eb.WithImageUrl(imageUrl);
                }
            }

            await DiscordAPIHelper.PublishNews(eb, _databaseManager, _discordSocketClient, e.Feed.Tag);
        }
コード例 #3
0
        private async void ProcessPayload(string payload)
        {
            try {
                EmbedData embedData = JsonConvert.DeserializeObject <EmbedData>(payload);

                EmbedBuilder eb = null;
                eb = new EmbedBuilder {
                    Color = new Color(embedData.Color ?? (uint)EmbedColor.SalmonPink)
                };
                eb.Title       = embedData.Title;
                eb.Description = embedData.Description;
                eb.Url         = embedData.URL;
                eb.ImageUrl    = embedData.IconURL;
                if (embedData.Author != null && embedData.Author != "")
                {
                    eb.WithAuthor(embedData.Author, embedData.AuthorIconURL, embedData.AuthorURL);
                }
                if (embedData.Fields != null)
                {
                    foreach (EmbedFieldData efdata in embedData.Fields)
                    {
                        if ((efdata.Name ?? "") != "" && (efdata.Value ?? "") != "")
                        {
                            eb.AddField(efdata.Name, efdata.Value, efdata.Inline);
                        }
                    }
                }
                if ((embedData.Footer ?? "") != "")
                {
                    eb.WithFooter(embedData.Footer, embedData.FooterIcon);
                }

                List <string> tags = new List <string>();
                foreach (string tag in embedData.Tags)
                {
                    tags.Add(tag);
                }

                await DiscordAPIHelper.PublishNews(eb, _databaseManager, _discordSocketClient, tags.ToArray());
            }
            catch (Exception e) {
                Logger.LogError("Error processing " + Prefix + " payload: " + e.Message);
            }
        }