dkforest

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

commit 1728607e30d2d0f179a792089265bde40dd80247
parent 13b33999ba436959cb731dbc27362404e903d009
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Mon, 22 May 2023 01:09:48 -0700

fix styling

Diffstat:
Mpkg/web/handlers/api/v1/messages.qtpl | 122+++++++++++++++++++++++++++++++++++++++----------------------------------------
Mpkg/web/handlers/api/v1/messages.qtpl.go | 1118+++++++++++++++++++++++++++++++++++++++----------------------------------------
Mpkg/web/handlers/handlers.go | 1-
3 files changed, 617 insertions(+), 624 deletions(-)

diff --git a/pkg/web/handlers/api/v1/messages.qtpl b/pkg/web/handlers/api/v1/messages.qtpl @@ -4,6 +4,55 @@ {%- func GenerateStyle(AuthUser *database.User, Data ChatMessagesData) -%} <style> + /* http://meyerweb.com/eric/tools/css/reset/ + v2.0 | 20110126 + License: none (public domain) + */ + html, body, div, span, applet, object, iframe, + h1, h2, h3, h4, h5, h6, p, blockquote, pre, + a, abbr, acronym, address, big, cite, code, + del, dfn, em, img, ins, kbd, q, s, samp, + small, strike, strong, sub, sup, tt, var, + b, u, i, center, + dl, dt, dd, ol, ul, li, + fieldset, form, label, legend, + table, caption, tbody, tfoot, thead, tr, th, td, + article, aside, canvas, details, embed, + figure, figcaption, footer, header, hgroup, + menu, nav, output, ruby, section, summary, + time, mark, audio, video { + margin: 0; + padding: 0; + border: 0; + font-size: 100%; + font: inherit; + vertical-align: baseline; + } + /* HTML5 display-role reset for older browsers */ + article, aside, details, figcaption, figure, + footer, header, hgroup, menu, nav, section { + display: block; + } + body { + line-height: 1; + } + ol, ul { + list-style: none; + } + blockquote, q { + quotes: none; + } + blockquote:before, blockquote:after, + q:before, q:after { + content: ''; + content: none; + } + table { + border-collapse: collapse; + border-spacing: 0; + } + /* --- end --- */ + i { font-style: italic; } /* Remove button padding in FF */ @@ -124,57 +173,6 @@ <title></title> {%- if !Data.PreventRefresh && !Data.ForceManualRefresh -%}<meta http-equiv="refresh" content="{%dl AuthUser.RefreshRate %}">{%- endif -%} {%- if AuthUser.CollectMetadata -%}<link rel="stylesheet" type="text/css" href="/public/css/meta.css?v={%s VERSION %}" />{%- endif -%} - - <style> - /* http://meyerweb.com/eric/tools/css/reset/ - v2.0 | 20110126 - License: none (public domain) - */ - html, body, div, span, applet, object, iframe, - h1, h2, h3, h4, h5, h6, p, blockquote, pre, - a, abbr, acronym, address, big, cite, code, - del, dfn, em, img, ins, kbd, q, s, samp, - small, strike, strong, sub, sup, tt, var, - b, u, i, center, - dl, dt, dd, ol, ul, li, - fieldset, form, label, legend, - table, caption, tbody, tfoot, thead, tr, th, td, - article, aside, canvas, details, embed, - figure, figcaption, footer, header, hgroup, - menu, nav, output, ruby, section, summary, - time, mark, audio, video { - margin: 0; - padding: 0; - border: 0; - font-size: 100%; - font: inherit; - vertical-align: baseline; - } - /* HTML5 display-role reset for older browsers */ - article, aside, details, figcaption, figure, - footer, header, hgroup, menu, nav, section { - display: block; - } - body { - line-height: 1; - } - ol, ul { - list-style: none; - } - blockquote, q { - quotes: none; - } - blockquote:before, blockquote:after, - q:before, q:after { - content: ''; - content: none; - } - table { - border-collapse: collapse; - border-spacing: 0; - } - /* --- end --- */ - </style> {%-= GenerateStyle(AuthUser, Data) -%} </head> <body> @@ -266,17 +264,17 @@ {%- func RenderMessages(AuthUser *database.User, Data ChatMessagesData, CSRF, NullUsername string) -%} - {%- code - baseTopBarURL := "/api/v1/chat/top-bar/" + Data.RoomName - readMarkerRendered := false - isFirstMsg := true - -%} - {%- for idx, e := range Data.Messages -%} - {%-= RenderMessage(idx, e, AuthUser, Data, baseTopBarURL, &readMarkerRendered, &isFirstMsg, CSRF, NullUsername) -%} - {% endfor %} - {% if len(Data.Messages) == 0 %} - <div id="no-msg"><em>No message yet</em></div> - {% endif %} + {%- code + baseTopBarURL := "/api/v1/chat/top-bar/" + Data.RoomName + readMarkerRendered := false + isFirstMsg := true + -%} + {%- for idx, e := range Data.Messages -%} + {%-= RenderMessage(idx, e, AuthUser, Data, baseTopBarURL, &readMarkerRendered, &isFirstMsg, CSRF, NullUsername) -%} + {% endfor %} + {% if len(Data.Messages) == 0 %} + <div id="no-msg"><em>No message yet</em></div> + {% endif %} {%- endfunc -%} {%- func RenderMessage(idx int, e database.ChatMessage, AuthUser *database.User, diff --git a/pkg/web/handlers/api/v1/messages.qtpl.go b/pkg/web/handlers/api/v1/messages.qtpl.go @@ -30,6 +30,55 @@ var ( func StreamGenerateStyle(qw422016 *qt422016.Writer, AuthUser *database.User, Data ChatMessagesData) { //line messages.qtpl:5 qw422016.N().S(`<style> + /* http://meyerweb.com/eric/tools/css/reset/ + v2.0 | 20110126 + License: none (public domain) + */ + html, body, div, span, applet, object, iframe, + h1, h2, h3, h4, h5, h6, p, blockquote, pre, + a, abbr, acronym, address, big, cite, code, + del, dfn, em, img, ins, kbd, q, s, samp, + small, strike, strong, sub, sup, tt, var, + b, u, i, center, + dl, dt, dd, ol, ul, li, + fieldset, form, label, legend, + table, caption, tbody, tfoot, thead, tr, th, td, + article, aside, canvas, details, embed, + figure, figcaption, footer, header, hgroup, + menu, nav, output, ruby, section, summary, + time, mark, audio, video { + margin: 0; + padding: 0; + border: 0; + font-size: 100%; + font: inherit; + vertical-align: baseline; + } + /* HTML5 display-role reset for older browsers */ + article, aside, details, figcaption, figure, + footer, header, hgroup, menu, nav, section { + display: block; + } + body { + line-height: 1; + } + ol, ul { + list-style: none; + } + blockquote, q { + quotes: none; + } + blockquote:before, blockquote:after, + q:before, q:after { + content: ''; + content: none; + } + table { + border-collapse: collapse; + border-spacing: 0; + } + /* --- end --- */ + i { font-style: italic; } /* Remove button padding in FF */ @@ -82,20 +131,20 @@ func StreamGenerateStyle(qw422016 *qt422016.Writer, AuthUser *database.User, Dat .k_btn::after { content: "k"; } #manualrefresh { `) -//line messages.qtpl:58 +//line messages.qtpl:107 if !Data.ForceManualRefresh { -//line messages.qtpl:58 +//line messages.qtpl:107 qw422016.N().S(` top: -200%; animation: timeout_messages `) -//line messages.qtpl:60 +//line messages.qtpl:109 qw422016.N().DL(Data.ManualRefreshTimeout) -//line messages.qtpl:60 +//line messages.qtpl:109 qw422016.N().S(`s forwards; `) -//line messages.qtpl:61 +//line messages.qtpl:110 } -//line messages.qtpl:61 +//line messages.qtpl:110 qw422016.N().S(` color: #bf2718; display: block; @@ -141,28 +190,28 @@ func StreamGenerateStyle(qw422016 *qt422016.Writer, AuthUser *database.User, Dat .f-white-clr, .f-white-clr:hover { color: white; } .line-through { text-decoration: line-through; } .hb-row { background-color: rgba(0, 0, 0, 0.7); opacity: `) -//line messages.qtpl:105 +//line messages.qtpl:154 qw422016.N().F(AuthUser.GetHellbanOpacityF64()) -//line messages.qtpl:105 +//line messages.qtpl:154 qw422016.N().S(`; } .own-highlight { background-color: rgba(255,241,176,0.05); } .read-marker { border-top: `) -//line messages.qtpl:107 +//line messages.qtpl:156 qw422016.N().DL(AuthUser.ChatReadMarkerSize) -//line messages.qtpl:107 +//line messages.qtpl:156 qw422016.N().S(`px solid `) -//line messages.qtpl:107 +//line messages.qtpl:156 qw422016.E().S(AuthUser.ChatReadMarkerColor) -//line messages.qtpl:107 +//line messages.qtpl:156 qw422016.N().S(`; } #msgs { `) -//line messages.qtpl:108 +//line messages.qtpl:157 if !AuthUser.HideRightColumn { -//line messages.qtpl:108 +//line messages.qtpl:157 qw422016.N().S(`width: calc(100% - 170px); float: left; `) -//line messages.qtpl:108 +//line messages.qtpl:157 } -//line messages.qtpl:108 +//line messages.qtpl:157 qw422016.N().S(`line-height: 1.2; } #no-msg { padding-left: 10px; color: #ddd; } #rgt-pane { width: 150px; height: 100%; float: left; margin-left: 20px; position: fixed; right: 0; overflow-y: auto; line-height: 1.15; } @@ -175,139 +224,86 @@ func StreamGenerateStyle(qw422016 *qt422016.Writer, AuthUser *database.User, Dat #msg-err { background-color: #8f2d2d; color: #ffffff; padding: 1px 5px 2px 5px; display: block; text-decoration: none; } </style> `) -//line messages.qtpl:119 +//line messages.qtpl:168 } -//line messages.qtpl:119 +//line messages.qtpl:168 func WriteGenerateStyle(qq422016 qtio422016.Writer, AuthUser *database.User, Data ChatMessagesData) { -//line messages.qtpl:119 +//line messages.qtpl:168 qw422016 := qt422016.AcquireWriter(qq422016) -//line messages.qtpl:119 +//line messages.qtpl:168 StreamGenerateStyle(qw422016, AuthUser, Data) -//line messages.qtpl:119 +//line messages.qtpl:168 qt422016.ReleaseWriter(qw422016) -//line messages.qtpl:119 +//line messages.qtpl:168 } -//line messages.qtpl:119 +//line messages.qtpl:168 func GenerateStyle(AuthUser *database.User, Data ChatMessagesData) string { -//line messages.qtpl:119 +//line messages.qtpl:168 qb422016 := qt422016.AcquireByteBuffer() -//line messages.qtpl:119 +//line messages.qtpl:168 WriteGenerateStyle(qb422016, AuthUser, Data) -//line messages.qtpl:119 +//line messages.qtpl:168 qs422016 := string(qb422016.B) -//line messages.qtpl:119 +//line messages.qtpl:168 qt422016.ReleaseByteBuffer(qb422016) -//line messages.qtpl:119 +//line messages.qtpl:168 return qs422016 -//line messages.qtpl:119 +//line messages.qtpl:168 } -//line messages.qtpl:121 +//line messages.qtpl:170 func StreamMessages(qw422016 *qt422016.Writer, VERSION, CSRF, NullUsername string, AuthUser *database.User, Data ChatMessagesData) { -//line messages.qtpl:121 +//line messages.qtpl:170 qw422016.N().S(`<html lang="en"> <head> <title></title> `) -//line messages.qtpl:125 +//line messages.qtpl:174 if !Data.PreventRefresh && !Data.ForceManualRefresh { -//line messages.qtpl:125 +//line messages.qtpl:174 qw422016.N().S(`<meta http-equiv="refresh" content="`) -//line messages.qtpl:125 +//line messages.qtpl:174 qw422016.N().DL(AuthUser.RefreshRate) -//line messages.qtpl:125 +//line messages.qtpl:174 qw422016.N().S(`">`) -//line messages.qtpl:125 +//line messages.qtpl:174 } -//line messages.qtpl:126 +//line messages.qtpl:175 if AuthUser.CollectMetadata { -//line messages.qtpl:126 +//line messages.qtpl:175 qw422016.N().S(`<link rel="stylesheet" type="text/css" href="/public/css/meta.css?v=`) -//line messages.qtpl:126 +//line messages.qtpl:175 qw422016.E().S(VERSION) -//line messages.qtpl:126 +//line messages.qtpl:175 qw422016.N().S(`" />`) -//line messages.qtpl:126 +//line messages.qtpl:175 } -//line messages.qtpl:126 - qw422016.N().S(` - <style> - /* http://meyerweb.com/eric/tools/css/reset/ - v2.0 | 20110126 - License: none (public domain) - */ - html, body, div, span, applet, object, iframe, - h1, h2, h3, h4, h5, h6, p, blockquote, pre, - a, abbr, acronym, address, big, cite, code, - del, dfn, em, img, ins, kbd, q, s, samp, - small, strike, strong, sub, sup, tt, var, - b, u, i, center, - dl, dt, dd, ol, ul, li, - fieldset, form, label, legend, - table, caption, tbody, tfoot, thead, tr, th, td, - article, aside, canvas, details, embed, - figure, figcaption, footer, header, hgroup, - menu, nav, output, ruby, section, summary, - time, mark, audio, video { - margin: 0; - padding: 0; - border: 0; - font-size: 100%; - font: inherit; - vertical-align: baseline; - } - /* HTML5 display-role reset for older browsers */ - article, aside, details, figcaption, figure, - footer, header, hgroup, menu, nav, section { - display: block; - } - body { - line-height: 1; - } - ol, ul { - list-style: none; - } - blockquote, q { - quotes: none; - } - blockquote:before, blockquote:after, - q:before, q:after { - content: ''; - content: none; - } - table { - border-collapse: collapse; - border-spacing: 0; - } - /* --- end --- */ - </style> -`) -//line messages.qtpl:178 +//line messages.qtpl:176 StreamGenerateStyle(qw422016, AuthUser, Data) -//line messages.qtpl:178 +//line messages.qtpl:176 qw422016.N().S(` </head> <body> `) -//line messages.qtpl:182 +//line messages.qtpl:180 if Data.ForceManualRefresh { -//line messages.qtpl:182 +//line messages.qtpl:180 qw422016.N().S(` <div id="manualrefresh"> <h4>Manual refresh required</h4> <form method="get" action="/chat/`) -//line messages.qtpl:185 +//line messages.qtpl:183 qw422016.E().S(Data.RoomName) -//line messages.qtpl:185 +//line messages.qtpl:183 qw422016.N().S(`" target="_top"> <input type="submit" value="Reload" /> </form> </div> `) -//line messages.qtpl:189 +//line messages.qtpl:187 } else if !Data.PreventRefresh { -//line messages.qtpl:189 +//line messages.qtpl:187 qw422016.N().S(` <div id="manualrefresh"> <h4>Manual refresh required</h4> <form method="get"> @@ -315,1033 +311,1033 @@ func StreamMessages(qw422016 *qt422016.Writer, VERSION, CSRF, NullUsername strin </form> </div> `) -//line messages.qtpl:196 +//line messages.qtpl:194 } -//line messages.qtpl:196 +//line messages.qtpl:194 qw422016.N().S(` `) -//line messages.qtpl:198 +//line messages.qtpl:196 if Data.Error != "" { -//line messages.qtpl:198 +//line messages.qtpl:196 qw422016.N().S(` <a href="/api/v1/chat/messages/`) -//line messages.qtpl:199 +//line messages.qtpl:197 qw422016.E().S(Data.RoomName) -//line messages.qtpl:199 +//line messages.qtpl:197 qw422016.N().S(`" id="msg-err">× `) -//line messages.qtpl:199 +//line messages.qtpl:197 qw422016.E().S(Data.Error) -//line messages.qtpl:199 +//line messages.qtpl:197 qw422016.N().S(`</a> `) -//line messages.qtpl:200 +//line messages.qtpl:198 } -//line messages.qtpl:200 +//line messages.qtpl:198 qw422016.N().S(` `) -//line messages.qtpl:202 +//line messages.qtpl:200 if Data.PmSound || Data.TaggedSound { -//line messages.qtpl:202 +//line messages.qtpl:200 qw422016.N().S(` <audio src="/public/mp3/sound5.mp3" autoplay></audio> `) -//line messages.qtpl:204 +//line messages.qtpl:202 } else if Data.NewMessageSound { -//line messages.qtpl:204 +//line messages.qtpl:202 qw422016.N().S(` <audio src="/public/mp3/sound6.mp3" autoplay></audio> `) -//line messages.qtpl:206 +//line messages.qtpl:204 } -//line messages.qtpl:206 +//line messages.qtpl:204 qw422016.N().S(` <div id="msgs"> `) -//line messages.qtpl:209 +//line messages.qtpl:207 StreamRenderMessages(qw422016, AuthUser, Data, CSRF, NullUsername) -//line messages.qtpl:209 +//line messages.qtpl:207 qw422016.N().S(` </div> `) -//line messages.qtpl:212 +//line messages.qtpl:210 if !AuthUser.HideRightColumn { -//line messages.qtpl:212 +//line messages.qtpl:210 qw422016.N().S(` <div id="rgt-pane"> <div class="mb-20px"> <div class="rgt-title">Inbox (<a href="/settings/inbox" target="_top"`) -//line messages.qtpl:215 +//line messages.qtpl:213 if Data.InboxCount > 0 { -//line messages.qtpl:215 +//line messages.qtpl:213 qw422016.N().S(`class="notif"`) -//line messages.qtpl:215 +//line messages.qtpl:213 } -//line messages.qtpl:215 +//line messages.qtpl:213 qw422016.N().S(`>`) -//line messages.qtpl:215 +//line messages.qtpl:213 qw422016.N().DL(Data.InboxCount) -//line messages.qtpl:215 +//line messages.qtpl:213 qw422016.N().S(`</a>)</div> </div> <div class="mb-20px"> <div class="rgt-title">Rooms:</div> `) -//line messages.qtpl:219 +//line messages.qtpl:217 for _, e := range Data.OfficialRooms { -//line messages.qtpl:220 +//line messages.qtpl:218 if e.Name == "club" { -//line messages.qtpl:221 +//line messages.qtpl:219 if AuthUser.IsClubMember { -//line messages.qtpl:221 +//line messages.qtpl:219 qw422016.N().S(` <div><a href="/chat/club" target="_top"`) -//line messages.qtpl:222 +//line messages.qtpl:220 if e.IsUnread { -//line messages.qtpl:222 +//line messages.qtpl:220 qw422016.N().S(` class="unread_room"`) -//line messages.qtpl:222 +//line messages.qtpl:220 } -//line messages.qtpl:222 +//line messages.qtpl:220 qw422016.N().S(`>#club</a></div> `) -//line messages.qtpl:223 +//line messages.qtpl:221 } -//line messages.qtpl:224 +//line messages.qtpl:222 } else if e.Name == "moderators" { -//line messages.qtpl:225 +//line messages.qtpl:223 if AuthUser.IsModerator() { -//line messages.qtpl:225 +//line messages.qtpl:223 qw422016.N().S(` <div><a href="/chat/moderators" target="_top"`) -//line messages.qtpl:226 +//line messages.qtpl:224 if e.IsUnread { -//line messages.qtpl:226 +//line messages.qtpl:224 qw422016.N().S(` class="unread_room"`) -//line messages.qtpl:226 +//line messages.qtpl:224 } -//line messages.qtpl:226 +//line messages.qtpl:224 qw422016.N().S(`>#moderators</a></div> `) -//line messages.qtpl:227 +//line messages.qtpl:225 } -//line messages.qtpl:228 +//line messages.qtpl:226 } else { -//line messages.qtpl:228 +//line messages.qtpl:226 qw422016.N().S(` <div><a href="/chat/`) -//line messages.qtpl:229 +//line messages.qtpl:227 qw422016.E().S(e.Name) -//line messages.qtpl:229 +//line messages.qtpl:227 qw422016.N().S(`" target="_top"`) -//line messages.qtpl:229 +//line messages.qtpl:227 if e.IsUnread { -//line messages.qtpl:229 +//line messages.qtpl:227 qw422016.N().S(` class="unread_room"`) -//line messages.qtpl:229 +//line messages.qtpl:227 } -//line messages.qtpl:229 +//line messages.qtpl:227 qw422016.N().S(`>#`) -//line messages.qtpl:229 +//line messages.qtpl:227 qw422016.E().S(e.Name) -//line messages.qtpl:229 +//line messages.qtpl:227 qw422016.N().S(`</a></div> `) -//line messages.qtpl:230 +//line messages.qtpl:228 } -//line messages.qtpl:231 +//line messages.qtpl:229 } -//line messages.qtpl:232 +//line messages.qtpl:230 if len(Data.SubscribedRooms) > 0 { -//line messages.qtpl:232 +//line messages.qtpl:230 qw422016.N().S(` <div class="mt-10px"></div> `) -//line messages.qtpl:234 +//line messages.qtpl:232 for _, e := range Data.SubscribedRooms { -//line messages.qtpl:234 +//line messages.qtpl:232 qw422016.N().S(` <div><a href="/chat/`) -//line messages.qtpl:235 +//line messages.qtpl:233 qw422016.E().S(e.Name) -//line messages.qtpl:235 +//line messages.qtpl:233 qw422016.N().S(`" target="_top"`) -//line messages.qtpl:235 +//line messages.qtpl:233 if e.IsUnread { -//line messages.qtpl:235 +//line messages.qtpl:233 qw422016.N().S(` class="unread_room"`) -//line messages.qtpl:235 +//line messages.qtpl:233 } -//line messages.qtpl:235 +//line messages.qtpl:233 qw422016.N().S(`>#`) -//line messages.qtpl:235 +//line messages.qtpl:233 qw422016.E().S(e.Name) -//line messages.qtpl:235 +//line messages.qtpl:233 qw422016.N().S(`</a></div> `) -//line messages.qtpl:236 +//line messages.qtpl:234 } -//line messages.qtpl:237 +//line messages.qtpl:235 } -//line messages.qtpl:237 +//line messages.qtpl:235 qw422016.N().S(` <div class="mt-5px"><a href="/rooms" target="_top">[...]</a></div> </div> <div class="mb-20px"> <div class="rgt-title">In this room:</div> `) -//line messages.qtpl:242 +//line messages.qtpl:240 for _, e := range Data.Members { -//line messages.qtpl:242 +//line messages.qtpl:240 qw422016.N().S(` `) -//line messages.qtpl:243 +//line messages.qtpl:241 StreamMember(qw422016, AuthUser, Data, e) -//line messages.qtpl:243 +//line messages.qtpl:241 qw422016.N().S(` `) -//line messages.qtpl:244 +//line messages.qtpl:242 } -//line messages.qtpl:244 +//line messages.qtpl:242 qw422016.N().S(` </div> `) -//line messages.qtpl:246 +//line messages.qtpl:244 if Data.VisibleMemberInChat || AuthUser.DisplayHellbanned { -//line messages.qtpl:246 +//line messages.qtpl:244 qw422016.N().S(` <div class="mb-30px"> `) -//line messages.qtpl:248 +//line messages.qtpl:246 if len(Data.MembersInChat) > 0 { -//line messages.qtpl:248 +//line messages.qtpl:246 qw422016.N().S(` <div class="rgt-title">In other rooms:</div> `) -//line messages.qtpl:250 +//line messages.qtpl:248 for _, e := range Data.MembersInChat { -//line messages.qtpl:250 +//line messages.qtpl:248 qw422016.N().S(` `) -//line messages.qtpl:251 +//line messages.qtpl:249 StreamMember(qw422016, AuthUser, Data, e) -//line messages.qtpl:251 +//line messages.qtpl:249 qw422016.N().S(` `) -//line messages.qtpl:252 +//line messages.qtpl:250 } -//line messages.qtpl:253 +//line messages.qtpl:251 } -//line messages.qtpl:253 +//line messages.qtpl:251 qw422016.N().S(` </div> `) -//line messages.qtpl:255 +//line messages.qtpl:253 } -//line messages.qtpl:255 +//line messages.qtpl:253 qw422016.N().S(` </div> `) -//line messages.qtpl:257 +//line messages.qtpl:255 } -//line messages.qtpl:258 +//line messages.qtpl:256 if AuthUser.CollectMetadata { -//line messages.qtpl:258 +//line messages.qtpl:256 qw422016.N().S(` <div class="div_1"></div> <div class="div_2"></div> <div class="div_f0">a</div> `) -//line messages.qtpl:262 +//line messages.qtpl:260 } -//line messages.qtpl:262 +//line messages.qtpl:260 qw422016.N().S(` </body> </html> `) -//line messages.qtpl:265 +//line messages.qtpl:263 } -//line messages.qtpl:265 +//line messages.qtpl:263 func WriteMessages(qq422016 qtio422016.Writer, VERSION, CSRF, NullUsername string, AuthUser *database.User, Data ChatMessagesData) { -//line messages.qtpl:265 +//line messages.qtpl:263 qw422016 := qt422016.AcquireWriter(qq422016) -//line messages.qtpl:265 +//line messages.qtpl:263 StreamMessages(qw422016, VERSION, CSRF, NullUsername, AuthUser, Data) -//line messages.qtpl:265 +//line messages.qtpl:263 qt422016.ReleaseWriter(qw422016) -//line messages.qtpl:265 +//line messages.qtpl:263 } -//line messages.qtpl:265 +//line messages.qtpl:263 func Messages(VERSION, CSRF, NullUsername string, AuthUser *database.User, Data ChatMessagesData) string { -//line messages.qtpl:265 +//line messages.qtpl:263 qb422016 := qt422016.AcquireByteBuffer() -//line messages.qtpl:265 +//line messages.qtpl:263 WriteMessages(qb422016, VERSION, CSRF, NullUsername, AuthUser, Data) -//line messages.qtpl:265 +//line messages.qtpl:263 qs422016 := string(qb422016.B) -//line messages.qtpl:265 +//line messages.qtpl:263 qt422016.ReleaseByteBuffer(qb422016) -//line messages.qtpl:265 +//line messages.qtpl:263 return qs422016 -//line messages.qtpl:265 +//line messages.qtpl:263 } -//line messages.qtpl:268 +//line messages.qtpl:266 func StreamRenderMessages(qw422016 *qt422016.Writer, AuthUser *database.User, Data ChatMessagesData, CSRF, NullUsername string) { -//line messages.qtpl:270 +//line messages.qtpl:268 baseTopBarURL := "/api/v1/chat/top-bar/" + Data.RoomName readMarkerRendered := false isFirstMsg := true -//line messages.qtpl:274 +//line messages.qtpl:272 for idx, e := range Data.Messages { -//line messages.qtpl:275 +//line messages.qtpl:273 StreamRenderMessage(qw422016, idx, e, AuthUser, Data, baseTopBarURL, &readMarkerRendered, &isFirstMsg, CSRF, NullUsername) -//line messages.qtpl:275 - qw422016.N().S(` `) -//line messages.qtpl:276 +//line messages.qtpl:273 + qw422016.N().S(` `) +//line messages.qtpl:274 } -//line messages.qtpl:276 +//line messages.qtpl:274 qw422016.N().S(` - `) -//line messages.qtpl:277 + `) +//line messages.qtpl:275 if len(Data.Messages) == 0 { -//line messages.qtpl:277 +//line messages.qtpl:275 qw422016.N().S(` - <div id="no-msg"><em>No message yet</em></div> - `) -//line messages.qtpl:279 + <div id="no-msg"><em>No message yet</em></div> + `) +//line messages.qtpl:277 } -//line messages.qtpl:279 +//line messages.qtpl:277 qw422016.N().S(` `) -//line messages.qtpl:280 +//line messages.qtpl:278 } -//line messages.qtpl:280 +//line messages.qtpl:278 func WriteRenderMessages(qq422016 qtio422016.Writer, AuthUser *database.User, Data ChatMessagesData, CSRF, NullUsername string) { -//line messages.qtpl:280 +//line messages.qtpl:278 qw422016 := qt422016.AcquireWriter(qq422016) -//line messages.qtpl:280 +//line messages.qtpl:278 StreamRenderMessages(qw422016, AuthUser, Data, CSRF, NullUsername) -//line messages.qtpl:280 +//line messages.qtpl:278 qt422016.ReleaseWriter(qw422016) -//line messages.qtpl:280 +//line messages.qtpl:278 } -//line messages.qtpl:280 +//line messages.qtpl:278 func RenderMessages(AuthUser *database.User, Data ChatMessagesData, CSRF, NullUsername string) string { -//line messages.qtpl:280 +//line messages.qtpl:278 qb422016 := qt422016.AcquireByteBuffer() -//line messages.qtpl:280 +//line messages.qtpl:278 WriteRenderMessages(qb422016, AuthUser, Data, CSRF, NullUsername) -//line messages.qtpl:280 +//line messages.qtpl:278 qs422016 := string(qb422016.B) -//line messages.qtpl:280 +//line messages.qtpl:278 qt422016.ReleaseByteBuffer(qb422016) -//line messages.qtpl:280 +//line messages.qtpl:278 return qs422016 -//line messages.qtpl:280 +//line messages.qtpl:278 } -//line messages.qtpl:282 +//line messages.qtpl:280 func StreamRenderMessage(qw422016 *qt422016.Writer, idx int, e database.ChatMessage, AuthUser *database.User, Data ChatMessagesData, baseTopBarURL string, readMarkerRendered, isFirstMsg *bool, CSRF, NullUsername string) { -//line messages.qtpl:284 +//line messages.qtpl:282 if e.UserCanSee(*AuthUser) { -//line messages.qtpl:284 +//line messages.qtpl:282 qw422016.N().S(` <div id="msgid-`) -//line messages.qtpl:285 +//line messages.qtpl:283 qw422016.E().S(e.UUID) -//line messages.qtpl:285 +//line messages.qtpl:283 qw422016.N().S(`" class="msg `) -//line messages.qtpl:286 +//line messages.qtpl:284 if (e.User.IsHellbanned || e.IsHellbanned) && AuthUser.DisplayHellbanned { -//line messages.qtpl:286 +//line messages.qtpl:284 qw422016.N().S(` hb-row `) -//line messages.qtpl:287 +//line messages.qtpl:285 } else if AuthUser.ID == e.User.ID && AuthUser.HighlightOwnMessages { -//line messages.qtpl:287 +//line messages.qtpl:285 qw422016.N().S(` own-highlight`) -//line messages.qtpl:287 +//line messages.qtpl:285 } -//line messages.qtpl:288 +//line messages.qtpl:286 if AuthUser.ChatReadMarkerEnabled && e.CreatedAt.Before(Data.ReadMarker.ReadAt) && !*readMarkerRendered { -//line messages.qtpl:288 +//line messages.qtpl:286 qw422016.N().S(` `) -//line messages.qtpl:289 +//line messages.qtpl:287 if idx > 0 { -//line messages.qtpl:289 +//line messages.qtpl:287 qw422016.N().S(`read-marker`) -//line messages.qtpl:289 +//line messages.qtpl:287 } -//line messages.qtpl:290 +//line messages.qtpl:288 *readMarkerRendered = true -//line messages.qtpl:291 +//line messages.qtpl:289 } -//line messages.qtpl:291 +//line messages.qtpl:289 qw422016.N().S(` "> `) -//line messages.qtpl:293 +//line messages.qtpl:291 if e.UserCanDelete(*AuthUser) { -//line messages.qtpl:294 +//line messages.qtpl:292 if !e.TooOldToDelete() { -//line messages.qtpl:295 +//line messages.qtpl:293 if AuthUser.DisplayDeleteButton { -//line messages.qtpl:295 +//line messages.qtpl:293 qw422016.N().S(` <form method="post" action="/api/v1/chat/messages/delete/`) -//line messages.qtpl:296 +//line messages.qtpl:294 qw422016.E().S(e.UUID) -//line messages.qtpl:296 +//line messages.qtpl:294 qw422016.N().S(`" class="d-inline"> <input type="hidden" name="csrf" value="`) -//line messages.qtpl:297 +//line messages.qtpl:295 qw422016.E().S(CSRF) -//line messages.qtpl:297 +//line messages.qtpl:295 qw422016.N().S(`" /> <button class="mod-btn delete_msg_btn" title="delete"></button> </form> `) -//line messages.qtpl:300 +//line messages.qtpl:298 } -//line messages.qtpl:301 +//line messages.qtpl:299 } else if (AuthUser.IsModerator() && e.TooOldToDelete() && e.UserID != AuthUser.ID) || AuthUser.IsAdmin || (e.Room.OwnerUserID != nil && *e.Room.OwnerUserID == AuthUser.ID) { -//line messages.qtpl:302 +//line messages.qtpl:300 if AuthUser.DisplayDeleteButton { -//line messages.qtpl:302 +//line messages.qtpl:300 qw422016.N().S(` <form method="post" action="/api/v1/chat/messages/delete/`) -//line messages.qtpl:303 +//line messages.qtpl:301 qw422016.E().S(e.UUID) -//line messages.qtpl:303 +//line messages.qtpl:301 qw422016.N().S(`" class="d-inline"> <input type="hidden" name="csrf" value="`) -//line messages.qtpl:304 +//line messages.qtpl:302 qw422016.E().S(CSRF) -//line messages.qtpl:304 +//line messages.qtpl:302 qw422016.N().S(`" /> <button class="mod-btn delete_msg_btn f-orange-clr" title="delete"></button> </form> `) -//line messages.qtpl:307 +//line messages.qtpl:305 } -//line messages.qtpl:308 +//line messages.qtpl:306 } else if AuthUser.IsModerator() { -//line messages.qtpl:309 +//line messages.qtpl:307 if AuthUser.DisplayDeleteButton { -//line messages.qtpl:309 +//line messages.qtpl:307 qw422016.N().S(` <div class="spacer16"></div> `) -//line messages.qtpl:311 +//line messages.qtpl:309 } -//line messages.qtpl:312 +//line messages.qtpl:310 } else { -//line messages.qtpl:313 +//line messages.qtpl:311 if AuthUser.DisplayDeleteButton { -//line messages.qtpl:313 +//line messages.qtpl:311 qw422016.N().S(` <div class="spacer16"></div> `) -//line messages.qtpl:315 +//line messages.qtpl:313 } -//line messages.qtpl:316 +//line messages.qtpl:314 } -//line messages.qtpl:317 +//line messages.qtpl:315 if AuthUser.IsModerator() { -//line messages.qtpl:318 +//line messages.qtpl:316 if e.UserID != AuthUser.ID { -//line messages.qtpl:319 +//line messages.qtpl:317 if AuthUser.DisplayHellbanButton { -//line messages.qtpl:320 +//line messages.qtpl:318 if e.User.Username == NullUsername { -//line messages.qtpl:320 +//line messages.qtpl:318 qw422016.N().S(` <div class="spacer16"></div> `) -//line messages.qtpl:322 +//line messages.qtpl:320 } else { -//line messages.qtpl:323 +//line messages.qtpl:321 if e.User.IsHellbanned { -//line messages.qtpl:323 +//line messages.qtpl:321 qw422016.N().S(` <form method="post" action="/api/v1/users/`) -//line messages.qtpl:324 +//line messages.qtpl:322 qw422016.E().S(e.UserID.String()) -//line messages.qtpl:324 +//line messages.qtpl:322 qw422016.N().S(`/unhellban" class="d-inline"> <input type="hidden" name="csrf" value="`) -//line messages.qtpl:325 +//line messages.qtpl:323 qw422016.E().S(CSRF) -//line messages.qtpl:325 +//line messages.qtpl:323 qw422016.N().S(`" /> <button class="mod-btn hb_btn f-orange-clr line-through" title="unhellban"></button> </form> `) -//line messages.qtpl:328 +//line messages.qtpl:326 } else { -//line messages.qtpl:328 +//line messages.qtpl:326 qw422016.N().S(` <form method="post" action="/api/v1/users/`) -//line messages.qtpl:329 +//line messages.qtpl:327 qw422016.E().S(e.UserID.String()) -//line messages.qtpl:329 +//line messages.qtpl:327 qw422016.N().S(`/hellban" class="d-inline"> <input type="hidden" name="csrf" value="`) -//line messages.qtpl:330 +//line messages.qtpl:328 qw422016.E().S(CSRF) -//line messages.qtpl:330 +//line messages.qtpl:328 qw422016.N().S(`" /> <button class="mod-btn hb_btn f-orange-clr" title="hellban"></button> </form> `) -//line messages.qtpl:333 +//line messages.qtpl:331 } -//line messages.qtpl:334 +//line messages.qtpl:332 } -//line messages.qtpl:335 +//line messages.qtpl:333 } -//line messages.qtpl:336 +//line messages.qtpl:334 if AuthUser.DisplayKickButton { -//line messages.qtpl:336 +//line messages.qtpl:334 qw422016.N().S(` <form method="post" action="/api/v1/users/`) -//line messages.qtpl:337 +//line messages.qtpl:335 qw422016.E().S(e.UserID.String()) -//line messages.qtpl:337 +//line messages.qtpl:335 qw422016.N().S(`/kick" class="d-inline"> <input type="hidden" name="csrf" value="`) -//line messages.qtpl:338 +//line messages.qtpl:336 qw422016.E().S(CSRF) -//line messages.qtpl:338 +//line messages.qtpl:336 qw422016.N().S(`" /> <button class="mod-btn k_btn f-orange-clr" title="kick"></button> </form> `) -//line messages.qtpl:341 +//line messages.qtpl:339 } -//line messages.qtpl:342 +//line messages.qtpl:340 } else { -//line messages.qtpl:343 +//line messages.qtpl:341 if AuthUser.DisplayKickButton && AuthUser.DisplayHellbanButton { -//line messages.qtpl:343 +//line messages.qtpl:341 qw422016.N().S(` <div class="spacer36"></div> `) -//line messages.qtpl:345 +//line messages.qtpl:343 } else if AuthUser.DisplayKickButton || AuthUser.DisplayHellbanButton { -//line messages.qtpl:345 +//line messages.qtpl:343 qw422016.N().S(` <div class="spacer16"></div> `) -//line messages.qtpl:347 +//line messages.qtpl:345 } -//line messages.qtpl:348 +//line messages.qtpl:346 } -//line messages.qtpl:349 +//line messages.qtpl:347 } -//line messages.qtpl:350 +//line messages.qtpl:348 } else { -//line messages.qtpl:351 +//line messages.qtpl:349 if Data.NbButtons == 3 { -//line messages.qtpl:351 +//line messages.qtpl:349 qw422016.N().S(` <div class="spacer56"></div> `) -//line messages.qtpl:353 +//line messages.qtpl:351 } else if Data.NbButtons == 2 { -//line messages.qtpl:353 +//line messages.qtpl:351 qw422016.N().S(` <div class="spacer36"></div> `) -//line messages.qtpl:355 +//line messages.qtpl:353 } else if Data.NbButtons == 1 { -//line messages.qtpl:355 +//line messages.qtpl:353 qw422016.N().S(` <div class="spacer16"></div> `) -//line messages.qtpl:357 +//line messages.qtpl:355 } -//line messages.qtpl:358 +//line messages.qtpl:356 } -//line messages.qtpl:359 +//line messages.qtpl:357 if AuthUser.GetDateFormat() != "" { -//line messages.qtpl:359 +//line messages.qtpl:357 qw422016.N().S(` <a href="`) -//line messages.qtpl:360 +//line messages.qtpl:358 qw422016.E().S(baseTopBarURL) -//line messages.qtpl:360 +//line messages.qtpl:358 qw422016.N().S(`?quote=`) -//line messages.qtpl:360 +//line messages.qtpl:358 qw422016.E().S(e.UUID) -//line messages.qtpl:360 +//line messages.qtpl:358 streamunesc(qw422016, Data.TopBarQueryParams) -//line messages.qtpl:360 +//line messages.qtpl:358 qw422016.N().S(`" target="iframe1" class="date date-link" title="`) -//line messages.qtpl:360 +//line messages.qtpl:358 qw422016.E().S(e.CreatedAt.Format("01-02 15:04:05")) -//line messages.qtpl:360 +//line messages.qtpl:358 if *isFirstMsg { -//line messages.qtpl:360 +//line messages.qtpl:358 qw422016.N().S(` (`) -//line messages.qtpl:360 +//line messages.qtpl:358 qw422016.E().S(humanize.Time(e.CreatedAt)) -//line messages.qtpl:360 +//line messages.qtpl:358 qw422016.N().S(`)`) -//line messages.qtpl:360 +//line messages.qtpl:358 } -//line messages.qtpl:360 +//line messages.qtpl:358 qw422016.N().S(`">`) -//line messages.qtpl:360 +//line messages.qtpl:358 qw422016.E().S(e.CreatedAt.Format(AuthUser.GetDateFormat())) -//line messages.qtpl:360 +//line messages.qtpl:358 qw422016.N().S(`</a> `) -//line messages.qtpl:361 +//line messages.qtpl:359 *isFirstMsg = false -//line messages.qtpl:361 +//line messages.qtpl:359 qw422016.N().S(` `) -//line messages.qtpl:362 +//line messages.qtpl:360 } -//line messages.qtpl:362 +//line messages.qtpl:360 qw422016.N().S(` <a href="/u/`) -//line messages.qtpl:363 +//line messages.qtpl:361 qw422016.E().S(e.GetProfile(AuthUser)) -//line messages.qtpl:363 +//line messages.qtpl:361 qw422016.N().S(`" target="_blank" class="f-def-clr">-</a> `) -//line messages.qtpl:364 +//line messages.qtpl:362 if e.System { -//line messages.qtpl:364 +//line messages.qtpl:362 qw422016.N().S(` <span class="sysmsg">`) -//line messages.qtpl:365 +//line messages.qtpl:363 streamunesc(qw422016, e.Message) -//line messages.qtpl:365 +//line messages.qtpl:363 qw422016.N().S(`</span> `) -//line messages.qtpl:366 +//line messages.qtpl:364 } else { -//line messages.qtpl:367 +//line messages.qtpl:365 if e.Moderators { -//line messages.qtpl:367 +//line messages.qtpl:365 qw422016.N().S(`<span class="sysmsg">[<a href="`) -//line messages.qtpl:367 +//line messages.qtpl:365 qw422016.E().S(baseTopBarURL) -//line messages.qtpl:367 +//line messages.qtpl:365 qw422016.N().S(`?m=1`) -//line messages.qtpl:367 +//line messages.qtpl:365 streamunesc(qw422016, Data.TopBarQueryParams) -//line messages.qtpl:367 +//line messages.qtpl:365 qw422016.N().S(`" target="iframe1" class="sysmsg f-white-clr">M</a>]</span>&nbsp;`) -//line messages.qtpl:367 +//line messages.qtpl:365 } -//line messages.qtpl:368 +//line messages.qtpl:366 if e.GroupID != nil { -//line messages.qtpl:368 +//line messages.qtpl:366 qw422016.N().S(`<span class="sysmsg">[<a href="`) -//line messages.qtpl:368 +//line messages.qtpl:366 qw422016.E().S(baseTopBarURL) -//line messages.qtpl:368 +//line messages.qtpl:366 qw422016.N().S(`?g=`) -//line messages.qtpl:368 +//line messages.qtpl:366 qw422016.E().S(e.Group.Name) -//line messages.qtpl:368 +//line messages.qtpl:366 streamunesc(qw422016, Data.TopBarQueryParams) -//line messages.qtpl:368 +//line messages.qtpl:366 qw422016.N().S(`" target="iframe1" class="sysmsg f-white-clr">`) -//line messages.qtpl:368 +//line messages.qtpl:366 qw422016.E().S(e.Group.Name) -//line messages.qtpl:368 +//line messages.qtpl:366 qw422016.N().S(`</a>]</span>&nbsp;`) -//line messages.qtpl:368 +//line messages.qtpl:366 } -//line messages.qtpl:369 +//line messages.qtpl:367 if e.ToUserID != nil { -//line messages.qtpl:369 +//line messages.qtpl:367 qw422016.N().S(` [`) -//line messages.qtpl:370 +//line messages.qtpl:368 streamfromUsername(qw422016, AuthUser, Data, e, baseTopBarURL) -//line messages.qtpl:370 +//line messages.qtpl:368 qw422016.N().S(` → `) -//line messages.qtpl:372 +//line messages.qtpl:370 if e.ToUser.ID == AuthUser.ID { -//line messages.qtpl:372 +//line messages.qtpl:370 qw422016.N().S(`<span `) -//line messages.qtpl:372 +//line messages.qtpl:370 streamunesc(qw422016, e.ToUser.GenerateChatStyle()) -//line messages.qtpl:372 +//line messages.qtpl:370 qw422016.N().S(`>`) -//line messages.qtpl:372 +//line messages.qtpl:370 qw422016.E().S(e.ToUser.Username) -//line messages.qtpl:372 +//line messages.qtpl:370 qw422016.N().S(`</span>`) -//line messages.qtpl:372 +//line messages.qtpl:370 } else { -//line messages.qtpl:372 +//line messages.qtpl:370 qw422016.N().S(`<a `) -//line messages.qtpl:372 +//line messages.qtpl:370 streamunesc(qw422016, e.ToUser.GenerateChatStyle()) -//line messages.qtpl:372 +//line messages.qtpl:370 qw422016.N().S(` href="`) -//line messages.qtpl:372 +//line messages.qtpl:370 qw422016.E().S(baseTopBarURL) -//line messages.qtpl:372 +//line messages.qtpl:370 qw422016.N().S(`?pm=`) -//line messages.qtpl:372 +//line messages.qtpl:370 qw422016.E().S(e.ToUser.Username) -//line messages.qtpl:372 +//line messages.qtpl:370 qw422016.E().S(Data.TopBarQueryParams) -//line messages.qtpl:372 +//line messages.qtpl:370 qw422016.N().S(`" target="iframe1">`) -//line messages.qtpl:372 +//line messages.qtpl:370 qw422016.E().S(e.ToUser.Username) -//line messages.qtpl:372 +//line messages.qtpl:370 qw422016.N().S(`</a>`) -//line messages.qtpl:372 +//line messages.qtpl:370 } -//line messages.qtpl:372 +//line messages.qtpl:370 qw422016.N().S(`] - `) -//line messages.qtpl:373 +//line messages.qtpl:371 } else { -//line messages.qtpl:374 +//line messages.qtpl:372 streamfromUsername(qw422016, AuthUser, Data, e, baseTopBarURL) -//line messages.qtpl:375 +//line messages.qtpl:373 if !e.IsMe() { -//line messages.qtpl:376 +//line messages.qtpl:374 if AuthUser.CanSeeHB() && (e.IsHellbanned || e.User.IsHellbanned) && (e.ToUserID == nil) { -//line messages.qtpl:376 +//line messages.qtpl:374 qw422016.N().S(` <a href="`) -//line messages.qtpl:377 +//line messages.qtpl:375 qw422016.E().S(baseTopBarURL) -//line messages.qtpl:377 +//line messages.qtpl:375 qw422016.N().S(`?hbm=1`) -//line messages.qtpl:377 +//line messages.qtpl:375 streamunesc(qw422016, Data.TopBarQueryParams) -//line messages.qtpl:377 +//line messages.qtpl:375 qw422016.N().S(`" target="iframe1" class="f-def-clr">-</a> `) -//line messages.qtpl:378 +//line messages.qtpl:376 } else { -//line messages.qtpl:378 +//line messages.qtpl:376 qw422016.N().S(` - `) -//line messages.qtpl:380 +//line messages.qtpl:378 } -//line messages.qtpl:381 +//line messages.qtpl:379 } -//line messages.qtpl:382 +//line messages.qtpl:380 } -//line messages.qtpl:382 +//line messages.qtpl:380 qw422016.N().S(` <span `) -//line messages.qtpl:383 +//line messages.qtpl:381 streamunesc(qw422016, e.User.GenerateChatStyle()) -//line messages.qtpl:383 +//line messages.qtpl:381 qw422016.N().S(`><span class="o-wrap">`) -//line messages.qtpl:383 +//line messages.qtpl:381 qw422016.N().S(unesc(e.MsgToDisplay())) -//line messages.qtpl:383 +//line messages.qtpl:381 qw422016.N().S(`</span></span> `) -//line messages.qtpl:384 +//line messages.qtpl:382 } -//line messages.qtpl:384 +//line messages.qtpl:382 qw422016.N().S(` </div> `) -//line messages.qtpl:386 +//line messages.qtpl:384 } -//line messages.qtpl:387 +//line messages.qtpl:385 } -//line messages.qtpl:387 +//line messages.qtpl:385 func WriteRenderMessage(qq422016 qtio422016.Writer, idx int, e database.ChatMessage, AuthUser *database.User, Data ChatMessagesData, baseTopBarURL string, readMarkerRendered, isFirstMsg *bool, CSRF, NullUsername string) { -//line messages.qtpl:387 +//line messages.qtpl:385 qw422016 := qt422016.AcquireWriter(qq422016) -//line messages.qtpl:387 +//line messages.qtpl:385 StreamRenderMessage(qw422016, idx, e, AuthUser, Data, baseTopBarURL, readMarkerRendered, isFirstMsg, CSRF, NullUsername) -//line messages.qtpl:387 +//line messages.qtpl:385 qt422016.ReleaseWriter(qw422016) -//line messages.qtpl:387 +//line messages.qtpl:385 } -//line messages.qtpl:387 +//line messages.qtpl:385 func RenderMessage(idx int, e database.ChatMessage, AuthUser *database.User, Data ChatMessagesData, baseTopBarURL string, readMarkerRendered, isFirstMsg *bool, CSRF, NullUsername string) string { -//line messages.qtpl:387 +//line messages.qtpl:385 qb422016 := qt422016.AcquireByteBuffer() -//line messages.qtpl:387 +//line messages.qtpl:385 WriteRenderMessage(qb422016, idx, e, AuthUser, Data, baseTopBarURL, readMarkerRendered, isFirstMsg, CSRF, NullUsername) -//line messages.qtpl:387 +//line messages.qtpl:385 qs422016 := string(qb422016.B) -//line messages.qtpl:387 +//line messages.qtpl:385 qt422016.ReleaseByteBuffer(qb422016) -//line messages.qtpl:387 +//line messages.qtpl:385 return qs422016 -//line messages.qtpl:387 +//line messages.qtpl:385 } -//line messages.qtpl:390 +//line messages.qtpl:388 func StreamMember(qw422016 *qt422016.Writer, AuthUser *database.User, Data ChatMessagesData, El managers.UserInfo) { -//line messages.qtpl:390 +//line messages.qtpl:388 qw422016.N().S(` `) -//line messages.qtpl:391 +//line messages.qtpl:389 baseTopBarURL := "/api/v1/chat/top-bar/" + Data.RoomName -//line messages.qtpl:392 +//line messages.qtpl:390 if El.Username == AuthUser.Username { -//line messages.qtpl:392 +//line messages.qtpl:390 qw422016.N().S(` <div> <span style="color: `) -//line messages.qtpl:394 +//line messages.qtpl:392 qw422016.E().S(El.Color) -//line messages.qtpl:394 +//line messages.qtpl:392 qw422016.N().S(`;">`) -//line messages.qtpl:394 +//line messages.qtpl:392 qw422016.E().S(El.Username) -//line messages.qtpl:394 +//line messages.qtpl:392 qw422016.N().S(`</span> `) -//line messages.qtpl:395 +//line messages.qtpl:393 if El.AfkIndicatorEnabled { -//line messages.qtpl:395 +//line messages.qtpl:393 qw422016.N().S(` <small class="afk-indicator">afk</small> `) -//line messages.qtpl:397 +//line messages.qtpl:395 } -//line messages.qtpl:397 +//line messages.qtpl:395 qw422016.N().S(` </div> `) -//line messages.qtpl:399 +//line messages.qtpl:397 } else { -//line messages.qtpl:400 +//line messages.qtpl:398 if !El.IsHellbanned || AuthUser.ID == El.UserID || (El.IsHellbanned && AuthUser.IsHellbanned) || AuthUser.DisplayHellbanned { -//line messages.qtpl:400 +//line messages.qtpl:398 qw422016.N().S(` <div> `) -//line messages.qtpl:402 +//line messages.qtpl:400 tagType := "tag" -//line messages.qtpl:403 +//line messages.qtpl:401 if AuthUser.CanSeeHB() && El.IsHellbanned { -//line messages.qtpl:404 +//line messages.qtpl:402 tagType = "htag" -//line messages.qtpl:405 +//line messages.qtpl:403 } -//line messages.qtpl:406 +//line messages.qtpl:404 qw422016.N().S(`<a href="`) -//line messages.qtpl:407 +//line messages.qtpl:405 qw422016.E().S(baseTopBarURL) -//line messages.qtpl:407 +//line messages.qtpl:405 qw422016.N().S(`?`) -//line messages.qtpl:407 +//line messages.qtpl:405 qw422016.E().S(tagType) -//line messages.qtpl:407 +//line messages.qtpl:405 qw422016.N().S(`=`) -//line messages.qtpl:407 +//line messages.qtpl:405 qw422016.E().S(El.Username) -//line messages.qtpl:407 +//line messages.qtpl:405 streamunesc(qw422016, Data.TopBarQueryParams) -//line messages.qtpl:407 +//line messages.qtpl:405 qw422016.N().S(`"target="iframe1"`) -//line messages.qtpl:409 +//line messages.qtpl:407 if El.IsHellbanned && AuthUser.DisplayHellbanned { -//line messages.qtpl:409 +//line messages.qtpl:407 qw422016.N().S(`class="hb-row"`) -//line messages.qtpl:409 +//line messages.qtpl:407 } -//line messages.qtpl:409 +//line messages.qtpl:407 qw422016.N().S(`style="color:`) -//line messages.qtpl:410 +//line messages.qtpl:408 qw422016.E().S(El.Color) -//line messages.qtpl:410 +//line messages.qtpl:408 qw422016.N().S(`;">`) -//line messages.qtpl:410 +//line messages.qtpl:408 qw422016.E().S(string(El.Username[0])) -//line messages.qtpl:410 +//line messages.qtpl:408 qw422016.N().S(`</a><a href="`) -//line messages.qtpl:411 +//line messages.qtpl:409 qw422016.E().S(baseTopBarURL) -//line messages.qtpl:411 +//line messages.qtpl:409 qw422016.N().S(`?pm=`) -//line messages.qtpl:411 +//line messages.qtpl:409 qw422016.E().S(El.Username) -//line messages.qtpl:411 +//line messages.qtpl:409 streamunesc(qw422016, Data.TopBarQueryParams) -//line messages.qtpl:411 +//line messages.qtpl:409 qw422016.N().S(`"target="iframe1"`) -//line messages.qtpl:413 +//line messages.qtpl:411 if El.IsHellbanned && AuthUser.DisplayHellbanned { -//line messages.qtpl:413 +//line messages.qtpl:411 qw422016.N().S(`class="hb-row"`) -//line messages.qtpl:413 +//line messages.qtpl:411 } -//line messages.qtpl:413 +//line messages.qtpl:411 qw422016.N().S(`style="color:`) -//line messages.qtpl:414 +//line messages.qtpl:412 qw422016.E().S(El.Color) -//line messages.qtpl:414 +//line messages.qtpl:412 qw422016.N().S(`;">`) -//line messages.qtpl:414 +//line messages.qtpl:412 qw422016.E().S(string(El.Username[1 : len(El.Username)-1])) -//line messages.qtpl:414 +//line messages.qtpl:412 qw422016.N().S(`</a><a href="/u/`) -//line messages.qtpl:415 +//line messages.qtpl:413 qw422016.E().S(El.Username) -//line messages.qtpl:415 +//line messages.qtpl:413 qw422016.N().S(`"rel="noopener noreferrer" target="_blank"`) -//line messages.qtpl:417 +//line messages.qtpl:415 if El.IsHellbanned && AuthUser.DisplayHellbanned { -//line messages.qtpl:417 +//line messages.qtpl:415 qw422016.N().S(`class="hb-row"`) -//line messages.qtpl:417 +//line messages.qtpl:415 } -//line messages.qtpl:417 +//line messages.qtpl:415 qw422016.N().S(`style="color:`) -//line messages.qtpl:418 +//line messages.qtpl:416 qw422016.E().S(El.Color) -//line messages.qtpl:418 +//line messages.qtpl:416 qw422016.N().S(`;">`) -//line messages.qtpl:418 +//line messages.qtpl:416 qw422016.E().S(string(El.Username[len(El.Username)-1])) -//line messages.qtpl:418 +//line messages.qtpl:416 qw422016.N().S(`</a>`) -//line messages.qtpl:420 +//line messages.qtpl:418 if El.AfkIndicatorEnabled { -//line messages.qtpl:420 +//line messages.qtpl:418 qw422016.N().S(` <small class="afk-indicator">afk</small> `) -//line messages.qtpl:422 +//line messages.qtpl:420 } -//line messages.qtpl:422 +//line messages.qtpl:420 qw422016.N().S(` </div> `) -//line messages.qtpl:424 +//line messages.qtpl:422 } -//line messages.qtpl:425 +//line messages.qtpl:423 } -//line messages.qtpl:426 +//line messages.qtpl:424 } -//line messages.qtpl:426 +//line messages.qtpl:424 func WriteMember(qq422016 qtio422016.Writer, AuthUser *database.User, Data ChatMessagesData, El managers.UserInfo) { -//line messages.qtpl:426 +//line messages.qtpl:424 qw422016 := qt422016.AcquireWriter(qq422016) -//line messages.qtpl:426 +//line messages.qtpl:424 StreamMember(qw422016, AuthUser, Data, El) -//line messages.qtpl:426 +//line messages.qtpl:424 qt422016.ReleaseWriter(qw422016) -//line messages.qtpl:426 +//line messages.qtpl:424 } -//line messages.qtpl:426 +//line messages.qtpl:424 func Member(AuthUser *database.User, Data ChatMessagesData, El managers.UserInfo) string { -//line messages.qtpl:426 +//line messages.qtpl:424 qb422016 := qt422016.AcquireByteBuffer() -//line messages.qtpl:426 +//line messages.qtpl:424 WriteMember(qb422016, AuthUser, Data, El) -//line messages.qtpl:426 +//line messages.qtpl:424 qs422016 := string(qb422016.B) -//line messages.qtpl:426 +//line messages.qtpl:424 qt422016.ReleaseByteBuffer(qb422016) -//line messages.qtpl:426 +//line messages.qtpl:424 return qs422016 -//line messages.qtpl:426 +//line messages.qtpl:424 } -//line messages.qtpl:429 +//line messages.qtpl:427 func streamfromUsername(qw422016 *qt422016.Writer, AuthUser *database.User, Data ChatMessagesData, El database.ChatMessage, baseTopBarURL string) { -//line messages.qtpl:430 +//line messages.qtpl:428 tagType := "tag" -//line messages.qtpl:431 +//line messages.qtpl:429 if El.ToUserID != nil { -//line messages.qtpl:432 +//line messages.qtpl:430 tagType = "pm" -//line messages.qtpl:433 +//line messages.qtpl:431 } else if AuthUser.CanSeeHB() && (El.IsHellbanned || El.User.IsHellbanned) { -//line messages.qtpl:434 +//line messages.qtpl:432 tagType = "htag" -//line messages.qtpl:435 +//line messages.qtpl:433 } else if AuthUser.IsModerator() && El.Moderators { -//line messages.qtpl:436 +//line messages.qtpl:434 tagType = "mtag" -//line messages.qtpl:437 +//line messages.qtpl:435 } -//line messages.qtpl:438 +//line messages.qtpl:436 if El.User.ID == AuthUser.ID { -//line messages.qtpl:439 +//line messages.qtpl:437 if El.CanBeEdited() { -//line messages.qtpl:439 +//line messages.qtpl:437 qw422016.N().S(`<a `) -//line messages.qtpl:439 +//line messages.qtpl:437 streamunesc(qw422016, El.User.GenerateChatStyle()) -//line messages.qtpl:439 +//line messages.qtpl:437 qw422016.N().S(` href="`) -//line messages.qtpl:439 +//line messages.qtpl:437 qw422016.E().S(baseTopBarURL) -//line messages.qtpl:439 +//line messages.qtpl:437 qw422016.N().S(`?e=`) -//line messages.qtpl:439 +//line messages.qtpl:437 qw422016.E().S(El.CreatedAt.Format("15:04:05")) -//line messages.qtpl:439 +//line messages.qtpl:437 streamunesc(qw422016, Data.TopBarQueryParams) -//line messages.qtpl:439 +//line messages.qtpl:437 qw422016.N().S(`" target="iframe1">`) -//line messages.qtpl:439 +//line messages.qtpl:437 qw422016.E().S(El.User.Username) -//line messages.qtpl:439 +//line messages.qtpl:437 qw422016.N().S(`</a>`) -//line messages.qtpl:439 +//line messages.qtpl:437 } else { -//line messages.qtpl:439 +//line messages.qtpl:437 qw422016.N().S(`<span `) -//line messages.qtpl:439 +//line messages.qtpl:437 streamunesc(qw422016, El.User.GenerateChatStyle()) -//line messages.qtpl:439 +//line messages.qtpl:437 qw422016.N().S(`>`) -//line messages.qtpl:439 +//line messages.qtpl:437 qw422016.E().S(El.User.Username) -//line messages.qtpl:439 +//line messages.qtpl:437 qw422016.N().S(`</span>`) -//line messages.qtpl:439 +//line messages.qtpl:437 } -//line messages.qtpl:440 +//line messages.qtpl:438 } else { -//line messages.qtpl:440 +//line messages.qtpl:438 qw422016.N().S(`<a `) -//line messages.qtpl:440 +//line messages.qtpl:438 streamunesc(qw422016, El.User.GenerateChatStyle()) -//line messages.qtpl:440 +//line messages.qtpl:438 qw422016.N().S(` href="`) -//line messages.qtpl:440 +//line messages.qtpl:438 qw422016.E().S(baseTopBarURL) -//line messages.qtpl:440 +//line messages.qtpl:438 qw422016.N().S(`?`) -//line messages.qtpl:440 +//line messages.qtpl:438 qw422016.E().S(tagType) -//line messages.qtpl:440 +//line messages.qtpl:438 qw422016.N().S(`=`) -//line messages.qtpl:440 +//line messages.qtpl:438 qw422016.E().S(El.User.Username) -//line messages.qtpl:440 +//line messages.qtpl:438 streamunesc(qw422016, Data.TopBarQueryParams) -//line messages.qtpl:440 +//line messages.qtpl:438 qw422016.N().S(`" target="iframe1">`) -//line messages.qtpl:440 +//line messages.qtpl:438 qw422016.E().S(El.User.Username) -//line messages.qtpl:440 +//line messages.qtpl:438 qw422016.N().S(`</a>`) -//line messages.qtpl:440 +//line messages.qtpl:438 } -//line messages.qtpl:441 +//line messages.qtpl:439 } -//line messages.qtpl:441 +//line messages.qtpl:439 func writefromUsername(qq422016 qtio422016.Writer, AuthUser *database.User, Data ChatMessagesData, El database.ChatMessage, baseTopBarURL string) { -//line messages.qtpl:441 +//line messages.qtpl:439 qw422016 := qt422016.AcquireWriter(qq422016) -//line messages.qtpl:441 +//line messages.qtpl:439 streamfromUsername(qw422016, AuthUser, Data, El, baseTopBarURL) -//line messages.qtpl:441 +//line messages.qtpl:439 qt422016.ReleaseWriter(qw422016) -//line messages.qtpl:441 +//line messages.qtpl:439 } -//line messages.qtpl:441 +//line messages.qtpl:439 func fromUsername(AuthUser *database.User, Data ChatMessagesData, El database.ChatMessage, baseTopBarURL string) string { -//line messages.qtpl:441 +//line messages.qtpl:439 qb422016 := qt422016.AcquireByteBuffer() -//line messages.qtpl:441 +//line messages.qtpl:439 writefromUsername(qb422016, AuthUser, Data, El, baseTopBarURL) -//line messages.qtpl:441 +//line messages.qtpl:439 qs422016 := string(qb422016.B) -//line messages.qtpl:441 +//line messages.qtpl:439 qt422016.ReleaseByteBuffer(qb422016) -//line messages.qtpl:441 +//line messages.qtpl:439 return qs422016 -//line messages.qtpl:441 +//line messages.qtpl:439 } diff --git a/pkg/web/handlers/handlers.go b/pkg/web/handlers/handlers.go @@ -4917,7 +4917,6 @@ func ChatStreamMessagesHandler(c echo.Context) error { c.Response().Header().Set("Transfer-Encoding", "chunked") c.Response().Header().Set("Connection", "keep-alive") - _, _ = c.Response().Write([]byte(cssReset)) data := v1.ChatMessagesData{} data.RoomName = room.Name _, _ = c.Response().Write([]byte(v1.GenerateStyle(authUser, data)))