diff --git a/go.mod b/go.mod index f14e1e6..46af015 100644 --- a/go.mod +++ b/go.mod @@ -20,7 +20,7 @@ require ( github.com/invopop/jsonschema v0.8.0 github.com/jmoiron/sqlx v1.3.5 github.com/kelseyhightower/envconfig v1.4.0 - github.com/larksuite/oapi-sdk-go/v3 v3.0.29 + github.com/larksuite/oapi-sdk-go/v3 v3.1.4 github.com/lib/pq v1.10.9 github.com/miekg/dns v1.1.56 github.com/mitchellh/mapstructure v1.5.0 diff --git a/go.sum b/go.sum index 3adaf0e..fa451ae 100644 --- a/go.sum +++ b/go.sum @@ -330,6 +330,8 @@ github.com/labbsr0x/bindman-dns-webhook v1.0.2/go.mod h1:p6b+VCXIR8NYKpDr8/dg1HK github.com/labbsr0x/goh v1.0.1/go.mod h1:8K2UhVoaWXcCU7Lxoa2omWnC8gyW8px7/lmO61c027w= github.com/larksuite/oapi-sdk-go/v3 v3.0.29 h1:WLBeOkUh8emL9wYUZ49CbWjGMkjCxQoNavbLRYYMu+A= github.com/larksuite/oapi-sdk-go/v3 v3.0.29/go.mod h1:FKi8vBgtkBt/xNRQUwdWvoDmsPh7/wP75Sn5IBIBQLk= +github.com/larksuite/oapi-sdk-go/v3 v3.1.4 h1:qrCvFILeYufB1SudY2KOs1iqSw+x1EsY4NhC41i0cUE= +github.com/larksuite/oapi-sdk-go/v3 v3.1.4/go.mod h1:F4MLXkfdc/7WAJPLy4lJ0R6VqCxKgqWYS1uYY84p3SI= github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= diff --git a/internal/modules/lark/lark.go b/internal/modules/lark/lark.go index ffeb765..7bd105b 100644 --- a/internal/modules/lark/lark.go +++ b/internal/modules/lark/lark.go @@ -10,7 +10,6 @@ import ( "net/http" "net/url" "strconv" - "strings" "sync" "time" @@ -29,7 +28,6 @@ import ( "github.com/russtone/sonar/internal/database" "github.com/russtone/sonar/internal/database/models" "github.com/russtone/sonar/internal/templates" - "github.com/russtone/sonar/internal/utils/errors" ) type Lark struct { @@ -86,6 +84,7 @@ func New(cfg *Config, db *database.DB, tlsConfig *tls.Config, acts actions.Actio templates.HTMLEscape(false), templates.Markup( templates.Bold("**", "**"), + templates.CodeBlock("```", "```"), ), ), // Disable markup for notification header. @@ -193,7 +192,7 @@ func (lrk *Lark) Start() error { if err := lrk.db.UsersCreate(user); err != nil { // TODO: logging - lrk.mdMessage(*userID, msgID, "internal error") + lrk.message(*userID, msgID, "internal error") return nil } } @@ -219,33 +218,17 @@ func (lrk *Lark) Start() error { return err } - if res.ResultID() == actions.EventsGetResultID { - lines := strings.SplitN(s, "\n", 2) - lrk.cardMessage("", msgID, []*larkcard.MessageCardField{ - larkcard.NewMessageCardField(). - Text(larkcard.NewMessageCardLarkMd(). - Content(lines[0] + "\n"). - Build()). - Build(), - larkcard.NewMessageCardField(). - Text(larkcard.NewMessageCardPlainText(). - Content(lines[1]). - Build()). - Build(), - }) - } else { - lrk.mdMessage("", msgID, s) - } + lrk.message("", msgID, s) return nil }) if stdout != "" { - lrk.txtMessage("", msgID, stdout) + lrk.message("", msgID, stdout) } if stderr != "" { - lrk.txtMessage("", msgID, stderr) + lrk.message("", msgID, stderr) } return nil @@ -272,47 +255,20 @@ func (lrk *Lark) Start() error { } } -func (lrk *Lark) handleError(userID string, msgID *string, err errors.Error) { - lrk.txtMessage(userID, msgID, err.Error()) -} - -func (lrk *Lark) txtMessage(userID string, msgID *string, txt string) { - lrk.cardMessage(userID, msgID, []*larkcard.MessageCardField{ - larkcard.NewMessageCardField(). - Text(larkcard.NewMessageCardPlainText(). - Content(txt). - Build(), - ). - Build(), - }) -} - -func (lrk *Lark) mdMessage(userID string, msgID *string, md string) { - lrk.cardMessage(userID, msgID, []*larkcard.MessageCardField{ - larkcard.NewMessageCardField(). - Text(larkcard.NewMessageCardLarkMd(). - Content(md). - Build(), - ). - Build(), - }) -} - -func (lrk *Lark) cardMessage(userID string, msgID *string, fields []*larkcard.MessageCardField) { +func (lrk *Lark) message(userID string, msgID *string, content string) { config := larkcard.NewMessageCardConfig(). WideScreenMode(true). EnableForward(true). UpdateMulti(false). Build() - // Elements - div := larkcard.NewMessageCardDiv(). - Fields(fields). + md := larkcard.NewMessageCardMarkdown(). + Content(content). Build() card := larkcard.NewMessageCard(). Config(config). - Elements([]larkcard.MessageCardElement{div}). + Elements([]larkcard.MessageCardElement{md}). Build() content, err := card.String() diff --git a/internal/modules/lark/notifier.go b/internal/modules/lark/notifier.go index 1384fb1..9c16712 100644 --- a/internal/modules/lark/notifier.go +++ b/internal/modules/lark/notifier.go @@ -55,19 +55,14 @@ func (lrk *Lark) Notify(n *modules.Notification) error { if utf8.ValidString(body) { // Elements - div := larkcard.NewMessageCardDiv(). - Fields([]*larkcard.MessageCardField{larkcard.NewMessageCardField(). - Text(larkcard.NewMessageCardPlainText(). - Content(body). - Build()). - IsShort(true). - Build()}). + md := larkcard.NewMessageCardMarkdown(). + Content(body). Build() card := larkcard.NewMessageCard(). Config(config). Header(cardHeader). - Elements([]larkcard.MessageCardElement{div}). + Elements([]larkcard.MessageCardElement{md}). Build() content, err := card.String() diff --git a/internal/templates/content.go b/internal/templates/content.go index b916fa1..1c2808b 100644 --- a/internal/templates/content.go +++ b/internal/templates/content.go @@ -110,7 +110,9 @@ var event = ` var eventsGet = event + ` -
{{ $e.RW | b64dec }}
` +
+{{ $e.RW | b64dec }}
+
` var eventsList = fmt.Sprintf(` {{- range . -}}