mirror of
https://github.com/superseriousbusiness/gotosocial
synced 2025-06-05 21:59:39 +02:00
Timeline manager (#40)
* start messing about with timeline manager * i have no idea what i'm doing * i continue to not know what i'm doing * it's coming along * bit more progress * update timeline with new posts as they come in * lint and fmt * Select accounts where empty string * restructure a bunch, get unfaves working * moving stuff around * federate status deletes properly * mention regex better but not 100% there * fix regex * some more hacking away at the timeline code phew * fix up some little things * i can't even * more timeline stuff * move to ulid * fiddley * some lil fixes for kibou compatibility * timelines working pretty alright! * tidy + lint
This commit is contained in:
@ -23,20 +23,24 @@ import (
|
||||
"strings"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
// UserAgentBlock is a middleware that prevents google chrome cohort tracking by
|
||||
// writing the Permissions-Policy header after all other parts of the request have been completed.
|
||||
// See: https://plausible.io/blog/google-floc
|
||||
// UserAgentBlock blocks requests with undesired, empty, or invalid user-agent strings.
|
||||
func (m *Module) UserAgentBlock(c *gin.Context) {
|
||||
l := m.log.WithFields(logrus.Fields{
|
||||
"func": "UserAgentBlock",
|
||||
})
|
||||
|
||||
ua := c.Request.UserAgent()
|
||||
if ua == "" {
|
||||
l.Debug("aborting request because there's no user-agent set")
|
||||
c.AbortWithStatus(http.StatusTeapot)
|
||||
return
|
||||
}
|
||||
|
||||
if strings.Contains(strings.ToLower(c.Request.UserAgent()), strings.ToLower("friendica")) {
|
||||
if strings.Contains(strings.ToLower(ua), strings.ToLower("friendica")) {
|
||||
l.Debugf("aborting request with user-agent %s because it contains 'friendica'", ua)
|
||||
c.AbortWithStatus(http.StatusTeapot)
|
||||
return
|
||||
}
|
||||
|
Reference in New Issue
Block a user