Exemplo n.º 1
0
        static async Task Main(string[] args)
        {
            var url = Console.ReadLine();

            var webobj = new WebhookObject();

            webobj.AddEmbed(builder =>
            {
                builder.WithTitle("Discord-Webhook lib")
                .WithDescription("Building embed with 'AddEmbed(Action<EmbedBuilder> embedBuilderFunction)'")
                .WithUrl("https://github.com/ToshiroZ/Discord-Webhook")
                .WithThumbnail("https://upload.wikimedia.org/wikipedia/commons/thumb/6/6b/Font_Awesome_5_brands_discord_color.svg/800px-Font_Awesome_5_brands_discord_color.svg.png")
                .WithColor(Colors.Magenta)
                .WithImage("https://i.imgur.com/ZGPxFN2.jpg")
                .AddField("New Field", "This is a new field")
                .WithFooter("DiscordUser", "https://upload.wikimedia.org/wikipedia/commons/thumb/6/6b/Font_Awesome_5_brands_discord_color.svg/800px-Font_Awesome_5_brands_discord_color.svg.png");
            });

            webobj.AddEmbed(new EmbedBuilder()
                            .WithTitle("Discord-Webhook lib second message")
                            .WithDescription("Testing discord Webhook")
                            .WithColor(Colors.Orange)
                            );

            await new Webhook(url).SendAsync(webobj);
        }
        private static WebhookObject BuildBasicObject(LogEvent logEvent, IFormatProvider formatProvider)
        {
            var message = logEvent.RenderMessage(formatProvider);

            message = message?.Length > 1024 ? message.Substring(0, 1024) : message;

            var obj = new WebhookObject();

            obj.AddEmbed(builder =>
                         builder.WithTitle(GetLevelTitle(logEvent.Level))
                         .WithDescription(message)
                         .WithColor(GetColorFromLevel(logEvent.Level))
                         );

            return(obj);
        }
Exemplo n.º 3
0
        protected override void OnSendNotification(string title, string message, string testing)
        {
            if (!MainControl.DiscordCheckBox.Checked)
            {
                Logger.Write("UI: Discord Notifications are disabled!", LogLevel.Debug);
                return;
            }

            var username = MainControl.DiscordUsernameTextBox.Text;

            if (string.IsNullOrWhiteSpace(username))
            {
                Logger.Write("UI: Specify a Username for the Discord settings", LogLevel.Warn);
                return;
            }

            var webhookUrl = MainControl.DiscordWebhookTextBox.Text;

            if (string.IsNullOrWhiteSpace(webhookUrl))
            {
                Logger.Write("UI: Specify a valid Webhook URL for the Discord settings", LogLevel.Warn);
                return;
            }

            Logger.Write("UI: Sending Discord Notification...", LogLevel.Debug);

            var content = $"@{username} | {title}\n>>>>> {message}";

            if (!string.IsNullOrWhiteSpace(testing))
            {
                content += $" [{testing}]";
            }

            var webhook    = new Webhook(webhookUrl);
            var webHookObj = new WebhookObject
            {
                username = username,
                content  = content
            };

            webhook.PostData(webHookObj);

            Logger.Write("UI: Discord notification sent!", LogLevel.Debug);
        }
        private static WebhookObject BuildExceptionObject(LogEvent logEvent, IFormatProvider formatProvider)
        {
            var stackTrace = logEvent.Exception.StackTrace;

            stackTrace = FormatStackTrace(stackTrace);

            var obj = new WebhookObject();

            obj.AddEmbed(builder =>
                         builder.WithTitle("Error")
                         .WithDescription(logEvent.Exception.Message)
                         .WithColor(GetColorFromLevel(logEvent.Level))
                         .WithThumbnail("https://raw.githubusercontent.com/javis86/Serilog.Sinks.Discord/master/Resources/error.png")
                         .AddField("Type", logEvent.Exception.GetType().Name, true)
                         .AddField("TimeStamp", logEvent.Timestamp.ToString(), true)
                         .AddField("Message", logEvent.Exception.Message)
                         .AddField("StackTrace", stackTrace)
                         .AddFieldsRange(GetFieldsFromLogEventProperties(logEvent.Properties))
                         );

            return(obj);
        }