Refactor status filter
This commit is contained in:
parent
b8bab6fcf3
commit
03a1cd819a
|
@ -1,7 +1,6 @@
|
||||||
package renderer
|
package renderer
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
|
||||||
"io"
|
"io"
|
||||||
"regexp"
|
"regexp"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
@ -39,32 +38,28 @@ type TemplateData struct {
|
||||||
Ctx *Context
|
Ctx *Context
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func emojiHTML(e mastodon.Emoji, height string) string {
|
||||||
|
return `<img class="emoji" src="` + e.URL + `" alt=":` + e.ShortCode + `:" title=":` + e.ShortCode + `:" height="` + height + `"/>`
|
||||||
|
}
|
||||||
|
|
||||||
func emojiFilter(content string, emojis []mastodon.Emoji) string {
|
func emojiFilter(content string, emojis []mastodon.Emoji) string {
|
||||||
var replacements []string
|
var replacements []string
|
||||||
var r string
|
|
||||||
for _, e := range emojis {
|
for _, e := range emojis {
|
||||||
r = fmt.Sprintf("<img class=\"emoji\" src=\"%s\" alt=\":%s:\" title=\":%s:\" height=\"24\" />",
|
replacements = append(replacements, ":"+e.ShortCode+":", emojiHTML(e, "24"))
|
||||||
e.URL, e.ShortCode, e.ShortCode)
|
|
||||||
replacements = append(replacements, ":"+e.ShortCode+":", r)
|
|
||||||
}
|
}
|
||||||
return strings.NewReplacer(replacements...).Replace(content)
|
return strings.NewReplacer(replacements...).Replace(content)
|
||||||
}
|
}
|
||||||
|
|
||||||
var quoteRE = regexp.MustCompile("(?mU)(^|> *|\n)(>.*)(<br|$)")
|
var quoteRE = regexp.MustCompile("(?mU)(^|> *|\n)(>.*)(<br|$)")
|
||||||
|
|
||||||
func statusContentFilter(spoiler string, content string,
|
func statusContentFilter(spoiler, content string, emojis []mastodon.Emoji, mentions []mastodon.Mention) string {
|
||||||
emojis []mastodon.Emoji, mentions []mastodon.Mention) string {
|
|
||||||
|
|
||||||
var replacements []string
|
|
||||||
var r string
|
|
||||||
if len(spoiler) > 0 {
|
if len(spoiler) > 0 {
|
||||||
content = spoiler + "<br/>" + content
|
content = spoiler + "<br/>" + content
|
||||||
}
|
}
|
||||||
content = quoteRE.ReplaceAllString(content, "$1<span class=\"quote\">$2</span>$3")
|
content = quoteRE.ReplaceAllString(content, `$1<span class="quote">$2</span>$3`)
|
||||||
|
var replacements []string
|
||||||
for _, e := range emojis {
|
for _, e := range emojis {
|
||||||
r = fmt.Sprintf("<img class=\"emoji\" src=\"%s\" alt=\":%s:\" title=\":%s:\" height=\"32\" />",
|
replacements = append(replacements, ":"+e.ShortCode+":", emojiHTML(e, "32"))
|
||||||
e.URL, e.ShortCode, e.ShortCode)
|
|
||||||
replacements = append(replacements, ":"+e.ShortCode+":", r)
|
|
||||||
}
|
}
|
||||||
for _, m := range mentions {
|
for _, m := range mentions {
|
||||||
replacements = append(replacements, `"`+m.URL+`"`, `"/user/`+m.ID+`" title="@`+m.Acct+`"`)
|
replacements = append(replacements, `"`+m.URL+`"`, `"/user/`+m.ID+`" title="@`+m.Acct+`"`)
|
||||||
|
|
Loading…
Reference in New Issue