updated ipbl
This commit is contained in:
parent
32784ff442
commit
881969f81e
@ -7,6 +7,7 @@ import (
|
||||
"strings"
|
||||
|
||||
"git.paulbsd.com/paulbsd/ipbl/src/config"
|
||||
"github.com/labstack/echo/v4"
|
||||
)
|
||||
|
||||
//var ipv4_regex = `^(((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\.|$)){4})/`
|
||||
@ -91,14 +92,17 @@ func GetZMQ(cfg config.Config, key string) (res ZMQ, err error) {
|
||||
return
|
||||
}
|
||||
|
||||
func DiscoverURLS(cfg config.Config) (Discovery, error) {
|
||||
func DiscoverURLS(cfg config.Config, routes []*echo.Route) (Discovery, error) {
|
||||
var disc Discovery
|
||||
var urls []Url
|
||||
urls = append(urls, Url{Key: "auth", Path: "/auth"})
|
||||
urls = append(urls, Url{Key: "folders", Path: "/config/folders"})
|
||||
urls = append(urls, Url{Key: "trustlist", Path: "/config/trustlist"})
|
||||
urls = append(urls, Url{Key: "zmqrr", Path: "/config/zmqrr"})
|
||||
urls = append(urls, Url{Key: "zmqps", Path: "/config/zmqps"})
|
||||
var urls = make(map[string]Url)
|
||||
for _, j := range routes {
|
||||
if strings.Contains(j.Path, ":") || j.Path == "/" || j.Path == "/discovery" {
|
||||
continue
|
||||
}
|
||||
names := strings.Split(j.Path, "/")
|
||||
name := names[len(names)-1]
|
||||
urls[name] = Url{Key: name, Path: j.Path}
|
||||
}
|
||||
disc = Discovery{Version: "1.0", URLs: urls}
|
||||
return disc, nil
|
||||
}
|
||||
@ -130,8 +134,8 @@ type Cfg struct {
|
||||
}
|
||||
|
||||
type Discovery struct {
|
||||
Version string `json:"version"`
|
||||
URLs []Url `json:"urls"`
|
||||
Version string `json:"version"`
|
||||
URLs map[string]Url `json:"urls"`
|
||||
}
|
||||
|
||||
type Url struct {
|
||||
|
@ -12,7 +12,7 @@ import (
|
||||
"git.paulbsd.com/paulbsd/ipbl/src/config"
|
||||
)
|
||||
|
||||
var lastday = time.Now().Add(-(time.Hour * 24))
|
||||
//var lastday = time.Now().Add(-(time.Hour * 24))
|
||||
|
||||
func GetIPs(ctx *context.Context, config *config.Config, limit int) (apimailboxes []*api.IP, err error) {
|
||||
var ips []IP
|
||||
@ -25,7 +25,7 @@ func GetIPs(ctx *context.Context, config *config.Config, limit int) (apimailboxe
|
||||
|
||||
func GetIPsLast(ctx *context.Context, config *config.Config, interval string) (apimailboxes []*api.IP, err error) {
|
||||
var ips []IP
|
||||
err = config.Db.Where(fmt.Sprintf("updated >= (now()-'%s'::interval)", interval)).GroupBy("ip").Find(&ips)
|
||||
err = config.Db.Where("updated >= (now()-?::interval)", interval).GroupBy("ip").Find(&ips)
|
||||
for _, ml := range ips {
|
||||
apimailboxes = append(apimailboxes, ml.APIFormat())
|
||||
}
|
||||
@ -34,8 +34,8 @@ func GetIPsLast(ctx *context.Context, config *config.Config, interval string) (a
|
||||
|
||||
func GetIP(ctx *context.Context, config *config.Config, ipquery interface{}) (apiip *api.IP, err error) {
|
||||
var ip IP
|
||||
|
||||
if has, err := config.Db.Where("ip = ?", ipquery).Get(&ip); !has {
|
||||
has, err := config.Db.Where("ip = ?", ipquery).Get(&ip)
|
||||
if !has {
|
||||
err = fmt.Errorf("not found")
|
||||
return nil, err
|
||||
}
|
||||
|
@ -2,7 +2,7 @@ package models
|
||||
|
||||
import "reflect"
|
||||
|
||||
const keyname string = "id"
|
||||
//const keyname string = "id"
|
||||
|
||||
func differ(sl1 []IP, sl2 []IP) (toinsert []IP, err error) {
|
||||
var m = make(map[string]IPDiffer)
|
||||
|
@ -16,8 +16,8 @@ import (
|
||||
func RegisterRoutes(e *echo.Echo, ctx *context.Context, cfg *config.Config) {
|
||||
e.GET("/", func(c echo.Context) error {
|
||||
return c.HTML(http.StatusOK, `<html>
|
||||
<body style="background-color: black">
|
||||
<p style="color:trust">Welcome to ipbl software (<a href="https://git.paulbsd.com/paulbsd/ipbl">https://git.paulbsd.com/paulbsd/ipbl</a>)</p>
|
||||
<body>
|
||||
<p>Welcome to ipbl software (<a href="https://git.paulbsd.com/paulbsd/ipbl">https://git.paulbsd.com/paulbsd/ipbl</a>)</p>
|
||||
</body>
|
||||
</html>`)
|
||||
})
|
||||
@ -53,6 +53,9 @@ func RegisterRoutes(e *echo.Echo, ctx *context.Context, cfg *config.Config) {
|
||||
})
|
||||
e.GET("/ips/last", func(c echo.Context) (err error) {
|
||||
interval := "30 minutes"
|
||||
if c.QueryParam("interval") != "" {
|
||||
interval = c.QueryParam("interval")
|
||||
}
|
||||
ret, err := models.GetIPsLast(ctx, cfg, interval)
|
||||
return Result(c, err, ret)
|
||||
})
|
||||
@ -135,7 +138,7 @@ func RegisterRoutes(e *echo.Echo, ctx *context.Context, cfg *config.Config) {
|
||||
return Result(c, err, folders)
|
||||
})
|
||||
e.GET("/discovery", func(c echo.Context) (err error) {
|
||||
disc, err := models.DiscoverURLS(*cfg)
|
||||
disc, err := models.DiscoverURLS(*cfg, e.Routes())
|
||||
return Result(c, err, disc)
|
||||
})
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user