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