n9k
f081284876
Eyes: cooldown on creating new eyes
2022-06-14 03:02:45 +00:00
n9k
51265fb277
Eyes: delete old eyes
...
Also implements stack/queue behaviour where if the eyes limit would be
exceeded, either the new eyes cause the oldest eyes to be deleted OR
the new eyes aren't created at all. The default is the first option.
2022-06-14 02:58:11 +00:00
n9k
e491f54b24
Control socket (WIP)
2022-06-12 22:26:48 +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
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
a1b1147140
Add instructions
2022-03-08 17:07:55 +13:00
n9k
5153f5d112
Add config option for old tripcode algorithm
2022-03-08 16:13:22 +13:00
n9k
a3b18bdc9f
Background task for broadcasting title/uptime changes
2022-03-07 12:54:35 +13:00
n9k
8b4d6e8c09
Get stream title from disk
...
By default from `title.txt`. Also replace newlines with spaces when setting the
title in js, for parity with the nojs info iframe.
2022-03-07 12:54:35 +13:00
n9k
cc6ed63764
Segment streaming redux, accurate stream uptime
2022-02-23 15:57:04 +13:00
n9k
8c9b0d9da0
Flood detection
2022-02-22 16:25:43 +13:00
n9k
6ceb553b29
Buffer new and mutated users before sending to websockets
...
By default the buffer is exhausted every 4 seconds. This should defend against
a potential DoS against clients with JavaScript enabled. Before this, any
request with no token would generate a new user and immediately broadcast the
new user to all the websockets. It's best to lock down as much as possible the
number of places a client can cause the server to broadcasts to all the
websockets.
2022-02-22 16:25:43 +13:00
n9k
b7313eec22
Captchas, require captcha initially, generalize notices to states
2022-02-22 16:25:43 +13:00
n9k
7058677000
Setup background tasks, create t_sunset_users task
2022-02-22 16:25:43 +13:00
n9k
e9a4b511a3
Formalize/tidy user presence logic
2022-02-22 16:25:43 +13:00
n9k
6109de37ec
Nojs chat: ETag, limit scrollback, timeout notice
...
Limiting scrollback is happening for the js chat too. Also reject long
comments.
2022-02-22 16:25:41 +13:00
n9k
43e1a33088
Nojs appearance form, tripcodes, colours
2022-02-18 11:56:51 +13:00
n9k
e77862f4ff
Nojs chat, store all user names/colors in js, forget about inactive users
...
Project structure evolving a bit
2022-02-17 13:30:05 +13:00
n9k
694c6a4995
Nojs comment submission, notify for rejected comments
...
Fix with-user wrapper (wasn't collecting users)
2022-02-15 23:11:53 +13:00
n9k
885c10b5de
Initial noscript markup for chat form & stream info
...
Use with-user decorator on routes (instead of with-token)
2022-02-14 23:16:09 +13:00
n9k
5d0cac0b0f
Concatenate segments
...
Add small js failsafe, other minor changes
2022-02-13 22:25:02 +13:00
n9k
71586420b6
Project structure, chat markup/style, websockets
2022-02-13 17:00:10 +13:00