コミットグラフ

321 コミット

作成者 SHA1 メッセージ 日付
n9k 84ad17f13d Eyes
This commit adds the concept of eyes. One "eyes" is one instance of a
response to GET /stream.mp4. Currently the number of eyes clients can
have is unbounded, but this is a DoS vector.
2022-06-14 02:40:18 +00:00
n9k 8f06121d8f WS: ping before init 2022-06-14 00:34:24 +00:00
n9k 4b986cb84e Minor readme changes 2022-06-13 22:53:28 +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 36666f8cdf Catch all OSErrors when reading title.txt
Previously we only caught FileNotFoundError. If there was a
PermissionError for example, it would have percolated up and
stopped some background tasks.
2022-06-13 03:46:53 +00:00
n9k 588ecc4c02 Control socket: progress 2022-06-13 03:46:02 +00:00
n9k e491f54b24 Control socket (WIP) 2022-06-12 22:26:48 +00:00
n9k 7f2e75bc98 Read config.toml more organizedly 2022-06-12 22:26:46 +00:00
n9k 98d1beb1b0 v1.1.0 2022-06-12 04:53:57 +00:00
n9k 536f25444a Merge branch 'dev' 2022-06-12 04:53:31 +00:00
n9k eecfede9b1 README.md: wording formatting 2022-06-12 04:52:58 +00:00
n9k 92dfb9cfec STREAMING.md: way more comprehensive instructions 2022-06-12 04:52:58 +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 667e35bf16 Handle OSErrors reading playlist, give reasons for offline 2022-06-11 23:14:16 +00:00
n9k 45a4d88720 STREAMING.md: complete instructions 2022-06-11 23:14:16 +00:00
n9k ae6c1ba5a9 Reject whitespace-only comments 2022-06-11 23:14:16 +00:00
n9k 542d6c9ae5 Detect chat flooding by counting lines
Reject comments by line count. Ratelimit users by number of lines sent
in chat.
2022-06-11 23:14:16 +00:00
n9k 9e91349ca9 m3u8 init_section may not exist 2022-06-11 23:14:16 +00:00
n9k 31b82a9983 Websocket: ping immediately 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 95f12fa632 Send <!doctype html> in responses when auth fails 2022-06-11 23:14:16 +00:00
n9k 2c899cc18d Add timeout for each ASGI http.response.body message
Ensures that if a client becomes idle the segment generator is exited
within a constant amount of time (probably more than this timeout
because of the ASGI server's write buffer and the OS's socket write
buffer, but still constant).
2022-06-11 23:14:16 +00:00
n9k c0de94bc5d Remove redundant failsafe `websocket.close()`
Ping timeouts should do the same thing.
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 6a4e16eaf4 Use &times; instead of &cross;
Tor Browser on Linux prefers &times;
2022-06-09 01:34:59 +00:00
n9k 0aad555408 Info iframe: properly show uptime text-only fallback 2022-06-09 01:34:59 +00:00
n9k 0352358611 Compress some responses
Adds dependency `quart-compress`
2022-06-09 01:34:59 +00:00
n9k 73824f70d7 Lock js chat scroll when not at bottom 2022-06-09 01:34:59 +00:00
n9k dab389abcc More precise debug messages when segment generator exits 2022-06-09 01:34:45 +00:00
n9k 4eaf9b56f7 Try to ensure websocket is closed when forgetting about it
Might not be necessary, but if it is then it prevents a sitation where a
websocket is still open but we've forgotten about it, so we will never
broadcast any new messages to it and the client will be practically frozen in
time until they disconnect and open a new websocket.

Also update the user's last_seen when the websocket is closed. This prevents a
user with js enabled who's actually idle being considered absent and being
rotated when their websocket accidentally closes for a few seconds.
2022-03-10 07:47:57 +13:00
n9k 88fc9493cf v1.0.1 2022-03-10 07:47:46 +13:00
n9k e36bf78a18 Merge branch 'dev' 2022-03-10 07:47:01 +13:00
n9k ca669833e3 CSS: add `white-space: pre-wrap;` to chat messages 2022-03-10 07:46:53 +13:00
n9k e14cd4c09c Merge branch 'dev' 2022-03-10 07:46:23 +13:00
n9k cda687294e Nojs chat: fix users names/tripcodes having wrong colors 2022-03-10 07:45:56 +13:00
n9k 6249fdd840 Merge branch 'dev' 2022-03-09 17:43:35 +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 5df441abd8 Add venv/ to .gitignore 2022-03-09 16:58:04 +13:00
n9k 4c491e5318 v1.0.0 2022-03-09 16:57:59 +13:00
n9k a1b1147140 Add instructions 2022-03-08 17:07:55 +13:00
n9k 829f3f004b Add licences 2022-03-08 16:41:47 +13:00
n9k d6506ef9bf Add requirements.txt 2022-03-08 16:13:22 +13:00
n9k 4bab173237 Add Content Security Policy meta tags 2022-03-08 16:13:22 +13:00
n9k 5bd5d7ff6d Nojs chat form: more accesskeys 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