n9k
ad7cc1c5b1
Fix offline screen for Firefox resistFingerprinting
2023-02-23 22:30:02 +00:00
n9k
12338747de
Websocket: send form field maxlengths
2022-08-12 05:25:57 +00:00
n9k
2599528ae3
JS: typo
2022-08-07 11:37:40 +00:00
n9k
72d5a0526c
Fix JS chat dates
...
Accidentally forgot to change these places where we use
`chat_messages.children`, which now refers to dates as well as messages.
2022-08-07 11:37:39 +00:00
n9k
d7b4717cf5
Chat: show dates when the day changes (js)
2022-08-10 00:01:27 +00:00
n9k
c45031277c
Minor: remove unused js
2022-07-24 01:27:55 +00:00
n9k
2df92bb488
Minor formatting
2022-07-20 07:37:35 +00:00
n9k
208ef9abc7
Emotes: one emote, one file
2022-07-20 07:37:33 +00:00
n9k
9edeea1491
Emotes: sheet filename config option
2022-07-16 23:48:46 +00:00
n9k
70036ca234
Minor formatting
2022-07-16 23:48:46 +00:00
n9k
4a69b0a4ba
Typo
2022-07-14 17:23:03 +00:00
n9k
6e8d8dc8e9
Emotes
...
The sheet of emotes goes in `/static/emotes.png`. Emote coordinates go
in emotes.json (by default, there is a config option).
2022-07-14 17:14:04 +00:00
n9k
b63bd3096d
JS: set `ws = null;` before creating new websocket
2022-06-29 02:36:37 +00:00
n9k
4a76fb023e
Access captcha: special case for websocket
...
There doesn't seem to be a way to catch a 403 Forbidden error opening a
websocket with JavaScript, so this commit changes the behaviour to this:
open the websocket normally, send one "kick" message, close the
websocket.
2022-06-22 08:11:12 +00:00
n9k
893c4273b0
Licence headers formatting for real
2022-06-17 01:10:27 +00:00
n9k
e147aa0d22
Chat: always enforce length limits from config
2022-06-17 00:40:02 +00:00
n9k
1f56e635b9
Ensure chat stays at bottom if names/tripcodes change
2022-06-15 20:39:06 +00:00
n9k
46cd032510
CSS: always fullheight info in desktop view
2022-06-15 10:10:04 +00:00
n9k
d06a279be6
Sanitize newlines in usernames with js
...
Previously usernames with newlines in them actually went over multiple
lines.
2022-06-15 09:38:47 +00:00
n9k
f40637b786
WS: don't close because no pings if already closed
2022-06-13 22:04:59 +00:00
n9k
5751297f10
Control socket: delete chat messages
2022-06-13 21:25:25 +00:00
n9k
d621f8ceda
Reorder chat form inputs so submit has priority
...
When you press enter to submit a form and there are multiple submittable
inputs (e.g. type="image" / type="submit"), Firefox chooses the one that
appears first in markup. Before this commit the image input (aka the "I
want a new captcha" button) appeared before the submit button which
meant pressing enter just reloaded the captcha instead of submitting the
comment.
2022-06-11 23:14:49 +00:00
n9k
971ab4769a
Use accesskey 'r' for reload stream button
2022-06-11 23:14:16 +00:00
n9k
57053b5eca
Chat insignia: solid orangered background
2022-06-11 23:14:16 +00:00
n9k
77d68629b6
CSS: fullheight mobile chat, remove iframe margins
2022-06-11 23:14:16 +00:00
n9k
4b68023cf2
Add websocket ping/pong
...
Client and server both close the connection if they don't hear from the
other party after a timeout period. This is a failsafe and should
improve reliability.
2022-06-11 23:14:16 +00:00
n9k
a7bfab4f26
Offline screen
2022-06-11 23:14:12 +00:00
n9k
73824f70d7
Lock js chat scroll when not at bottom
2022-06-09 01:34:59 +00:00
n9k
ca669833e3
CSS: add `white-space: pre-wrap;` to chat messages
2022-03-10 07:46:53 +13:00
n9k
66eabd67af
CSS: add `overflow: hidden;` to chat messages
...
Stops messages being able to obscure other messages with weird unicode
characters.
2022-03-09 17:42:44 +13:00
n9k
829f3f004b
Add licences
2022-03-08 16:41:47 +13:00
n9k
4bab173237
Add Content Security Policy meta tags
2022-03-08 16:13:22 +13:00
n9k
4cde4ea07a
Add js appearance form (not complete c.f. nojs)
2022-03-08 16:13:22 +13:00
n9k
ce5b7ba0ba
Fix js memory leak
...
Already existing tripcode css rules were being re-inserted because of a typo.
2022-03-08 16:13:22 +13:00
n9k
55c16d7214
Nojs chat form: use `:checked` instead of `:target`
...
This works around a bug in mobile Firefox where under certain cirucmstances two
elements inside an iframe both become the iframe's target elment at the same
time, which breaks the CSS logic so instead of exactly one form being displayed,
nothing is displayed.
2022-03-08 16:13:22 +13:00
n9k
9c5fc4bc71
Keyboard accessible js captcha
2022-03-08 16:13:22 +13:00
n9k
f48a27525e
Autofocus chat form textarea
2022-03-08 16:13:22 +13:00
n9k
0ce1902918
Show notice from websocket in js chat form
2022-03-08 16:13:22 +13:00
n9k
ade3ca4e9e
Add broadcaster insignia
...
Also surrounded users' name tags in <b> (HTML) tags.
2022-03-08 16:13:21 +13:00
n9k
5590fbbdbe
Chat: use breaking space between name and message
2022-03-07 12:56:08 +13:00
n9k
46fce9c393
Add nojs 'Reload stream' button
...
The nojs button appears when the stream is online and the user is not watching.
The js button appears when the stream is online and the media element either
(1) is not using the network or (2) fires an error event.
2022-03-07 12:56:08 +13:00
n9k
6eda20a244
Add 'Reload stream' button in js
2022-03-07 12:56:08 +13:00
n9k
edddbf00bc
Show tripcodes in users list
2022-03-07 12:56:08 +13:00
n9k
7962de87e3
WS: combine `uptime` and `viewership` into `stats`
...
If the stream is offline, `stats` is null, otherwise it contains uptime and
viewership.
2022-03-07 12:56:08 +13:00
n9k
ba90e18e30
Minor changes to the appearance of the users list
...
Made the 'Users in chat' header above the overflow area, so it always stays on
top. Now using `visibility: hidden;` instead of `display: none;` to show/hide
messages/users so that nojs css animations don't reset.
2022-03-07 12:56:08 +13:00
n9k
84ec253001
Show list of watching/non-watching users with js
2022-03-07 12:56:08 +13:00
n9k
2b1cf7d7b0
CSS: make users button lighter
2022-03-07 12:54:35 +13:00
n9k
1b26ddb816
Nojs chat: add list of watching/non-watching users
2022-03-07 12:54:35 +13:00
n9k
8589216bf1
Send new captcha over websocket with js
2022-03-07 12:54:35 +13:00
n9k
3016705783
Keep track of stream viewership (number of viewers)
2022-03-07 12:54:35 +13:00