dkforest

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

commit 6381d7363be9431e53e94051e2b42bb91b5d955a
parent 463c78faacaafc47b04eade968e6323b28401bfa
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Mon,  1 Jan 2024 16:22:56 -0500

cleanup

Diffstat:
Mpkg/web/handlers/api/v1/chat.go | 21++++++++++-----------
Mpkg/web/handlers/poker.go | 10+++++-----
Mpkg/web/handlers/utils/utils.go | 20++++++++++++++++++++
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,