commit 1cca9382e5cee9560331edc3f5578dd5f4afae7d
parent aa03e82e6ddd25fa414a460bc8a4ca9f559cf026
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Mon, 22 May 2023 21:35:13 -0700
force refresh when user is kicked
Diffstat:
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/pkg/database/utils/utils.go b/pkg/database/utils/utils.go
@@ -142,6 +142,7 @@ func kick(db *database.DkfDB, kicked, kickedBy database.User, silent, purge bool
if err := db.DeleteUserChatMessages(kicked.ID); err != nil {
logrus.Error(err)
}
+ database.MsgPubSub.Pub("refresh", database.ChatMessageType{Typ: database.ForceRefresh})
}
// If user is HB, do not display system message
diff --git a/pkg/web/handlers/handlers.go b/pkg/web/handlers/handlers.go
@@ -4941,6 +4941,7 @@ func ChatStreamMessagesHandler(c echo.Context) error {
data := v1.ChatMessagesData{}
data.ChatMenuData.RoomName = room.Name
+ data.ManualRefreshTimeout = 0
_, _ = c.Response().Write([]byte(v1.GenerateStyle(authUser, data)))
_, _ = c.Response().Write([]byte(fmt.Sprintf(`<div style="display:flex;flex-direction:column-reverse;" id="msgs">`)))
c.Response().Flush()
@@ -4961,7 +4962,8 @@ func ChatStreamMessagesHandler(c echo.Context) error {
c.Response().Flush()
authorizedChannels := make([]string, 0)
- authorizedChannels = append(authorizedChannels, "room_"+utils.FormatInt64(int64(room.ID)))
+ authorizedChannels = append(authorizedChannels, "refresh")
+ authorizedChannels = append(authorizedChannels, "room_"+room.ID.String())
sub := database.MsgPubSub.Subscribe(authorizedChannels)
defer sub.Close()
@@ -4982,6 +4984,11 @@ Loop:
continue
}
+ if msgTyp.Typ == database.ForceRefresh {
+ _, _ = c.Response().Write([]byte(`<meta http-equiv="refresh" content="0" />`))
+ break
+ }
+
i++
msg := msgTyp.Msg