Browse Source

Fix codeblocks in chat (#676)

* allowed codeblocks in chat (owncast#675)

* dont send empty chat messages back to frontend (owncast#675)
pull/678/head
Fabian Siegel 4 years ago committed by GitHub
parent
commit
4bfdf0e667
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 10
      core/chat/server.go
  2. 8
      models/chatMessage.go

10
core/chat/server.go

@ -117,11 +117,13 @@ func (s *server) Listen() { @@ -117,11 +117,13 @@ func (s *server) Listen() {
// and standardize this message into something safe we can send everyone else.
msg.RenderAndSanitizeMessageBody()
s.listener.MessageSent(msg)
s.sendAll(msg)
if !msg.Empty() {
s.listener.MessageSent(msg)
s.sendAll(msg)
// Store in the message history
addMessage(msg)
// Store in the message history
addMessage(msg)
}
case ping := <-s.pingCh:
fmt.Println("PING?", ping)

8
models/chatMessage.go

@ -38,6 +38,10 @@ func (m *ChatEvent) RenderAndSanitizeMessageBody() { @@ -38,6 +38,10 @@ func (m *ChatEvent) RenderAndSanitizeMessageBody() {
m.Body = RenderAndSanitize(raw)
}
func (m *ChatEvent) Empty() bool {
return m.Body == ""
}
// RenderAndSanitize will turn markdown into HTML, sanitize raw user-supplied HTML and standardize
// the message into something safe and renderable for clients.
func RenderAndSanitize(raw string) string {
@ -111,5 +115,9 @@ func sanitize(raw string) string { @@ -111,5 +115,9 @@ func sanitize(raw string) string {
// Allow emphasis
p.AllowElements("em")
// Allow code blocks
p.AllowElements("code")
p.AllowElements("pre")
return p.Sanitize(raw)
}

Loading…
Cancel
Save