messages.qtpl.go (45783B)
1 // Code generated by qtc from "messages.qtpl". DO NOT EDIT. 2 // See https://github.com/valyala/quicktemplate for details. 3 4 //line messages.qtpl:1 5 package v1 6 7 //line messages.qtpl:1 8 import "dkforest/pkg/database" 9 10 //line messages.qtpl:2 11 import "dkforest/pkg/managers" 12 13 //line messages.qtpl:3 14 import humanize "github.com/dustin/go-humanize" 15 16 //line messages.qtpl:5 17 import ( 18 qtio422016 "io" 19 20 qt422016 "github.com/valyala/quicktemplate" 21 ) 22 23 //line messages.qtpl:5 24 var ( 25 _ = qtio422016.Copy 26 _ = qt422016.AcquireByteBuffer 27 ) 28 29 //line messages.qtpl:5 30 func StreamGenerateStyle(qw422016 *qt422016.Writer, AuthUser *database.User, Data ChatMessagesData) { 31 //line messages.qtpl:5 32 qw422016.N().S(`<style> 33 /* http://meyerweb.com/eric/tools/css/reset/ 34 v2.0 | 20110126 35 License: none (public domain) 36 */ 37 html, body, div, span, applet, object, iframe, 38 h1, h2, h3, h4, h5, h6, p, blockquote, pre, 39 a, abbr, acronym, address, big, cite, code, 40 del, dfn, em, img, ins, kbd, q, s, samp, 41 small, strike, strong, sub, sup, tt, var, 42 b, u, i, center, 43 dl, dt, dd, ol, ul, li, 44 fieldset, form, label, legend, 45 table, caption, tbody, tfoot, thead, tr, th, td, 46 article, aside, canvas, details, embed, 47 figure, figcaption, footer, header, hgroup, 48 menu, nav, output, ruby, section, summary, 49 time, mark, audio, video { 50 margin: 0; 51 padding: 0; 52 border: 0; 53 font-size: 100%; 54 font: inherit; 55 vertical-align: baseline; 56 } 57 /* HTML5 display-role reset for older browsers */ 58 article, aside, details, figcaption, figure, 59 footer, header, hgroup, menu, nav, section { 60 display: block; 61 } 62 body { 63 line-height: 1; 64 } 65 ol, ul { 66 list-style: none; 67 } 68 blockquote, q { 69 quotes: none; 70 } 71 blockquote:before, blockquote:after, 72 q:before, q:after { 73 content: ''; 74 content: none; 75 } 76 table { 77 border-collapse: collapse; 78 border-spacing: 0; 79 } 80 /* --- end --- */ 81 82 i { font-style: italic; } 83 84 /* Remove button padding in FF */ 85 button::-moz-focus-inner { 86 border:0; 87 padding:0; 88 } 89 90 body { font-family: Lato,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"; } 91 a { color: #00bc8c; text-decoration: none; } 92 a:hover { color: #007053; text-decoration: underline; } 93 .unread_room { color: #2392da; text-decoration: none; } 94 .unread_room:hover { color: #004970; text-decoration: underline; } 95 .emoji { 96 font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort; 97 font-size: 17px; 98 } 99 .mod-btn { 100 width: 16px; height: 16px; 101 margin: 0; padding: 0; 102 border: 1px solid gray; 103 display: inline; 104 text-align: center; 105 vertical-align: middle; 106 user-select: none; 107 background-color: #444; 108 color: #ea2a2a; 109 -webkit-box-shadow: 1px 1px 1px rgba(0,0,0,0.25); 110 -moz-box-shadow: 1px 1px 1px rgba(0,0,0,0.25); 111 -webkit-border-radius: 3px; 112 -moz-border-radius: 3px; 113 } 114 .mod-btn:hover { 115 background-color: #222; 116 } 117 .delete_msg_btn { 118 font-size: 15px; 119 line-height: 1; 120 } 121 @keyframes hide_btn { 122 100% { visibility: hidden; } 123 } 124 @keyframes orange_btn { 125 99% { color: ea2a2a; } 100% { color: orange; } 126 } 127 .delete_msg_btn::after { content: "×"; } 128 .hb_btn { 129 font-size: 10px; 130 line-height: 1.4; 131 } 132 .hb_btn::after { content: "hb"; } 133 .k_btn { 134 font-size: 10px; 135 line-height: 1.4; 136 } 137 .k_btn::after { content: "k"; } 138 .connection-closed { 139 color: #bf2718; 140 display: block; 141 position: fixed; 142 text-align: center; 143 top: 0; 144 left: calc(50% - 200px); 145 width: 400px; 146 z-index: 2; 147 background-color: #500000; 148 border: 2px solid #ff0000; 149 } 150 #manualrefresh { 151 `) 152 //line messages.qtpl:125 153 if !Data.ForceManualRefresh { 154 //line messages.qtpl:125 155 qw422016.N().S(` 156 top: -200%; 157 animation: timeout_messages `) 158 //line messages.qtpl:127 159 qw422016.N().DL(Data.ManualRefreshTimeout) 160 //line messages.qtpl:127 161 qw422016.N().S(`s forwards; 162 `) 163 //line messages.qtpl:128 164 } 165 //line messages.qtpl:128 166 qw422016.N().S(` 167 color: #bf2718; 168 display: block; 169 position: fixed; 170 text-align: center; 171 left: calc(50% - 200px); 172 width: 400px; 173 z-index: 2; 174 background-color: #500000; 175 border: 2px solid #ff0000; 176 } 177 @keyframes timeout_messages { 178 0% { top: -200%; } 179 99% { top: -200%; } 180 100% { top: 0; } 181 } 182 .date { color: #999; font-family: 'Courier New', Courier, monospace; font-size: 14px; } 183 .date-link:hover { color: #999; text-decoration: underline; } 184 .sysmsg { color: #fff; font-family: 'Courier New', Courier, monospace; font-size: 14px; } 185 small { font-size: 80%; font-weight: 400; } 186 .msg { padding: 3px 0 3px 8px; border-bottom: 1px solid #444; color: #888; position: relative; } 187 .msg p:first-of-type { display: inline; } 188 strong { font-weight: bold; } 189 em { font-style: italic; } 190 pre { border: 1px solid #2b442b; padding: 2px; margin: 2px 0; max-height: `) 191 //line messages.qtpl:152 192 qw422016.N().DL(AuthUser.CodeBlockHeight) 193 //line messages.qtpl:152 194 qw422016.N().S(`px; overflow: auto; background-color: rgba(39,40,34,0.6) !important; 195 font-family: SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace; } 196 .fullscreen { position: absolute; margin-top: -19px; right: 3px; } 197 code { border: 1px solid #2b442b; color: #f92672; padding: 0 2px; margin: 0px 0; background-color: rgba(39,40,34,0.6) !important; } 198 .censored { background-color: black; color: black; padding: 0 3px; } 199 .censored:hover { background-color: black; color: white; } 200 .censored > a { color: black; } 201 .censored > a:hover { color: #007053; text-decoration: underline; } 202 ul { list-style-type: disc; margin: 0 0 0 15px; } 203 * { 204 -webkit-font-smoothing: antialiased; 205 -moz-osx-font-smoothing: grayscale; 206 } 207 .afk-indicator { color: #ff9a27; } 208 .spacer16 { display: inline-block; width: 16px; } 209 .spacer36 { display: inline-block; width: 36px; } 210 .spacer56 { display: inline-block; width: 56px; } 211 .d-inline { display: inline; } 212 .o-wrap { overflow-wrap: break-word; } 213 .f-def-clr { color: #888; } 214 .f-orange-clr { color: orange; } 215 .f-white-clr, .f-white-clr:hover { color: white; } 216 .line-through { text-decoration: line-through; } 217 .hb-row { background-color: rgba(0, 0, 0, 0.7); opacity: `) 218 //line messages.qtpl:175 219 qw422016.N().F(AuthUser.GetHellbanOpacityF64()) 220 //line messages.qtpl:175 221 qw422016.N().S(`; } 222 .own-highlight { background-color: rgba(255,241,176,0.05); } 223 .read-marker { border-style: outset; border-top: `) 224 //line messages.qtpl:177 225 qw422016.N().DL(AuthUser.ChatReadMarkerSize) 226 //line messages.qtpl:177 227 qw422016.N().S(`px solid `) 228 //line messages.qtpl:177 229 qw422016.E().S(AuthUser.ChatReadMarkerColor) 230 //line messages.qtpl:177 231 qw422016.N().S(`; } 232 #msgs { `) 233 //line messages.qtpl:178 234 if !Data.HideRightColumn { 235 //line messages.qtpl:178 236 qw422016.N().S(`width: calc(100% - 185px); float: left; `) 237 //line messages.qtpl:178 238 } 239 //line messages.qtpl:178 240 qw422016.N().S(`line-height: 1.2; } 241 #no-msg { padding-left: 10px; color: #ddd; } 242 #rgt-pane-w { width: 150px; height: 100%; position: fixed; right: 15px; overflow-y: auto; } 243 #rgt-pane { line-height: 1.15; } 244 .rgt-title { font-weight: bolder; color: #ced4da; } 245 .mb-20px { margin-bottom: 20px; } 246 .mb-30px { margin-bottom: 30px; } 247 .mt-5px { margin-top: 5px; } 248 .mt-10px { margin-top: 10px; } 249 .notif, .notif:hover { color: #e74c3c; } 250 #msg-err { background-color: #8f2d2d; color: #ffffff; padding: 1px 5px 2px 5px; display: block; text-decoration: none; } 251 #i { 252 background-color: #006400; 253 width: 18px; 254 height: 18px; 255 position: fixed; 256 top: 1px; 257 right: `) 258 //line messages.qtpl:195 259 if !Data.HideRightColumn { 260 //line messages.qtpl:195 261 qw422016.N().S(`35px`) 262 //line messages.qtpl:195 263 } else { 264 //line messages.qtpl:195 265 qw422016.N().S(`8px`) 266 //line messages.qtpl:195 267 } 268 //line messages.qtpl:195 269 qw422016.N().S(`; 270 border-radius: 9px; 271 animation: i1 30s forwards; 272 } 273 @keyframes i1 { 0% { background-color: #006400; } 32% { background-color: #006400; } 33% { background-color: #626400; } 99% { background-color: #626400; } 100% { background-color: #8b0000; } } 274 @keyframes i2 { 0% { background-color: #006400; } 32% { background-color: #006400; } 33% { background-color: #626400; } 99% { background-color: #626400; } 100% { background-color: #8b0000; } } 275 @keyframes horizontal-shaking1 { 276 0% { transform: translateX(0) } 277 25% { transform: translateX(9px) } 278 50% { transform: translateX(-9px) } 279 75% { transform: translateX(9px) } 280 100% { transform: translateX(0) } 281 } 282 @keyframes horizontal-shaking2 { 283 0% { transform: translateX(0) } 284 25% { transform: translateX(9px) } 285 50% { transform: translateX(-9px) } 286 75% { transform: translateX(9px) } 287 100% { transform: translateX(0) } 288 } 289 </style> 290 `) 291 //line messages.qtpl:216 292 } 293 294 //line messages.qtpl:216 295 func WriteGenerateStyle(qq422016 qtio422016.Writer, AuthUser *database.User, Data ChatMessagesData) { 296 //line messages.qtpl:216 297 qw422016 := qt422016.AcquireWriter(qq422016) 298 //line messages.qtpl:216 299 StreamGenerateStyle(qw422016, AuthUser, Data) 300 //line messages.qtpl:216 301 qt422016.ReleaseWriter(qw422016) 302 //line messages.qtpl:216 303 } 304 305 //line messages.qtpl:216 306 func GenerateStyle(AuthUser *database.User, Data ChatMessagesData) string { 307 //line messages.qtpl:216 308 qb422016 := qt422016.AcquireByteBuffer() 309 //line messages.qtpl:216 310 WriteGenerateStyle(qb422016, AuthUser, Data) 311 //line messages.qtpl:216 312 qs422016 := string(qb422016.B) 313 //line messages.qtpl:216 314 qt422016.ReleaseByteBuffer(qb422016) 315 //line messages.qtpl:216 316 return qs422016 317 //line messages.qtpl:216 318 } 319 320 //line messages.qtpl:218 321 func StreamMessages(qw422016 *qt422016.Writer, VERSION, CSRF, NullUsername string, AuthUser *database.User, Data ChatMessagesData) { 322 //line messages.qtpl:218 323 qw422016.N().S(`<html lang="en"> 324 <head> 325 <title></title> 326 `) 327 //line messages.qtpl:222 328 if !Data.ChatMenuData.PreventRefresh && !Data.ForceManualRefresh { 329 //line messages.qtpl:222 330 qw422016.N().S(`<meta http-equiv="refresh" content="`) 331 //line messages.qtpl:222 332 qw422016.N().DL(AuthUser.RefreshRate) 333 //line messages.qtpl:222 334 qw422016.N().S(`">`) 335 //line messages.qtpl:222 336 } 337 //line messages.qtpl:223 338 if AuthUser.CollectMetadata { 339 //line messages.qtpl:223 340 qw422016.N().S(`<link rel="stylesheet" type="text/css" href="/public/css/meta.css?v=`) 341 //line messages.qtpl:223 342 qw422016.E().S(VERSION) 343 //line messages.qtpl:223 344 qw422016.N().S(`" />`) 345 //line messages.qtpl:223 346 } 347 //line messages.qtpl:224 348 StreamGenerateStyle(qw422016, AuthUser, Data) 349 //line messages.qtpl:224 350 qw422016.N().S(` <style>#btn_delete_useless:active { background-image: url('/api/v1/chat/messages/delete/useless'); }</style> 351 </head> 352 <body> 353 354 `) 355 //line messages.qtpl:229 356 if Data.ForceManualRefresh { 357 //line messages.qtpl:229 358 qw422016.N().S(` <div id="manualrefresh"> 359 <h4>Manual refresh required</h4> 360 <form method="get" action="/chat/`) 361 //line messages.qtpl:232 362 qw422016.E().S(Data.ChatMenuData.RoomName) 363 //line messages.qtpl:232 364 qw422016.N().S(`" target="_top"> 365 <input type="submit" value="Reload" /> 366 </form> 367 </div> 368 `) 369 //line messages.qtpl:236 370 } else if !Data.ChatMenuData.PreventRefresh { 371 //line messages.qtpl:236 372 qw422016.N().S(` <div id="manualrefresh"> 373 <h4>Manual refresh required</h4> 374 <form method="get"> 375 <input type="submit" value="Reload" /> 376 </form> 377 </div> 378 `) 379 //line messages.qtpl:243 380 } 381 //line messages.qtpl:243 382 qw422016.N().S(` 383 `) 384 //line messages.qtpl:245 385 if Data.Error != "" { 386 //line messages.qtpl:245 387 qw422016.N().S(` <a href="/api/v1/chat/messages/`) 388 //line messages.qtpl:246 389 qw422016.E().S(Data.ChatMenuData.RoomName) 390 //line messages.qtpl:246 391 qw422016.N().S(`" id="msg-err">× `) 392 //line messages.qtpl:246 393 qw422016.E().S(Data.Error) 394 //line messages.qtpl:246 395 qw422016.N().S(`</a> 396 `) 397 //line messages.qtpl:247 398 } 399 //line messages.qtpl:247 400 qw422016.N().S(` 401 `) 402 //line messages.qtpl:249 403 if Data.PmSound || Data.TaggedSound { 404 //line messages.qtpl:249 405 qw422016.N().S(` <audio src="/public/mp3/sound5.mp3" autoplay></audio> 406 `) 407 //line messages.qtpl:251 408 } else if Data.NewMessageSound { 409 //line messages.qtpl:251 410 qw422016.N().S(` <audio src="/public/mp3/sound6.mp3" autoplay></audio> 411 `) 412 //line messages.qtpl:253 413 } 414 //line messages.qtpl:253 415 qw422016.N().S(` 416 <div id="msgs"> 417 `) 418 //line messages.qtpl:256 419 StreamRenderMessages(qw422016, AuthUser, Data, CSRF, NullUsername, nil, false) 420 //line messages.qtpl:256 421 qw422016.N().S(` </div> 422 423 `) 424 //line messages.qtpl:259 425 if !AuthUser.HideRightColumn { 426 //line messages.qtpl:259 427 qw422016.N().S(` 428 <div id="rgt-pane-w"> 429 `) 430 //line messages.qtpl:261 431 StreamRenderRightColumn(qw422016, AuthUser, Data.ChatMenuData) 432 //line messages.qtpl:261 433 qw422016.N().S(` </div> 434 `) 435 //line messages.qtpl:263 436 } 437 //line messages.qtpl:264 438 if AuthUser.CollectMetadata { 439 //line messages.qtpl:264 440 qw422016.N().S(` <div class="div_1"></div> 441 <div class="div_2"></div> 442 <div class="div_f0">a</div> 443 `) 444 //line messages.qtpl:268 445 } 446 //line messages.qtpl:268 447 qw422016.N().S(` </body> 448 </html> 449 `) 450 //line messages.qtpl:271 451 } 452 453 //line messages.qtpl:271 454 func WriteMessages(qq422016 qtio422016.Writer, VERSION, CSRF, NullUsername string, AuthUser *database.User, Data ChatMessagesData) { 455 //line messages.qtpl:271 456 qw422016 := qt422016.AcquireWriter(qq422016) 457 //line messages.qtpl:271 458 StreamMessages(qw422016, VERSION, CSRF, NullUsername, AuthUser, Data) 459 //line messages.qtpl:271 460 qt422016.ReleaseWriter(qw422016) 461 //line messages.qtpl:271 462 } 463 464 //line messages.qtpl:271 465 func Messages(VERSION, CSRF, NullUsername string, AuthUser *database.User, Data ChatMessagesData) string { 466 //line messages.qtpl:271 467 qb422016 := qt422016.AcquireByteBuffer() 468 //line messages.qtpl:271 469 WriteMessages(qb422016, VERSION, CSRF, NullUsername, AuthUser, Data) 470 //line messages.qtpl:271 471 qs422016 := string(qb422016.B) 472 //line messages.qtpl:271 473 qt422016.ReleaseByteBuffer(qb422016) 474 //line messages.qtpl:271 475 return qs422016 476 //line messages.qtpl:271 477 } 478 479 //line messages.qtpl:274 480 func StreamRenderRightColumn(qw422016 *qt422016.Writer, AuthUser *database.User, Data ChatMenuData) { 481 //line messages.qtpl:274 482 qw422016.N().S(`<div id="rgt-pane"> 483 <div class="mb-20px"> 484 <div class="rgt-title">Inbox (<a href="/settings/inbox" target="_top"`) 485 //line messages.qtpl:277 486 if Data.InboxCount > 0 { 487 //line messages.qtpl:277 488 qw422016.N().S(`class="notif"`) 489 //line messages.qtpl:277 490 } 491 //line messages.qtpl:277 492 qw422016.N().S(`>`) 493 //line messages.qtpl:277 494 qw422016.N().DL(Data.InboxCount) 495 //line messages.qtpl:277 496 qw422016.N().S(`</a>)</div> 497 </div> 498 <div class="mb-20px"> 499 <div class="rgt-title">Rooms:</div> 500 `) 501 //line messages.qtpl:281 502 for _, e := range Data.OfficialRooms { 503 //line messages.qtpl:282 504 if e.Name == "club" { 505 //line messages.qtpl:283 506 if AuthUser.IsClubMember { 507 //line messages.qtpl:283 508 qw422016.N().S(` <div><a href="/chat/club" target="_top"`) 509 //line messages.qtpl:284 510 if e.IsUnread { 511 //line messages.qtpl:284 512 qw422016.N().S(` class="unread_room"`) 513 //line messages.qtpl:284 514 } 515 //line messages.qtpl:284 516 qw422016.N().S(`>#club</a></div> 517 `) 518 //line messages.qtpl:285 519 } 520 //line messages.qtpl:286 521 } else if e.Name == "moderators" { 522 //line messages.qtpl:287 523 if AuthUser.IsModerator() { 524 //line messages.qtpl:287 525 qw422016.N().S(` <div><a href="/chat/moderators" target="_top"`) 526 //line messages.qtpl:288 527 if e.IsUnread { 528 //line messages.qtpl:288 529 qw422016.N().S(` class="unread_room"`) 530 //line messages.qtpl:288 531 } 532 //line messages.qtpl:288 533 qw422016.N().S(`>#moderators</a></div> 534 `) 535 //line messages.qtpl:289 536 } 537 //line messages.qtpl:290 538 } else { 539 //line messages.qtpl:290 540 qw422016.N().S(` <div><a href="/chat/`) 541 //line messages.qtpl:291 542 qw422016.E().S(e.Name) 543 //line messages.qtpl:291 544 qw422016.N().S(`" target="_top"`) 545 //line messages.qtpl:291 546 if e.IsUnread { 547 //line messages.qtpl:291 548 qw422016.N().S(` class="unread_room"`) 549 //line messages.qtpl:291 550 } 551 //line messages.qtpl:291 552 qw422016.N().S(`>#`) 553 //line messages.qtpl:291 554 qw422016.E().S(e.Name) 555 //line messages.qtpl:291 556 qw422016.N().S(`</a></div> 557 `) 558 //line messages.qtpl:292 559 } 560 //line messages.qtpl:293 561 } 562 //line messages.qtpl:294 563 if len(Data.SubscribedRooms) > 0 { 564 //line messages.qtpl:294 565 qw422016.N().S(` <div class="mt-10px"></div> 566 `) 567 //line messages.qtpl:296 568 for _, e := range Data.SubscribedRooms { 569 //line messages.qtpl:296 570 qw422016.N().S(` <div><a href="/chat/`) 571 //line messages.qtpl:297 572 qw422016.E().S(e.Name) 573 //line messages.qtpl:297 574 qw422016.N().S(`" target="_top"`) 575 //line messages.qtpl:297 576 if e.IsUnread { 577 //line messages.qtpl:297 578 qw422016.N().S(` class="unread_room"`) 579 //line messages.qtpl:297 580 } 581 //line messages.qtpl:297 582 qw422016.N().S(`>#`) 583 //line messages.qtpl:297 584 qw422016.E().S(e.Name) 585 //line messages.qtpl:297 586 qw422016.N().S(`</a></div> 587 `) 588 //line messages.qtpl:298 589 } 590 //line messages.qtpl:299 591 } 592 //line messages.qtpl:299 593 qw422016.N().S(` <div class="mt-5px"><a href="/rooms" target="_top">[...]</a></div> 594 </div> 595 <div class="mb-20px"> 596 <div class="rgt-title">In this room:</div> 597 `) 598 //line messages.qtpl:304 599 for _, e := range Data.Members { 600 //line messages.qtpl:304 601 qw422016.N().S(` `) 602 //line messages.qtpl:305 603 StreamMember(qw422016, AuthUser, Data, e) 604 //line messages.qtpl:305 605 qw422016.N().S(` 606 `) 607 //line messages.qtpl:306 608 } 609 //line messages.qtpl:306 610 qw422016.N().S(` </div> 611 `) 612 //line messages.qtpl:308 613 if Data.VisibleMemberInChat || AuthUser.DisplayHellbanned { 614 //line messages.qtpl:308 615 qw422016.N().S(` <div class="mb-30px"> 616 `) 617 //line messages.qtpl:310 618 if len(Data.MembersInChat) > 0 { 619 //line messages.qtpl:310 620 qw422016.N().S(` <div class="rgt-title">In other rooms:</div> 621 `) 622 //line messages.qtpl:312 623 for _, e := range Data.MembersInChat { 624 //line messages.qtpl:312 625 qw422016.N().S(` `) 626 //line messages.qtpl:313 627 StreamMember(qw422016, AuthUser, Data, e) 628 //line messages.qtpl:313 629 qw422016.N().S(` 630 `) 631 //line messages.qtpl:314 632 } 633 //line messages.qtpl:315 634 } 635 //line messages.qtpl:315 636 qw422016.N().S(` </div> 637 `) 638 //line messages.qtpl:317 639 } 640 //line messages.qtpl:317 641 qw422016.N().S(`</div> 642 `) 643 //line messages.qtpl:319 644 } 645 646 //line messages.qtpl:319 647 func WriteRenderRightColumn(qq422016 qtio422016.Writer, AuthUser *database.User, Data ChatMenuData) { 648 //line messages.qtpl:319 649 qw422016 := qt422016.AcquireWriter(qq422016) 650 //line messages.qtpl:319 651 StreamRenderRightColumn(qw422016, AuthUser, Data) 652 //line messages.qtpl:319 653 qt422016.ReleaseWriter(qw422016) 654 //line messages.qtpl:319 655 } 656 657 //line messages.qtpl:319 658 func RenderRightColumn(AuthUser *database.User, Data ChatMenuData) string { 659 //line messages.qtpl:319 660 qb422016 := qt422016.AcquireByteBuffer() 661 //line messages.qtpl:319 662 WriteRenderRightColumn(qb422016, AuthUser, Data) 663 //line messages.qtpl:319 664 qs422016 := string(qb422016.B) 665 //line messages.qtpl:319 666 qt422016.ReleaseByteBuffer(qb422016) 667 //line messages.qtpl:319 668 return qs422016 669 //line messages.qtpl:319 670 } 671 672 //line messages.qtpl:321 673 func StreamRenderMessages(qw422016 *qt422016.Writer, AuthUser database.IUserRenderMessage, Data ChatMessagesData, CSRF, NullUsername string, readMarkerRev *int, isEdit bool) { 674 //line messages.qtpl:323 675 baseTopBarURL := "/api/v1/chat/top-bar/" + Data.ChatMenuData.RoomName 676 readMarkerRendered := false 677 isFirstMsg := true 678 679 //line messages.qtpl:326 680 qw422016.N().S(` <style>#btn_delete_useless:active { background-image: url('/api/v1/chat/messages/delete/useless'); }</style> 681 `) 682 //line messages.qtpl:328 683 for idx, e := range Data.Messages { 684 //line messages.qtpl:329 685 StreamRenderMessage(qw422016, idx, e, AuthUser, Data, baseTopBarURL, &readMarkerRendered, &isFirstMsg, CSRF, NullUsername, readMarkerRev, isEdit) 686 //line messages.qtpl:329 687 qw422016.N().S(` `) 688 //line messages.qtpl:330 689 } 690 //line messages.qtpl:330 691 qw422016.N().S(` 692 `) 693 //line messages.qtpl:331 694 if len(Data.Messages) == 0 { 695 //line messages.qtpl:331 696 qw422016.N().S(` 697 <div id="no-msg"><em>No message yet</em></div> 698 `) 699 //line messages.qtpl:333 700 } 701 //line messages.qtpl:333 702 qw422016.N().S(` 703 `) 704 //line messages.qtpl:334 705 } 706 707 //line messages.qtpl:334 708 func WriteRenderMessages(qq422016 qtio422016.Writer, AuthUser database.IUserRenderMessage, Data ChatMessagesData, CSRF, NullUsername string, readMarkerRev *int, isEdit bool) { 709 //line messages.qtpl:334 710 qw422016 := qt422016.AcquireWriter(qq422016) 711 //line messages.qtpl:334 712 StreamRenderMessages(qw422016, AuthUser, Data, CSRF, NullUsername, readMarkerRev, isEdit) 713 //line messages.qtpl:334 714 qt422016.ReleaseWriter(qw422016) 715 //line messages.qtpl:334 716 } 717 718 //line messages.qtpl:334 719 func RenderMessages(AuthUser database.IUserRenderMessage, Data ChatMessagesData, CSRF, NullUsername string, readMarkerRev *int, isEdit bool) string { 720 //line messages.qtpl:334 721 qb422016 := qt422016.AcquireByteBuffer() 722 //line messages.qtpl:334 723 WriteRenderMessages(qb422016, AuthUser, Data, CSRF, NullUsername, readMarkerRev, isEdit) 724 //line messages.qtpl:334 725 qs422016 := string(qb422016.B) 726 //line messages.qtpl:334 727 qt422016.ReleaseByteBuffer(qb422016) 728 //line messages.qtpl:334 729 return qs422016 730 //line messages.qtpl:334 731 } 732 733 //line messages.qtpl:336 734 func StreamRenderMessage(qw422016 *qt422016.Writer, idx int, e database.ChatMessage, AuthUser database.IUserRenderMessage, 735 Data ChatMessagesData, baseTopBarURL string, readMarkerRendered, isFirstMsg *bool, CSRF, NullUsername string, readMarkerRev *int, isEdit bool) { 736 //line messages.qtpl:338 737 if e.UserCanSee(AuthUser) { 738 //line messages.qtpl:339 739 if AuthUser.GetChatReadMarkerEnabled() && e.CreatedAt.Before(Data.ReadMarker.ReadAt) && !*readMarkerRendered && !isEdit { 740 //line messages.qtpl:339 741 qw422016.N().S(` 742 <div class="read-marker read-marker-0"`) 743 //line messages.qtpl:340 744 if idx == 0 { 745 //line messages.qtpl:340 746 qw422016.N().S(` style="display:none;"`) 747 //line messages.qtpl:340 748 } 749 //line messages.qtpl:340 750 qw422016.N().S(`></div> 751 `) 752 //line messages.qtpl:341 753 *readMarkerRendered = true 754 755 //line messages.qtpl:342 756 } else if AuthUser.GetChatReadMarkerEnabled() && e.CreatedAt.After(Data.ReadMarker.ReadAt) && !*readMarkerRendered && isEdit && readMarkerRev != nil { 757 //line messages.qtpl:342 758 qw422016.N().S(` <style>.read-marker-`) 759 //line messages.qtpl:343 760 qw422016.N().D((*readMarkerRev)) 761 //line messages.qtpl:343 762 qw422016.N().S(`{display:none !important;}</style> 763 `) 764 //line messages.qtpl:344 765 *readMarkerRev++ 766 767 //line messages.qtpl:344 768 qw422016.N().S(` <div class="read-marker read-marker-`) 769 //line messages.qtpl:345 770 qw422016.N().D(*readMarkerRev) 771 //line messages.qtpl:345 772 qw422016.N().S(`"></div> 773 `) 774 //line messages.qtpl:346 775 *readMarkerRendered = true 776 777 //line messages.qtpl:346 778 qw422016.N().S(` `) 779 //line messages.qtpl:347 780 } 781 //line messages.qtpl:347 782 qw422016.N().S(` 783 <div id="msgid-`) 784 //line messages.qtpl:348 785 qw422016.E().S(e.UUID) 786 //line messages.qtpl:348 787 qw422016.N().S(`" class="msgidc-`) 788 //line messages.qtpl:348 789 qw422016.E().S(e.UUID) 790 //line messages.qtpl:348 791 qw422016.N().S(`-`) 792 //line messages.qtpl:348 793 qw422016.N().DL(e.Rev) 794 //line messages.qtpl:348 795 qw422016.N().S(` msg 796 `) 797 //line messages.qtpl:349 798 if (e.User.IsHellbanned || e.IsHellbanned) && AuthUser.GetDisplayHellbanned() { 799 //line messages.qtpl:349 800 qw422016.N().S(` hb-row 801 `) 802 //line messages.qtpl:350 803 } else if AuthUser.GetID() == e.User.ID && AuthUser.GetHighlightOwnMessages() { 804 //line messages.qtpl:350 805 qw422016.N().S(` own-highlight`) 806 //line messages.qtpl:350 807 } 808 //line messages.qtpl:350 809 qw422016.N().S(` "> 810 `) 811 //line messages.qtpl:352 812 if e.UserCanDelete(AuthUser) { 813 //line messages.qtpl:353 814 if AuthUser.GetDisplayDeleteButton() { 815 //line messages.qtpl:354 816 if e.TooOldToDelete() { 817 //line messages.qtpl:354 818 qw422016.N().S(` <button id="btn_delete_`) 819 //line messages.qtpl:355 820 qw422016.E().S(e.UUID) 821 //line messages.qtpl:355 822 qw422016.N().S(`" class="mod-btn delete_msg_btn f-orange-clr" title="delete"></button> 823 `) 824 //line messages.qtpl:356 825 } else { 826 //line messages.qtpl:356 827 qw422016.N().S(` <button id="btn_delete_`) 828 //line messages.qtpl:357 829 qw422016.E().S(e.UUID) 830 //line messages.qtpl:357 831 qw422016.N().S(`" class="mod-btn delete_msg_btn" title="delete" 832 style=" 833 `) 834 //line messages.qtpl:359 835 if string(e.User.Username) != NullUsername { 836 //line messages.qtpl:360 837 if (AuthUser.IsModerator() && e.UserID != AuthUser.GetID()) || AuthUser.GetIsAdmin() || e.IsRoomOwner(AuthUser.GetID()) { 838 //line messages.qtpl:360 839 qw422016.N().S(` animation: `) 840 //line messages.qtpl:361 841 qw422016.N().DL(e.DeleteSecondsRemaining()) 842 //line messages.qtpl:361 843 qw422016.N().S(`s 1s forwards orange_btn; 844 `) 845 //line messages.qtpl:362 846 } else { 847 //line messages.qtpl:362 848 qw422016.N().S(` animation: `) 849 //line messages.qtpl:363 850 qw422016.N().DL(e.DeleteSecondsRemaining()) 851 //line messages.qtpl:363 852 qw422016.N().S(`s 1s forwards hide_btn; 853 `) 854 //line messages.qtpl:364 855 } 856 //line messages.qtpl:365 857 } 858 //line messages.qtpl:365 859 qw422016.N().S(` " 860 ></button> 861 `) 862 //line messages.qtpl:368 863 } 864 //line messages.qtpl:368 865 qw422016.N().S(` <style>#btn_delete_`) 866 //line messages.qtpl:369 867 qw422016.E().S(e.UUID) 868 //line messages.qtpl:369 869 qw422016.N().S(`:active { background-image: url('/api/v1/chat/messages/delete/`) 870 //line messages.qtpl:369 871 qw422016.E().S(e.UUID) 872 //line messages.qtpl:369 873 qw422016.N().S(`'); }</style> 874 `) 875 //line messages.qtpl:370 876 } 877 //line messages.qtpl:371 878 if AuthUser.IsModerator() { 879 //line messages.qtpl:372 880 if !e.OwnMessage(AuthUser.GetID()) { 881 //line messages.qtpl:373 882 if AuthUser.GetDisplayHellbanButton() { 883 //line messages.qtpl:374 884 if string(e.User.Username) == NullUsername { 885 //line messages.qtpl:374 886 qw422016.N().S(` <div class="spacer16"></div> 887 `) 888 //line messages.qtpl:376 889 } else { 890 //line messages.qtpl:377 891 if e.User.IsHellbanned { 892 //line messages.qtpl:377 893 qw422016.N().S(` <form method="post" action="/api/v1/users/`) 894 //line messages.qtpl:378 895 qw422016.E().S(e.UserID.String()) 896 //line messages.qtpl:378 897 qw422016.N().S(`/unhellban" class="d-inline"> 898 <input type="hidden" name="csrf" value="`) 899 //line messages.qtpl:379 900 qw422016.E().S(CSRF) 901 //line messages.qtpl:379 902 qw422016.N().S(`" /> 903 <button class="mod-btn hb_btn f-orange-clr line-through" title="unhellban"></button> 904 </form> 905 `) 906 //line messages.qtpl:382 907 } else { 908 //line messages.qtpl:382 909 qw422016.N().S(` <form method="post" action="/api/v1/users/`) 910 //line messages.qtpl:383 911 qw422016.E().S(e.UserID.String()) 912 //line messages.qtpl:383 913 qw422016.N().S(`/hellban" class="d-inline"> 914 <input type="hidden" name="csrf" value="`) 915 //line messages.qtpl:384 916 qw422016.E().S(CSRF) 917 //line messages.qtpl:384 918 qw422016.N().S(`" /> 919 <button class="mod-btn hb_btn f-orange-clr" title="hellban"></button> 920 </form> 921 `) 922 //line messages.qtpl:387 923 } 924 //line messages.qtpl:388 925 } 926 //line messages.qtpl:389 927 } 928 //line messages.qtpl:390 929 if AuthUser.GetDisplayKickButton() { 930 //line messages.qtpl:390 931 qw422016.N().S(` <form method="post" action="/api/v1/users/`) 932 //line messages.qtpl:391 933 qw422016.E().S(e.UserID.String()) 934 //line messages.qtpl:391 935 qw422016.N().S(`/kick" class="d-inline"> 936 <input type="hidden" name="csrf" value="`) 937 //line messages.qtpl:392 938 qw422016.E().S(CSRF) 939 //line messages.qtpl:392 940 qw422016.N().S(`" /> 941 <button class="mod-btn k_btn f-orange-clr" title="kick"></button> 942 </form> 943 `) 944 //line messages.qtpl:395 945 } 946 //line messages.qtpl:396 947 } else { 948 //line messages.qtpl:397 949 if AuthUser.GetDisplayKickButton() && AuthUser.GetDisplayHellbanButton() { 950 //line messages.qtpl:397 951 qw422016.N().S(` <div class="spacer36"></div> 952 `) 953 //line messages.qtpl:399 954 } else if AuthUser.GetDisplayKickButton() || AuthUser.GetDisplayHellbanButton() { 955 //line messages.qtpl:399 956 qw422016.N().S(` <div class="spacer16"></div> 957 `) 958 //line messages.qtpl:401 959 } 960 //line messages.qtpl:402 961 } 962 //line messages.qtpl:403 963 } 964 //line messages.qtpl:404 965 } else { 966 //line messages.qtpl:405 967 if Data.NbButtons == 3 { 968 //line messages.qtpl:405 969 qw422016.N().S(` <div class="spacer56"></div> 970 `) 971 //line messages.qtpl:407 972 } else if Data.NbButtons == 2 { 973 //line messages.qtpl:407 974 qw422016.N().S(` <div class="spacer36"></div> 975 `) 976 //line messages.qtpl:409 977 } else if Data.NbButtons == 1 { 978 //line messages.qtpl:409 979 qw422016.N().S(` <div class="spacer16"></div> 980 `) 981 //line messages.qtpl:411 982 } 983 //line messages.qtpl:412 984 } 985 //line messages.qtpl:413 986 if !Data.HideTimestamps { 987 //line messages.qtpl:413 988 qw422016.N().S(` <a href="`) 989 //line messages.qtpl:414 990 qw422016.E().S(baseTopBarURL) 991 //line messages.qtpl:414 992 qw422016.N().S(`?quote=`) 993 //line messages.qtpl:414 994 qw422016.E().S(e.UUID) 995 //line messages.qtpl:414 996 streamunesc(qw422016, Data.TopBarQueryParams) 997 //line messages.qtpl:414 998 qw422016.N().S(`" target="iframe1" class="date date-link" title="`) 999 //line messages.qtpl:414 1000 qw422016.E().S(e.CreatedAt.Format("01-02 15:04:05")) 1001 //line messages.qtpl:414 1002 if *isFirstMsg { 1003 //line messages.qtpl:414 1004 qw422016.N().S(` (`) 1005 //line messages.qtpl:414 1006 qw422016.E().S(humanize.Time(e.CreatedAt)) 1007 //line messages.qtpl:414 1008 qw422016.N().S(`)`) 1009 //line messages.qtpl:414 1010 } 1011 //line messages.qtpl:414 1012 qw422016.N().S(`">`) 1013 //line messages.qtpl:414 1014 qw422016.E().S(e.CreatedAt.Format(AuthUser.GetDateFormat())) 1015 //line messages.qtpl:414 1016 qw422016.N().S(`</a> 1017 `) 1018 //line messages.qtpl:415 1019 *isFirstMsg = false 1020 1021 //line messages.qtpl:415 1022 qw422016.N().S(` 1023 `) 1024 //line messages.qtpl:416 1025 } 1026 //line messages.qtpl:416 1027 qw422016.N().S(` <a href="/u/`) 1028 //line messages.qtpl:417 1029 qw422016.E().S(string(e.GetProfile(AuthUser.GetID()))) 1030 //line messages.qtpl:417 1031 qw422016.N().S(`" target="_blank" class="f-def-clr">-</a> 1032 `) 1033 //line messages.qtpl:418 1034 if e.System { 1035 //line messages.qtpl:418 1036 qw422016.N().S(` <span class="sysmsg">`) 1037 //line messages.qtpl:419 1038 streamunesc(qw422016, e.Message) 1039 //line messages.qtpl:419 1040 qw422016.N().S(`</span> 1041 `) 1042 //line messages.qtpl:420 1043 } else { 1044 //line messages.qtpl:421 1045 if e.Moderators { 1046 //line messages.qtpl:421 1047 qw422016.N().S(`<span class="sysmsg">[<a href="`) 1048 //line messages.qtpl:421 1049 qw422016.E().S(baseTopBarURL) 1050 //line messages.qtpl:421 1051 qw422016.N().S(`?m=1`) 1052 //line messages.qtpl:421 1053 streamunesc(qw422016, Data.TopBarQueryParams) 1054 //line messages.qtpl:421 1055 qw422016.N().S(`" target="iframe1" class="sysmsg f-white-clr">M</a>]</span> `) 1056 //line messages.qtpl:421 1057 } 1058 //line messages.qtpl:422 1059 if e.GroupID != nil { 1060 //line messages.qtpl:422 1061 qw422016.N().S(`<span class="sysmsg">[<a href="`) 1062 //line messages.qtpl:422 1063 qw422016.E().S(baseTopBarURL) 1064 //line messages.qtpl:422 1065 qw422016.N().S(`?g=`) 1066 //line messages.qtpl:422 1067 qw422016.E().S(e.Group.Name) 1068 //line messages.qtpl:422 1069 streamunesc(qw422016, Data.TopBarQueryParams) 1070 //line messages.qtpl:422 1071 qw422016.N().S(`" target="iframe1" class="sysmsg f-white-clr">`) 1072 //line messages.qtpl:422 1073 qw422016.E().S(e.Group.Name) 1074 //line messages.qtpl:422 1075 qw422016.N().S(`</a>]</span> `) 1076 //line messages.qtpl:422 1077 } 1078 //line messages.qtpl:423 1079 if e.ToUserID != nil { 1080 //line messages.qtpl:423 1081 qw422016.N().S(` [`) 1082 //line messages.qtpl:424 1083 streamfromUsername(qw422016, AuthUser, Data, e, baseTopBarURL) 1084 //line messages.qtpl:424 1085 qw422016.N().S(` → 1086 `) 1087 //line messages.qtpl:426 1088 if e.ToUser.ID == AuthUser.GetID() { 1089 //line messages.qtpl:426 1090 qw422016.N().S(`<span `) 1091 //line messages.qtpl:426 1092 streamunesc(qw422016, e.ToUser.GenerateChatStyle()) 1093 //line messages.qtpl:426 1094 qw422016.N().S(`>`) 1095 //line messages.qtpl:426 1096 qw422016.E().S(string(e.ToUser.Username)) 1097 //line messages.qtpl:426 1098 qw422016.N().S(`</span>`) 1099 //line messages.qtpl:426 1100 } else { 1101 //line messages.qtpl:426 1102 qw422016.N().S(`<a `) 1103 //line messages.qtpl:426 1104 streamunesc(qw422016, e.ToUser.GenerateChatStyle()) 1105 //line messages.qtpl:426 1106 qw422016.N().S(` href="`) 1107 //line messages.qtpl:426 1108 qw422016.E().S(baseTopBarURL) 1109 //line messages.qtpl:426 1110 qw422016.N().S(`?pm=`) 1111 //line messages.qtpl:426 1112 qw422016.E().S(string(e.ToUser.Username)) 1113 //line messages.qtpl:426 1114 qw422016.E().S(Data.TopBarQueryParams) 1115 //line messages.qtpl:426 1116 qw422016.N().S(`" target="iframe1">`) 1117 //line messages.qtpl:426 1118 qw422016.E().S(string(e.ToUser.Username)) 1119 //line messages.qtpl:426 1120 qw422016.N().S(`</a>`) 1121 //line messages.qtpl:426 1122 } 1123 //line messages.qtpl:426 1124 qw422016.N().S(`] - 1125 `) 1126 //line messages.qtpl:427 1127 } else { 1128 //line messages.qtpl:428 1129 streamfromUsername(qw422016, AuthUser, Data, e, baseTopBarURL) 1130 //line messages.qtpl:429 1131 if !e.IsMe() { 1132 //line messages.qtpl:430 1133 if AuthUser.CanSeeHB() && (e.IsHellbanned || e.User.IsHellbanned) && (e.ToUserID == nil) { 1134 //line messages.qtpl:430 1135 qw422016.N().S(` <a href="`) 1136 //line messages.qtpl:431 1137 qw422016.E().S(baseTopBarURL) 1138 //line messages.qtpl:431 1139 qw422016.N().S(`?hbm=1`) 1140 //line messages.qtpl:431 1141 streamunesc(qw422016, Data.TopBarQueryParams) 1142 //line messages.qtpl:431 1143 qw422016.N().S(`" target="iframe1" class="f-def-clr">-</a> 1144 `) 1145 //line messages.qtpl:432 1146 } else { 1147 //line messages.qtpl:432 1148 qw422016.N().S(` - 1149 `) 1150 //line messages.qtpl:434 1151 } 1152 //line messages.qtpl:435 1153 } 1154 //line messages.qtpl:436 1155 } 1156 //line messages.qtpl:436 1157 qw422016.N().S(` <span `) 1158 //line messages.qtpl:437 1159 streamunesc(qw422016, e.User.GenerateChatStyle()) 1160 //line messages.qtpl:437 1161 qw422016.N().S(`><span class="o-wrap">`) 1162 //line messages.qtpl:437 1163 qw422016.N().S(unesc(e.MsgToDisplay(AuthUser))) 1164 //line messages.qtpl:437 1165 qw422016.N().S(`</span></span> 1166 `) 1167 //line messages.qtpl:438 1168 } 1169 //line messages.qtpl:438 1170 qw422016.N().S(` </div> 1171 `) 1172 //line messages.qtpl:440 1173 } 1174 //line messages.qtpl:441 1175 } 1176 1177 //line messages.qtpl:441 1178 func WriteRenderMessage(qq422016 qtio422016.Writer, idx int, e database.ChatMessage, AuthUser database.IUserRenderMessage, 1179 Data ChatMessagesData, baseTopBarURL string, readMarkerRendered, isFirstMsg *bool, CSRF, NullUsername string, readMarkerRev *int, isEdit bool) { 1180 //line messages.qtpl:441 1181 qw422016 := qt422016.AcquireWriter(qq422016) 1182 //line messages.qtpl:441 1183 StreamRenderMessage(qw422016, idx, e, AuthUser, Data, baseTopBarURL, readMarkerRendered, isFirstMsg, CSRF, NullUsername, readMarkerRev, isEdit) 1184 //line messages.qtpl:441 1185 qt422016.ReleaseWriter(qw422016) 1186 //line messages.qtpl:441 1187 } 1188 1189 //line messages.qtpl:441 1190 func RenderMessage(idx int, e database.ChatMessage, AuthUser database.IUserRenderMessage, 1191 Data ChatMessagesData, baseTopBarURL string, readMarkerRendered, isFirstMsg *bool, CSRF, NullUsername string, readMarkerRev *int, isEdit bool) string { 1192 //line messages.qtpl:441 1193 qb422016 := qt422016.AcquireByteBuffer() 1194 //line messages.qtpl:441 1195 WriteRenderMessage(qb422016, idx, e, AuthUser, Data, baseTopBarURL, readMarkerRendered, isFirstMsg, CSRF, NullUsername, readMarkerRev, isEdit) 1196 //line messages.qtpl:441 1197 qs422016 := string(qb422016.B) 1198 //line messages.qtpl:441 1199 qt422016.ReleaseByteBuffer(qb422016) 1200 //line messages.qtpl:441 1201 return qs422016 1202 //line messages.qtpl:441 1203 } 1204 1205 //line messages.qtpl:444 1206 func StreamMember(qw422016 *qt422016.Writer, AuthUser *database.User, Data ChatMenuData, El managers.UserInfo) { 1207 //line messages.qtpl:444 1208 qw422016.N().S(` 1209 `) 1210 //line messages.qtpl:445 1211 baseTopBarURL := "/api/v1/chat/top-bar/" + Data.RoomName 1212 1213 //line messages.qtpl:446 1214 if El.Username == AuthUser.GetUsername() { 1215 //line messages.qtpl:446 1216 qw422016.N().S(` <div> 1217 <span style="color: `) 1218 //line messages.qtpl:448 1219 qw422016.E().S(El.Color) 1220 //line messages.qtpl:448 1221 qw422016.N().S(`;">`) 1222 //line messages.qtpl:448 1223 qw422016.E().S(string(El.Username)) 1224 //line messages.qtpl:448 1225 qw422016.N().S(`</span> 1226 `) 1227 //line messages.qtpl:449 1228 if El.AfkIndicatorEnabled { 1229 //line messages.qtpl:449 1230 qw422016.N().S(` <small class="afk-indicator">afk</small> 1231 `) 1232 //line messages.qtpl:451 1233 } 1234 //line messages.qtpl:451 1235 qw422016.N().S(` </div> 1236 `) 1237 //line messages.qtpl:453 1238 } else if len(El.Username) > 0 { 1239 //line messages.qtpl:454 1240 if !El.IsHellbanned || AuthUser.GetID() == El.UserID || (El.IsHellbanned && AuthUser.GetIsHellbanned()) || AuthUser.GetDisplayHellbanned() { 1241 //line messages.qtpl:454 1242 qw422016.N().S(` <div> 1243 `) 1244 //line messages.qtpl:456 1245 tagType := "tag" 1246 1247 //line messages.qtpl:457 1248 if AuthUser.CanSeeHB() && El.IsHellbanned { 1249 //line messages.qtpl:458 1250 tagType = "htag" 1251 1252 //line messages.qtpl:459 1253 } 1254 //line messages.qtpl:460 1255 qw422016.N().S(`<a href="`) 1256 //line messages.qtpl:461 1257 qw422016.E().S(baseTopBarURL) 1258 //line messages.qtpl:461 1259 qw422016.N().S(`?`) 1260 //line messages.qtpl:461 1261 qw422016.E().S(tagType) 1262 //line messages.qtpl:461 1263 qw422016.N().S(`=`) 1264 //line messages.qtpl:461 1265 qw422016.E().S(string(El.Username)) 1266 //line messages.qtpl:461 1267 streamunesc(qw422016, Data.TopBarQueryParams) 1268 //line messages.qtpl:461 1269 qw422016.N().S(`"target="iframe1"`) 1270 //line messages.qtpl:463 1271 if El.IsHellbanned && AuthUser.GetDisplayHellbanned() { 1272 //line messages.qtpl:463 1273 qw422016.N().S(`class="hb-row"`) 1274 //line messages.qtpl:463 1275 } 1276 //line messages.qtpl:463 1277 qw422016.N().S(`style="color:`) 1278 //line messages.qtpl:464 1279 qw422016.E().S(El.Color) 1280 //line messages.qtpl:464 1281 qw422016.N().S(`;">`) 1282 //line messages.qtpl:464 1283 qw422016.E().S(string(El.Username[0])) 1284 //line messages.qtpl:464 1285 qw422016.N().S(`</a><a href="`) 1286 //line messages.qtpl:465 1287 qw422016.E().S(baseTopBarURL) 1288 //line messages.qtpl:465 1289 qw422016.N().S(`?pm=`) 1290 //line messages.qtpl:465 1291 qw422016.E().S(string(El.Username)) 1292 //line messages.qtpl:465 1293 streamunesc(qw422016, Data.TopBarQueryParams) 1294 //line messages.qtpl:465 1295 qw422016.N().S(`"target="iframe1"`) 1296 //line messages.qtpl:467 1297 if El.IsHellbanned && AuthUser.GetDisplayHellbanned() { 1298 //line messages.qtpl:467 1299 qw422016.N().S(`class="hb-row"`) 1300 //line messages.qtpl:467 1301 } 1302 //line messages.qtpl:467 1303 qw422016.N().S(`style="color:`) 1304 //line messages.qtpl:468 1305 qw422016.E().S(El.Color) 1306 //line messages.qtpl:468 1307 qw422016.N().S(`;">`) 1308 //line messages.qtpl:468 1309 qw422016.E().S(string(El.Username[1 : len(El.Username)-1])) 1310 //line messages.qtpl:468 1311 qw422016.N().S(`</a><a href="/u/`) 1312 //line messages.qtpl:469 1313 qw422016.E().S(string(El.Username)) 1314 //line messages.qtpl:469 1315 qw422016.N().S(`"rel="noopener noreferrer" target="_blank"`) 1316 //line messages.qtpl:471 1317 if El.IsHellbanned && AuthUser.GetDisplayHellbanned() { 1318 //line messages.qtpl:471 1319 qw422016.N().S(`class="hb-row"`) 1320 //line messages.qtpl:471 1321 } 1322 //line messages.qtpl:471 1323 qw422016.N().S(`style="color:`) 1324 //line messages.qtpl:472 1325 qw422016.E().S(El.Color) 1326 //line messages.qtpl:472 1327 qw422016.N().S(`;">`) 1328 //line messages.qtpl:472 1329 qw422016.E().S(string(El.Username[len(El.Username)-1])) 1330 //line messages.qtpl:472 1331 qw422016.N().S(`</a>`) 1332 //line messages.qtpl:474 1333 if El.AfkIndicatorEnabled { 1334 //line messages.qtpl:474 1335 qw422016.N().S(` <small class="afk-indicator">afk</small> 1336 `) 1337 //line messages.qtpl:476 1338 } 1339 //line messages.qtpl:476 1340 qw422016.N().S(` </div> 1341 `) 1342 //line messages.qtpl:478 1343 } 1344 //line messages.qtpl:479 1345 } 1346 //line messages.qtpl:480 1347 } 1348 1349 //line messages.qtpl:480 1350 func WriteMember(qq422016 qtio422016.Writer, AuthUser *database.User, Data ChatMenuData, El managers.UserInfo) { 1351 //line messages.qtpl:480 1352 qw422016 := qt422016.AcquireWriter(qq422016) 1353 //line messages.qtpl:480 1354 StreamMember(qw422016, AuthUser, Data, El) 1355 //line messages.qtpl:480 1356 qt422016.ReleaseWriter(qw422016) 1357 //line messages.qtpl:480 1358 } 1359 1360 //line messages.qtpl:480 1361 func Member(AuthUser *database.User, Data ChatMenuData, El managers.UserInfo) string { 1362 //line messages.qtpl:480 1363 qb422016 := qt422016.AcquireByteBuffer() 1364 //line messages.qtpl:480 1365 WriteMember(qb422016, AuthUser, Data, El) 1366 //line messages.qtpl:480 1367 qs422016 := string(qb422016.B) 1368 //line messages.qtpl:480 1369 qt422016.ReleaseByteBuffer(qb422016) 1370 //line messages.qtpl:480 1371 return qs422016 1372 //line messages.qtpl:480 1373 } 1374 1375 //line messages.qtpl:483 1376 func streamfromUsername(qw422016 *qt422016.Writer, AuthUser database.IUserRenderMessage, Data ChatMessagesData, El database.ChatMessage, baseTopBarURL string) { 1377 //line messages.qtpl:484 1378 tagType := "tag" 1379 1380 //line messages.qtpl:485 1381 if El.ToUserID != nil { 1382 //line messages.qtpl:486 1383 tagType = "pm" 1384 1385 //line messages.qtpl:487 1386 } else if AuthUser.CanSeeHB() && (El.IsHellbanned || El.User.IsHellbanned) { 1387 //line messages.qtpl:488 1388 tagType = "htag" 1389 1390 //line messages.qtpl:489 1391 } else if AuthUser.IsModerator() && El.Moderators { 1392 //line messages.qtpl:490 1393 tagType = "mtag" 1394 1395 //line messages.qtpl:491 1396 } 1397 //line messages.qtpl:492 1398 if El.User.ID == AuthUser.GetID() { 1399 //line messages.qtpl:493 1400 if El.CanBeEdited() { 1401 //line messages.qtpl:493 1402 qw422016.N().S(`<a `) 1403 //line messages.qtpl:493 1404 streamunesc(qw422016, El.User.GenerateChatStyle()) 1405 //line messages.qtpl:493 1406 qw422016.N().S(` href="`) 1407 //line messages.qtpl:493 1408 qw422016.E().S(baseTopBarURL) 1409 //line messages.qtpl:493 1410 qw422016.N().S(`?e=`) 1411 //line messages.qtpl:493 1412 qw422016.E().S(El.CreatedAt.Format("15:04:05")) 1413 //line messages.qtpl:493 1414 streamunesc(qw422016, Data.TopBarQueryParams) 1415 //line messages.qtpl:493 1416 qw422016.N().S(`" target="iframe1">`) 1417 //line messages.qtpl:493 1418 qw422016.E().S(string(El.User.Username)) 1419 //line messages.qtpl:493 1420 qw422016.N().S(`</a>`) 1421 //line messages.qtpl:493 1422 } else { 1423 //line messages.qtpl:493 1424 qw422016.N().S(`<span `) 1425 //line messages.qtpl:493 1426 streamunesc(qw422016, El.User.GenerateChatStyle()) 1427 //line messages.qtpl:493 1428 qw422016.N().S(`>`) 1429 //line messages.qtpl:493 1430 qw422016.E().S(string(El.User.Username)) 1431 //line messages.qtpl:493 1432 qw422016.N().S(`</span>`) 1433 //line messages.qtpl:493 1434 } 1435 //line messages.qtpl:494 1436 } else { 1437 //line messages.qtpl:494 1438 qw422016.N().S(`<a `) 1439 //line messages.qtpl:494 1440 streamunesc(qw422016, El.User.GenerateChatStyle()) 1441 //line messages.qtpl:494 1442 qw422016.N().S(` href="`) 1443 //line messages.qtpl:494 1444 qw422016.E().S(baseTopBarURL) 1445 //line messages.qtpl:494 1446 qw422016.N().S(`?`) 1447 //line messages.qtpl:494 1448 qw422016.E().S(tagType) 1449 //line messages.qtpl:494 1450 qw422016.N().S(`=`) 1451 //line messages.qtpl:494 1452 qw422016.E().S(string(El.User.Username)) 1453 //line messages.qtpl:494 1454 streamunesc(qw422016, Data.TopBarQueryParams) 1455 //line messages.qtpl:494 1456 qw422016.N().S(`" target="iframe1">`) 1457 //line messages.qtpl:494 1458 qw422016.E().S(string(El.User.Username)) 1459 //line messages.qtpl:494 1460 qw422016.N().S(`</a>`) 1461 //line messages.qtpl:494 1462 } 1463 //line messages.qtpl:495 1464 } 1465 1466 //line messages.qtpl:495 1467 func writefromUsername(qq422016 qtio422016.Writer, AuthUser database.IUserRenderMessage, Data ChatMessagesData, El database.ChatMessage, baseTopBarURL string) { 1468 //line messages.qtpl:495 1469 qw422016 := qt422016.AcquireWriter(qq422016) 1470 //line messages.qtpl:495 1471 streamfromUsername(qw422016, AuthUser, Data, El, baseTopBarURL) 1472 //line messages.qtpl:495 1473 qt422016.ReleaseWriter(qw422016) 1474 //line messages.qtpl:495 1475 } 1476 1477 //line messages.qtpl:495 1478 func fromUsername(AuthUser database.IUserRenderMessage, Data ChatMessagesData, El database.ChatMessage, baseTopBarURL string) string { 1479 //line messages.qtpl:495 1480 qb422016 := qt422016.AcquireByteBuffer() 1481 //line messages.qtpl:495 1482 writefromUsername(qb422016, AuthUser, Data, El, baseTopBarURL) 1483 //line messages.qtpl:495 1484 qs422016 := string(qb422016.B) 1485 //line messages.qtpl:495 1486 qt422016.ReleaseByteBuffer(qb422016) 1487 //line messages.qtpl:495 1488 return qs422016 1489 //line messages.qtpl:495 1490 }