diff --git a/go.mod b/go.mod index 508d0be..8eb42a7 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,7 @@ module bloat require ( + github.com/enescakir/emoji v1.0.0 // indirect github.com/gorilla/mux v1.7.3 github.com/tomnomnom/linkheader v0.0.0-20180905144013-02ca5825eb80 ) diff --git a/go.sum b/go.sum index 3942d07..d6c8a57 100644 --- a/go.sum +++ b/go.sum @@ -1,3 +1,5 @@ +github.com/enescakir/emoji v1.0.0 h1:W+HsNql8swfCQFtioDGDHCHri8nudlK1n5p2rHCJoog= +github.com/enescakir/emoji v1.0.0/go.mod h1:Bt1EKuLnKDTYpLALApstIkAjdDrS/8IAgTkKp+WKFD0= github.com/gorilla/mux v1.7.3 h1:gnP5JzjVOuiZD07fKKToCAOjS0yOpj/qPETTXCCS6hw= github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= github.com/tomnomnom/linkheader v0.0.0-20180905144013-02ca5825eb80 h1:nrZ3ySNYwJbSpD6ce9duiP+QkD3JuLCcWkdaehUS/3Y= diff --git a/model/settings.go b/model/settings.go index 1f83c75..d515ef1 100644 --- a/model/settings.go +++ b/model/settings.go @@ -12,6 +12,7 @@ type Settings struct { DarkMode bool `json:"dark_mode"` AntiDopamineMode bool `json:"anti_dopamine_mode"` HideUnsupportedNotifs bool `json:"hide_unsupported_notifs"` + AddReactionsFilter string `json:"add_reactions_filter"` CSS string `json:"css"` } @@ -28,6 +29,7 @@ func NewSettings() *Settings { DarkMode: false, AntiDopamineMode: false, HideUnsupportedNotifs: false, + AddReactionsFilter: "", CSS: "", } } diff --git a/renderer/model.go b/renderer/model.go index f2ca3b7..688319b 100644 --- a/renderer/model.go +++ b/renderer/model.go @@ -14,6 +14,7 @@ type Context struct { CSRFToken string UserID string AntiDopamineMode bool + AddReactionsFilter string UserCSS string Referrer string } diff --git a/renderer/renderer.go b/renderer/renderer.go index 6b3901b..a4b69f8 100644 --- a/renderer/renderer.go +++ b/renderer/renderer.go @@ -43,8 +43,9 @@ type TemplateData struct { } -func allowed_emoji_page(emoj string, codes ...string) bool { - for _, code := range codes { +func allowed_emoji_page(emoj string, codes string) bool { + s := strings.Split(codes, " ") + for _, code := range s { if strings.Contains(emoj, code) { return true } diff --git a/service/service.go b/service/service.go index 6186dca..09bdc1a 100644 --- a/service/service.go +++ b/service/service.go @@ -66,6 +66,7 @@ func (s *service) authenticate(c *client, sid string, csrf string, ref string, t UserID: c.s.UserID, AntiDopamineMode: sett.AntiDopamineMode, UserCSS: sett.CSS, + AddReactionsFilter: sett.AddReactionsFilter, Referrer: ref, } }() diff --git a/service/transport.go b/service/transport.go index 1b0a34a..3741587 100644 --- a/service/transport.go +++ b/service/transport.go @@ -519,6 +519,7 @@ func NewHandler(s *service, logger *log.Logger, staticDir string) http.Handler { darkMode := c.r.FormValue("dark_mode") == "true" antiDopamineMode := c.r.FormValue("anti_dopamine_mode") == "true" hideUnsupportedNotifs := c.r.FormValue("hide_unsupported_notifs") == "true" + addReactionsFilter := c.r.FormValue("pleroma-reactions-filter") css := c.r.FormValue("css") settings := &model.Settings{ @@ -533,6 +534,7 @@ func NewHandler(s *service, logger *log.Logger, staticDir string) http.Handler { DarkMode: darkMode, AntiDopamineMode: antiDopamineMode, HideUnsupportedNotifs: hideUnsupportedNotifs, + AddReactionsFilter: addReactionsFilter, CSS: css, } diff --git a/templates/emoji.tmpl b/templates/emoji.tmpl index 3f38557..a5e953a 100644 --- a/templates/emoji.tmpl +++ b/templates/emoji.tmpl @@ -4,7 +4,7 @@