commit 6381d7363be9431e53e94051e2b42bb91b5d955a
parent 463c78faacaafc47b04eade968e6323b28401bfa
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Mon, 1 Jan 2024 16:22:56 -0500
cleanup
Diffstat:
3 files changed, 35 insertions(+), 16 deletions(-)
diff --git a/pkg/web/handlers/api/v1/chat.go b/pkg/web/handlers/api/v1/chat.go
@@ -11,6 +11,7 @@ import (
"dkforest/pkg/web/handlers/interceptors/command"
"dkforest/pkg/web/handlers/poker"
"dkforest/pkg/web/handlers/streamModals"
+ hutils "dkforest/pkg/web/handlers/utils"
"dkforest/pkg/web/handlers/utils/stream"
"errors"
"fmt"
@@ -256,8 +257,6 @@ func ChatStreamMessagesHandler(c echo.Context) error {
indicatorAlt := newAlternator(`<style>#i{animation: %s 30s forwards}</style>`, "i")
wizzAlt := newAlternator(`<style>#msgs{animation: %s 0.25s linear 7;}</style>`, "horizontal-shaking")
- const metaRefresh = `<meta http-equiv="refresh" content="0" />`
-
Loop:
for {
select {
@@ -268,7 +267,7 @@ Loop:
// Refresh the page to prevent having it growing infinitely bigger
if bytesSent > 10<<20 { // 10 MB
- send(metaRefresh)
+ send(hutils.MetaRefreshNow())
return nil
}
@@ -304,7 +303,7 @@ Loop:
}
if topic == selfRefreshLoadingIconTopic {
- send(`<meta http-equiv="refresh" content="1" />`)
+ send(hutils.MetaRefresh(1))
return nil
}
@@ -313,12 +312,12 @@ Loop:
}
if topic == selfRefreshTopic && msgTyp.Typ == database.Redirect {
- send(`<meta http-equiv="refresh" content="0; URL='` + msgTyp.NewURL + `'" />`)
+ send(hutils.MetaRedirectNow(msgTyp.NewURL))
return nil
}
if topic == selfRefreshTopic || msgTyp.Typ == database.ForceRefresh {
- send(metaRefresh)
+ send(hutils.MetaRefreshNow())
return nil
}
@@ -426,7 +425,7 @@ Loop:
// Display a big banner stating the connection is closed.
send(`<div class="connection-closed">Connection closed</div>`)
// Auto refresh the page after 5sec so that the client reconnect after the app has restarted
- send(`<meta http-equiv="refresh" content="5" />`)
+ send(hutils.MetaRefresh(5))
c.Response().Flush()
return nil
}
@@ -444,7 +443,7 @@ func ChatStreamMenuHandler(c echo.Context) error {
if !authUser.UseStreamMenu {
data := GetChatMenuData(c, room)
- s := utils.TernaryOrZero(!data.PreventRefresh, `<meta http-equiv="refresh" content="5" />`)
+ s := utils.TernaryOrZero(!data.PreventRefresh, hutils.MetaRefresh(5))
s += GenerateStyle(authUser, ChatMessagesData{})
s += RenderRightColumn(authUser, data)
return c.HTML(http.StatusOK, s)
@@ -477,13 +476,13 @@ Loop:
case <-time.After(5 * time.Second):
case p := <-sub.ReceiveCh():
if p.Msg.Typ == database.ForceRefresh || p.Topic == selfRefreshTopic {
- send(`<meta http-equiv="refresh" content="0" />`)
+ send(hutils.MetaRefreshNow())
return nil
}
if p.Msg.Typ == database.CloseMenu {
return nil
}
- send(`<meta http-equiv="refresh" content="1" />`)
+ send(hutils.MetaRefresh(1))
return nil
case <-streamItem.Quit:
break Loop
@@ -499,7 +498,7 @@ Loop:
menuID++
}
}
- send(`<meta http-equiv="refresh" content="5" />`)
+ send(hutils.MetaRefresh(5))
c.Response().Flush()
return nil
}
diff --git a/pkg/web/handlers/poker.go b/pkg/web/handlers/poker.go
@@ -432,7 +432,7 @@ func PokerStreamHandler(c echo.Context) error {
loop(streamItem.Quit, sub, func(topic string, payload any) error {
switch payload.(type) {
case poker.RefreshLoadingIconEvent:
- send(`<meta http-equiv="refresh" content="1" />`)
+ send(hutils.MetaRefresh(1))
return BreakLoopErr
}
send(poker.BuildPayloadHtml(g, authUser, payload))
@@ -471,7 +471,7 @@ func PokerLogsHandler(c echo.Context) error {
loop(streamItem.Quit, sub, func(topic string, payload any) error {
switch evt := payload.(type) {
case poker.RefreshLoadingIconEvent:
- send(`<meta http-equiv="refresh" content="1" />`)
+ send(hutils.MetaRefresh(1))
return BreakLoopErr
case poker.LogEvent:
send(fmt.Sprintf(`<div>%s</div>`, evt.Message))
@@ -521,7 +521,7 @@ func PokerBetHandler(c echo.Context) error {
g.Bet(authUser.ID, raiseValue)
}
}
- send(fmt.Sprintf(`<meta http-equiv="refresh" content="0" />`))
+ send(hutils.MetaRefreshNow())
c.Response().Flush()
return nil
@@ -594,10 +594,10 @@ func PokerBetHandler(c echo.Context) error {
loop(streamItem.Quit, sub, func(topic string, payload any) error {
switch payload.(type) {
case poker.RefreshLoadingIconEvent:
- send(`<meta http-equiv="refresh" content="1" />`)
+ send(hutils.MetaRefresh(1))
return BreakLoopErr
case poker.RefreshButtonsEvent:
- send(fmt.Sprintf(`<meta http-equiv="refresh" content="0" />`))
+ send(hutils.MetaRefreshNow())
c.Response().Flush()
return BreakLoopErr
}
diff --git a/pkg/web/handlers/utils/utils.go b/pkg/web/handlers/utils/utils.go
@@ -235,6 +235,26 @@ func RedirectReferer(c echo.Context) error {
return c.Redirect(http.StatusFound, GetReferer(c))
}
+func MetaRefreshNow() string {
+ return MetaRefresh(0)
+}
+
+func MetaRefresh(delay int) string {
+ return MetaRedirect(delay, "")
+}
+
+func MetaRedirectNow(redirectURL string) string {
+ return MetaRedirect(0, redirectURL)
+}
+
+func MetaRedirect(delay int, redirectURL string) string {
+ content := fmt.Sprintf(`%d`, delay)
+ if redirectURL != "" {
+ content += fmt.Sprintf(`; URL='%s'`, redirectURL)
+ }
+ return fmt.Sprintf(`<meta http-equiv="refresh" content="%s" />`, content)
+}
+
const CssReset = `html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,