n9k
f87b826b5b
Use legacy tripcode algorithm by default
...
It's more secure.
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
283c630b82
Optionally force captcha every n messages
...
By default every 40 messages. 0 means never force captcha in this way.
2022-07-03 08:50:35 +00:00
n9k
179f4390c0
config.toml: change default flood.video.expire_after
2022-06-29 02:50:32 +00:00
n9k
95a940a14f
Limit number of stored failures
...
Failures are messages shown on the access captcha screen when the
captcha answer was not accepted for whatever reason.
2022-06-22 08:35:41 +00:00
n9k
9143acafd1
Access captcha
2022-06-22 08:11:12 +00:00
n9k
e147aa0d22
Chat: always enforce length limits from config
2022-06-17 00:40:02 +00:00
n9k
88d3785ec6
Rename config section from 'thresholds' to 'presence'
2022-06-17 00:40:02 +00:00
n9k
dc5c4db3de
Move nojs refresh magic numbers to config
2022-06-17 00:40:02 +00:00
n9k
65d28a6937
Event socket
...
This commit adds a unix socket on which you can receive internal events
as they happen. Currently the only supported event is a chat message
being added. Intended for external applications that depend on chat
messages, e.g. text-to-speech or Twitch Plays Pokémon.
2022-06-15 03:53:34 +00:00
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