diff options
Diffstat (limited to 'route')
-rw-r--r-- | route/routes/admin.go | 39 | ||||
-rw-r--r-- | route/routes/api.go | 2 | ||||
-rw-r--r-- | route/structs.go | 1 | ||||
-rw-r--r-- | route/util.go | 7 |
4 files changed, 44 insertions, 5 deletions
diff --git a/route/routes/admin.go b/route/routes/admin.go index 1576a3a..a2b4ad5 100644 --- a/route/routes/admin.go +++ b/route/routes/admin.go @@ -6,6 +6,8 @@ import ( "errors" "io/ioutil" "net/http" + "regexp" + "sort" "time" "github.com/FChannel0/FChannel-Server/activitypub" @@ -119,6 +121,24 @@ func AdminIndex(ctx *fiber.Ctx) error { var adminData route.AdminPage adminData.Following = following adminData.Followers = followers + + var reported = make(map[string][]db.Reports) + + for _, e := range following { + re := regexp.MustCompile(`.*/(.+)$`) + boards := re.FindStringSubmatch(e) + reports, _ := db.GetLocalReport(boards[1]) + + for _, k := range reports { + reported[k.Actor.Name] = append(reported[k.Actor.Name], k) + } + } + + for k, e := range reported { + sort.Sort(db.ReportsSortDesc(e)) + reported[k] = e + } + adminData.Actor = actor.Id adminData.Key = config.Key adminData.Domain = config.Domain @@ -140,7 +160,8 @@ func AdminIndex(ctx *fiber.Ctx) error { adminData.Themes = &config.Themes return ctx.Render("admin", fiber.Map{ - "page": adminData, + "page": adminData, + "reports": reported, }, "layouts/main") } @@ -248,10 +269,21 @@ func AdminActorIndex(ctx *fiber.Ctx) error { data.Following = following data.Followers = followers - data.Reported, _ = db.GetLocalReport(actor.Name) + + reports, _ := db.GetLocalReport(actor.Name) + + var reported = make(map[string][]db.Reports) + for _, k := range reports { + reported[k.Actor.Name] = append(reported[k.Actor.Name], k) + } + + for k, e := range reported { + sort.Sort(db.ReportsSortDesc(e)) + reported[k] = e + } + data.Domain = config.Domain data.IsLocal, _ = actor.IsLocal() - data.Title = "Manage /" + actor.Name + "/" data.Boards = webfinger.Boards data.Board.Name = actor.Name @@ -286,6 +318,7 @@ func AdminActorIndex(ctx *fiber.Ctx) error { return ctx.Render("manage", fiber.Map{ "page": data, "jannies": jannies, + "reports": reported, }, "layouts/main") } diff --git a/route/routes/api.go b/route/routes/api.go index 49c2623..70607e9 100644 --- a/route/routes/api.go +++ b/route/routes/api.go @@ -30,7 +30,7 @@ func RouteImages(ctx *fiber.Ctx, media string) error { resp, err := client.Do(req) if err != nil { - return util.MakeError(err, "RouteImages") + return nil } defer resp.Body.Close() diff --git a/route/structs.go b/route/structs.go index 601943c..17deb25 100644 --- a/route/structs.go +++ b/route/structs.go @@ -38,7 +38,6 @@ type AdminPage struct { Boards []webfinger.Board Following []string Followers []string - Reported map[string]db.Reports Domain string IsLocal bool PostBlacklist []util.PostBlacklist diff --git a/route/util.go b/route/util.go index 131cf5a..74926b4 100644 --- a/route/util.go +++ b/route/util.go @@ -374,6 +374,13 @@ func TemplateFunctions(engine *html.Engine) { return returnString }) + engine.AddFunc("parseLinkTitle", func(board string, op string, content string) string { + nContent := post.ParseLinkTitle(board, op, content) + nContent = strings.ReplaceAll(nContent, `/\<`, ">") + + return nContent + }) + engine.AddFunc("parseLink", func(board activitypub.Actor, link string) string { var obj = activitypub.ObjectBase{ Id: link, |