aboutsummaryrefslogtreecommitdiff
path: root/route/routes/news.go
diff options
context:
space:
mode:
Diffstat (limited to 'route/routes/news.go')
-rw-r--r--route/routes/news.go73
1 files changed, 73 insertions, 0 deletions
diff --git a/route/routes/news.go b/route/routes/news.go
new file mode 100644
index 0000000..0d226a5
--- /dev/null
+++ b/route/routes/news.go
@@ -0,0 +1,73 @@
+package routes
+
+import (
+ "github.com/FChannel0/FChannel-Server/activitypub"
+ "github.com/FChannel0/FChannel-Server/config"
+ "github.com/FChannel0/FChannel-Server/db"
+ "github.com/FChannel0/FChannel-Server/route"
+ "github.com/FChannel0/FChannel-Server/util"
+ "github.com/FChannel0/FChannel-Server/webfinger"
+ "github.com/gofiber/fiber/v2"
+)
+
+func NewsGet(ctx *fiber.Ctx) error {
+ timestamp := 0
+
+ actor, err := activitypub.GetActorFromDB(config.Domain)
+ if err != nil {
+ return util.MakeError(err, "NewsGet")
+ }
+
+ var data route.PageData
+ data.PreferredUsername = actor.PreferredUsername
+ data.Boards = webfinger.Boards
+ data.Board.Name = ""
+ data.Key = config.Key
+ data.Board.Domain = config.Domain
+ data.Board.ModCred, _ = util.GetPasswordFromSession(ctx)
+ data.Board.Actor = actor
+ data.Board.Post.Actor = actor.Id
+ data.Board.Restricted = actor.Restricted
+ data.NewsItems = make([]db.NewsItem, 1)
+
+ data.NewsItems[0], err = db.GetNewsItem(timestamp)
+ if err != nil {
+ return util.MakeError(err, "NewsGet")
+ }
+
+ data.Title = actor.PreferredUsername + ": " + data.NewsItems[0].Title
+
+ data.Themes = &config.Themes
+ data.ThemeCookie = route.GetThemeCookie(ctx)
+
+ return ctx.Render("news", fiber.Map{"page": data}, "layouts/main")
+}
+
+func AllNewsGet(ctx *fiber.Ctx) error {
+ actor, err := activitypub.GetActorFromDB(config.Domain)
+ if err != nil {
+ return util.MakeError(err, "AllNewsGet")
+ }
+
+ var data route.PageData
+ data.PreferredUsername = actor.PreferredUsername
+ data.Title = actor.PreferredUsername + " News"
+ data.Boards = webfinger.Boards
+ data.Board.Name = ""
+ data.Key = config.Key
+ data.Board.Domain = config.Domain
+ data.Board.ModCred, _ = util.GetPasswordFromSession(ctx)
+ data.Board.Actor = actor
+ data.Board.Post.Actor = actor.Id
+ data.Board.Restricted = actor.Restricted
+
+ data.NewsItems, err = db.GetNews(0)
+ if err != nil {
+ return util.MakeError(err, "AllNewsGet")
+ }
+
+ data.Themes = &config.Themes
+ data.ThemeCookie = route.GetThemeCookie(ctx)
+
+ return ctx.Render("anews", fiber.Map{"page": data}, "layouts/main")
+}