dkforest

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

commit 88a4c654bd2a7536da0094f43d2fdb86b27ba3de
parent e6b0f27084081763d2aa95cc57ed8b3dd336e985
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Fri, 26 May 2023 17:38:05 -0700

hack to stop spinning icon in browser tab

Diffstat:
Mpkg/web/handlers/handlers.go | 6++++++
Mpkg/web/public/views/pages/chat.gohtml | 1+
Mpkg/web/web.go | 1+
3 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/pkg/web/handlers/handlers.go b/pkg/web/handlers/handlers.go @@ -5008,6 +5008,12 @@ func applyUserFilters(db *database.DkfDB, authUser *database.User, msg *database return true } +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) +} + func ChatStreamMessagesHandler(c echo.Context) error { db := c.Get("database").(*database.DkfDB) authUser := c.Get("authUser").(*database.User) diff --git a/pkg/web/public/views/pages/chat.gohtml b/pkg/web/public/views/pages/chat.gohtml @@ -238,6 +238,7 @@ {{ end }} <div> <a href="/api/v1/chat/messages/{{ .Data.Room.Name }}{{ if .Data.IsStream }}/stream{{ end }}{{ .Data.ChatQueryParams }}" target="iframe2" class="btn btn-xs btn-secondary" title="Refresh messages">&#8635;</a> + {{ if .Data.IsStream }}<a href="/api/v1/chat/messages/{{ .Data.Room.Name }}/refresh{{ .Data.ChatQueryParams }}" target="_blank" class="btn btn-xs btn-secondary" title="Refresh messages">&#9633;</a>{{ end }} <a href="/chat/{{ .Data.Room.Name }}/archive">{{ t "Read all messages" . }}</a> {{ if .Data.ToggleMentions }} <a href="?mentionsOnly=0" class="btn btn-xs btn-success" title="Only Mentions are displayed">Toggle @</a> diff --git a/pkg/web/web.go b/pkg/web/web.go @@ -145,6 +145,7 @@ 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/stream", handlers.ChatStreamMessagesHandler, middlewares.AuthRateLimitMiddleware(1*time.Second, 4)) authGroup.GET("/api/v1/chat/messages/:roomName/stream/menu", handlers.ChatStreamMenuHandler) authGroup.POST("/api/v1/notifications/delete/:notificationID", v1.DeleteNotificationHandler)