Bots filter
This commit is contained in:
parent
f59b999899
commit
068ce0ca5e
|
@ -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
|
||||
},
|
||||
{
|
||||
|
|
16
database.go
16
database.go
|
@ -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(¶meters),
|
||||
request.buildRefFilter(¶meters),
|
||||
request.buildUseragentFilter(¶meters),
|
||||
request.buildBotFilter(¶meters),
|
||||
} {
|
||||
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
2
go.mod
|
@ -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
4
go.sum
|
@ -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=
|
||||
|
|
Reference in New Issue