dkforest

A forum and chat platform (onion)
git clone https://git.dasho.dev/n0tr1v/dkforest.git
Log | Files | Refs | LICENSE

commit d37b524c44c41e933b982bc9ac940887e560950f
parent 5e3d5d78cd643a784a24da03c2588a252f0b8ea8
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Mon, 12 Jun 2023 21:17:31 -0700

move code

Diffstat:
Mpkg/web/handlers/api/v1/chat.go | 28++++++++++++++++++++++++++++
Mpkg/web/handlers/handlers.go | 29-----------------------------
Mpkg/web/web.go | 4++--
3 files changed, 30 insertions(+), 31 deletions(-)

diff --git a/pkg/web/handlers/api/v1/chat.go b/pkg/web/handlers/api/v1/chat.go @@ -354,3 +354,31 @@ Loop: c.Response().Flush() return nil } + +// ChatStreamMenuHandler return the html for the "stream" chat right-manu. +func ChatStreamMenuHandler(c echo.Context) error { + db := c.Get("database").(*database.DkfDB) + authUser := c.Get("authUser").(*database.User) + roomName := c.Param("roomName") + + room, _, err := dutils.GetRoomAndKey(db, c, roomName) + if err != nil { + return c.NoContent(http.StatusForbidden) + } + + data := GetChatMenuData(c, room) + + s := "" + if !data.PreventRefresh { + s += `<meta http-equiv="refresh" content="5" />` + } + s += GenerateStyle(authUser, ChatMessagesData{}) + s += RenderRightColumn(authUser, data) + return c.HTML(http.StatusOK, s) +} + +func ChatStreamMessagesRefreshHandler(c echo.Context) error { + authUser := c.Get("authUser").(*database.User) + database.MsgPubSub.Pub("refresh_"+string(authUser.Username), database.ChatMessageType{Typ: database.ForceRefresh}) + return c.NoContent(http.StatusOK) +} diff --git a/pkg/web/handlers/handlers.go b/pkg/web/handlers/handlers.go @@ -9,7 +9,6 @@ import ( dutils "dkforest/pkg/database/utils" "dkforest/pkg/odometer" "dkforest/pkg/utils" - v1 "dkforest/pkg/web/handlers/api/v1" hutils "dkforest/pkg/web/handlers/utils" "encoding/base64" "fmt" @@ -753,31 +752,3 @@ func BHCHandler(c echo.Context) error { data.Success = fmt.Sprintf("Good answer, go back to BHC and use '%s' as your username", username+h[:3]) return c.Render(http.StatusOK, "bhc", data) } - -// ChatStreamMenuHandler return the html for the "stream" chat right-manu. -func ChatStreamMenuHandler(c echo.Context) error { - db := c.Get("database").(*database.DkfDB) - authUser := c.Get("authUser").(*database.User) - roomName := c.Param("roomName") - - room, _, err := dutils.GetRoomAndKey(db, c, roomName) - if err != nil { - return c.NoContent(http.StatusForbidden) - } - - data := v1.GetChatMenuData(c, room) - - s := "" - if !data.PreventRefresh { - s += `<meta http-equiv="refresh" content="5" />` - } - s += v1.GenerateStyle(authUser, v1.ChatMessagesData{}) - s += v1.RenderRightColumn(authUser, data) - return c.HTML(http.StatusOK, s) -} - -func ChatStreamMessagesRefreshHandler(c echo.Context) error { - authUser := c.Get("authUser").(*database.User) - database.MsgPubSub.Pub("refresh_"+string(authUser.Username), database.ChatMessageType{Typ: database.ForceRefresh}) - return c.NoContent(http.StatusOK) -} diff --git a/pkg/web/web.go b/pkg/web/web.go @@ -151,9 +151,9 @@ func getMainServer(db *database.DkfDB, i18nBundle *i18n.Bundle, renderer *tmp.Te authGroup.GET("/api/v1/chat/top-bar/:roomName", v1.ChatTopBarHandler) authGroup.POST("/api/v1/chat/top-bar/:roomName", v1.ChatTopBarHandler, middlewares.AuthRateLimitMiddleware(1*time.Second, 3)) authGroup.GET("/api/v1/chat/messages/:roomName", v1.ChatMessagesHandler) - authGroup.GET("/api/v1/chat/messages/:roomName/refresh", handlers.ChatStreamMessagesRefreshHandler, middlewares.AuthRateLimitMiddleware(1*time.Second, 4)) + authGroup.GET("/api/v1/chat/messages/:roomName/refresh", v1.ChatStreamMessagesRefreshHandler, middlewares.AuthRateLimitMiddleware(1*time.Second, 4)) authGroup.GET("/api/v1/chat/messages/:roomName/stream", v1.ChatStreamMessagesHandler, middlewares.AuthRateLimitMiddleware(1*time.Second, 4)) - authGroup.GET("/api/v1/chat/messages/:roomName/stream/menu", handlers.ChatStreamMenuHandler) + authGroup.GET("/api/v1/chat/messages/:roomName/stream/menu", v1.ChatStreamMenuHandler) authGroup.POST("/api/v1/notifications/delete/:notificationID", v1.DeleteNotificationHandler) authGroup.POST("/api/v1/session-notifications/delete/:sessionNotificationID", v1.DeleteSessionNotificationHandler) authGroup.POST("/api/v1/inbox/delete/:messageID", v1.ChatInboxDeleteMessageHandler)