Add Mumble support (#1245)

This commit is contained in:
Sebastian P
2020-10-01 22:50:56 +02:00
committed by GitHub
parent e7781dc79c
commit 214a6a1386
61 changed files with 9409 additions and 0 deletions

45
vendor/layeh.com/gumble/gumbleutil/textmessage.go generated vendored Normal file
View File

@@ -0,0 +1,45 @@
package gumbleutil
import (
"bytes"
"encoding/xml"
"strings"
"layeh.com/gumble/gumble"
)
// PlainText returns the Message string without HTML tags or entities.
func PlainText(tm *gumble.TextMessage) string {
d := xml.NewDecoder(strings.NewReader(tm.Message))
d.Strict = false
d.AutoClose = xml.HTMLAutoClose
d.Entity = xml.HTMLEntity
var b bytes.Buffer
newline := false
for {
t, _ := d.Token()
if t == nil {
break
}
switch node := t.(type) {
case xml.CharData:
if len(node) > 0 {
b.Write(node)
newline = false
}
case xml.StartElement:
switch node.Name.Local {
case "address", "article", "aside", "audio", "blockquote", "canvas", "dd", "div", "dl", "fieldset", "figcaption", "figure", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "header", "hgroup", "hr", "noscript", "ol", "output", "p", "pre", "section", "table", "tfoot", "ul", "video":
if !newline {
b.WriteByte('\n')
newline = true
}
case "br":
b.WriteByte('\n')
newline = true
}
}
}
return b.String()
}