jlelse
/
kis3
Archived
1
Fork 0

Bots filter

This commit is contained in:
Jan-Lukas Else 2019-08-02 19:32:34 +02:00
parent f59b999899
commit 068ce0ca5e
5 changed files with 22 additions and 7 deletions

View File

@ -94,6 +94,8 @@ The following filters are available:
`ua`: filter user agents containing the string provided, so `Firefox` filters out all user agents that don't contain `Firefox`
`bots`: filter out bots (`0`) or show only bots (`1`)
`ordercol`: column to use for ordering, `first` for the data groups, `second` for the view counts
`order`: select whether to use ascending order (`ASC`) or descending order (`DESC`)
@ -120,7 +122,7 @@ KISSS has a feature that can send you daily reports. It basically requests the s
// Email configuration
"name": "Daily stats from KISSS",
"time": "15:00",
"query": "view=pages&ordercol=second&order=desc",
"query": "view=pages&bots=0&ordercol=second&order=desc",
"from": "myemailaddress@mydomain.tld",
"to": "myemailaddress@mydomain.tld"
},
@ -129,7 +131,7 @@ KISSS has a feature that can send you daily reports. It basically requests the s
"name": "Daily stats from KISSS",
"type": "telegram", // Add this for Telegram
"time": "15:00",
"query": "view=pages&ordercol=second&order=desc",
"query": "view=pages&bots=0&ordercol=second&order=desc",
"tgUserId": 123456
},
{

View File

@ -105,6 +105,7 @@ type ViewsRequest struct {
ordercol string
order string
limit string
bots string
}
type RequestResultRow struct {
@ -214,6 +215,7 @@ func (request *ViewsRequest) buildFilter() (filters string, parameters []sql.Nam
request.buildUrlFilter(&parameters),
request.buildRefFilter(&parameters),
request.buildUseragentFilter(&parameters),
request.buildBotFilter(&parameters),
} {
if len(filter) > 0 {
allFilters = append(allFilters, filter)
@ -269,10 +271,20 @@ func (request *ViewsRequest) buildRefFilter(namedArg *[]sql.NamedArg) (refFilter
return
}
func (request *ViewsRequest) buildUseragentFilter(namedArg *[]sql.NamedArg) (refFilter string) {
func (request *ViewsRequest) buildUseragentFilter(namedArg *[]sql.NamedArg) (uaFilter string) {
if len(request.ua) > 0 {
*namedArg = append(*namedArg, sql.Named("ua", "%"+request.ua+"%"))
refFilter = "useragent like :ua"
uaFilter = "useragent like :ua"
}
return
}
func (request *ViewsRequest) buildBotFilter(namedArg *[]sql.NamedArg) (botFilter string) {
if len(request.bots) > 0 {
if request.bots == "0" || request.bots == "1" {
*namedArg = append(*namedArg, sql.Named("bot", request.bots))
}
botFilter = "bot like :bot"
}
return
}

2
go.mod
View File

@ -20,7 +20,7 @@ require (
github.com/whiteshtef/clockwork v0.0.0-20190417075149-ecf7d9abe8ec
github.com/ziutek/mymysql v1.5.4 // indirect
golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4 // indirect
golang.org/x/sys v0.0.0-20190712062909-fae7ac547cb7 // indirect
golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3 // indirect
google.golang.org/appengine v1.6.1 // indirect
gopkg.in/gorp.v1 v1.7.2 // indirect
)

4
go.sum
View File

@ -111,8 +111,8 @@ golang.org/x/sys v0.0.0-20190515120540-06a5c4944438 h1:khxRGsvPk4n2y8I/mLLjp7e5d
golang.org/x/sys v0.0.0-20190515120540-06a5c4944438/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190606165138-5da285871e9c h1:+EXw7AwNOKzPFXMZ1yNjO40aWCh3PIquJB2fYlv9wcs=
golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190712062909-fae7ac547cb7 h1:LepdCS8Gf/MVejFIt8lsiexZATdoGVyp5bcyS+rYoUI=
golang.org/x/sys v0.0.0-20190712062909-fae7ac547cb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3 h1:4y9KwBHBgBNwDbtu44R5o1fdOCQUEXhbk/P4A9WmJq0=
golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=

View File

@ -81,6 +81,7 @@ func doRequest(queries url.Values) (result []*RequestResultRow, e error) {
ordercol: strings.ToLower(queries.Get("ordercol")),
order: strings.ToUpper(queries.Get("order")),
limit: queries.Get("limit"),
bots: queries.Get("bots"),
})
return
}