n9k
208ef9abc7
Emotes: one emote, one file
2022-07-20 07:37:33 +00:00
n9k
b46b3c88d5
v1.5.5
2022-07-20 07:36:45 +00:00
n9k
ab0ba513bf
Emotes: emotes must have non-empty names
2022-07-20 07:36:06 +00:00
n9k
4f34a4a0e7
v1.5.4
2022-07-17 01:12:10 +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
85ccd7b96e
Never gonna give broadcaster a clock captcha
2022-07-16 22:17:58 +00:00
n9k
466298696b
v1.5.3
2022-07-16 22:12:28 +00:00
n9k
cadc4076c5
Bugfix: actually deverify absent users
...
Was using the `deverify` function which is for ratelimiting chat, so it never
did anything.
2022-07-16 22:12:04 +00:00
n9k
a7d5ff49cf
v1.5.2
2022-07-16 06:27:32 +00:00
n9k
81de4e4ccd
Emotes: expand regex for [a-zA-Z0-9_]-ended emotes
...
Emote names with non-word characters at an end are now always matched.
Previously they were only matched when adjacent to non-word characters.
This means that an emote named "😂 " will now be matched in
"aaa😂 zzz" where previously it wouldn't have been.
2022-07-16 06:27:14 +00:00
n9k
21df8a5aa5
v1.5.1
2022-07-16 06:26:55 +00:00
n9k
6d6991e4e4
Emotes: was checking wrong Markup type
...
This broke chat. Adding a chat message would never happen because of
AssertionError.
2022-07-16 06:24:31 +00:00
n9k
1862b27ac9
v1.5.0
2022-07-14 17:24:13 +00:00
n9k
1d56bdfdd7
Ensure browsers revalidate style.css & anonstream.js
2022-07-14 17:23:03 +00:00
n9k
4a69b0a4ba
Typo
2022-07-14 17:23:03 +00:00
n9k
8164c5971e
Emotes: always prefer /chat/messages redirect
...
In Firefox, the emote image is retrieved from a cache when we do it this
way.
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
3733a213f0
v1.4.0
2022-07-07 09:18:32 +00:00
n9k
4a68759806
Allowedness: check in special case route handlers
2022-07-07 09:17:37 +00:00
n9k
90e40701f8
Allowedness: check in renew_eyes
2022-07-03 08:53:02 +00:00
n9k
9ad069ad08
Allowedness: check (in) websockets
2022-07-03 08:53:02 +00:00
n9k
8ab206d3c6
Allowedness: check in `with_user_from` wrapper
2022-07-03 08:53:02 +00:00
n9k
6bfd4e7446
Allowedness: change from control socket
2022-07-03 08:53:02 +00:00
n9k
5a647f2fb7
Allowedness (WIP)
2022-07-03 08:53:02 +00:00
n9k
2c51e99f66
v1.3.6
2022-07-03 08:52:05 +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
63e656f65b
v1.3.5
2022-06-29 05:00:38 +00:00
n9k
fc613737e0
Store version string
2022-06-29 04:58:30 +00:00
n9k
2a15002e7b
Minor: remove module-global `Compress` singleton
2022-06-29 04:57:41 +00:00
n9k
059504d0ad
v1.3.4
2022-06-29 04:32:43 +00:00
n9k
e10f6793b6
Rename errors.py -> error.py
2022-06-29 04:30:27 +00:00
n9k
492078f6ce
Record users' most recent HTTP headers
2022-06-29 04:30:27 +00:00
n9k
1472ce40ad
Store eyes headers as tuple instead of dict
...
This preserves duplicate keys.
2022-06-29 04:30:24 +00:00
n9k
8d4fe45c74
Control socket: correct `chat help` usage
2022-06-29 02:58:26 +00:00
n9k
b63bd3096d
JS: set `ws = null;` before creating new websocket
2022-06-29 02:36:37 +00:00
n9k
19b926a3e5
Deverify absent users
2022-06-29 02:35:24 +00:00
n9k
d91b49fb29
Forgot meta viewport in new templates
2022-06-29 02:25:22 +00:00
n9k
dd94bc7233
Minor whitespace
2022-06-29 02:20:29 +00:00
n9k
728181c415
Error pages: minor css change
2022-06-29 02:20:29 +00:00
n9k
084e91f285
v1.3.3
2022-06-25 08:36:05 +00:00
n9k
eb25b6d8a8
Nojs users list: fix isignia css
2022-06-25 08:35:05 +00:00
n9k
a2ef88aff0
v1.3.2
2022-06-25 07:46:03 +00:00
n9k
b0cae89fad
Error pages: adjust for iframes
2022-06-25 07:45:07 +00:00
n9k
082fbf76d4
Error pages: make target="_top" for <a> elements
2022-06-25 07:45:07 +00:00
n9k
5a5585ff0d
Minor: chain exceptions in renew_eyes
2022-06-25 05:09:10 +00:00
n9k
4a8d8966aa
Websocket: reuse timestamp in handle_inbound_pong
2022-06-25 05:09:07 +00:00
n9k
1ad67fd9cf
Basically nothing
2022-06-25 04:00:57 +00:00
n9k
54b34ce503
Typo: update last.seen when no access captcha
2022-06-25 03:41:11 +00:00
n9k
2344500d8f
Control socket: typo in documentation
2022-06-25 03:34:27 +00:00
n9k
45965fc1db
Forgot some licence headers
2022-06-24 03:31:01 +00:00
n9k
abf7574ea9
v1.3.1
2022-06-23 03:48:13 +00:00
n9k
2a16f6a835
Debug: print colorized tag/token_hash/token
2022-06-23 03:36:37 +00:00
n9k
3bb2a81c5a
Bypass initial chat captcha if solved access captcha
2022-06-23 02:53:41 +00:00
n9k
45224e0779
Never gonna give broadcaster a captcha
2022-06-23 02:36:44 +00:00
n9k
77e0183c15
v1.3.0
2022-06-22 08:58:40 +00:00
n9k
c3237890ad
Rule out edge case where MAX_CAPTCHAS is 0
2022-06-22 08:41:46 +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
6046598ed8
Fix deletion of old messages exceeding threshold
2022-06-22 08:34:16 +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
0548065b1d
Error pages: custom descriptions
2022-06-22 08:11:12 +00:00
n9k
35ce606d64
Custom error pages
2022-06-22 08:11:12 +00:00
n9k
9143acafd1
Access captcha
2022-06-22 08:11:12 +00:00
n9k
4c5faf7dba
Use 303 See Other for {POST|GET}->GET redirects
2022-06-22 04:54:02 +00:00
n9k
6ae87be229
anonstream/__main__.py: disable Server header
2022-06-21 06:23:24 +00:00
n9k
a41f0d4f14
Escape disallowed cookie characters
2022-06-20 04:15:09 +00:00
n9k
46f9b0ec08
Reset websocket aliveness timer on first connecting
...
This should eliminate the possibilty of the websocket-closing background
task closing a newly opened websocket that hasn't yet ponged our ping
(if we have even sent a ping yet).
2022-06-20 04:15:09 +00:00
n9k
22c84bc230
Give timestamp to route handlers
2022-06-20 04:15:09 +00:00
n9k
90e1e2099a
Manual static folder
2022-06-20 04:15:08 +00:00
n9k
1581e6ac89
Minor logic formatting
2022-06-19 08:21:40 +00:00
n9k
1d5b446291
Track the last time users were sent chat messages
2022-06-19 08:21:40 +00:00
n9k
0b78a79111
Use single quotes
2022-06-19 07:53:31 +00:00
n9k
893c4273b0
Licence headers formatting for real
2022-06-17 01:10:27 +00:00
n9k
fc4a528b04
anonstream/__main__.py: tidy magic numbers for real
2022-06-17 00:48:04 +00:00
n9k
1ce4b4f568
v1.2.3
2022-06-17 00:41:20 +00:00
n9k
56ee52699a
Nojs chat form: on failure truncate long comments
2022-06-17 00:40:38 +00:00
n9k
e147aa0d22
Chat: always enforce length limits from config
2022-06-17 00:40:02 +00:00
n9k
3c5d3af40d
Typo: comment max length was name max length instead
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
febb0e36d3
v1.2.2
2022-06-16 03:19:13 +00:00
n9k
617a687145
Give `create_app` a dictionary, not a file location
2022-06-16 03:15:21 +00:00
n9k
0e7bb62291
anonstream/__main__.py: tidy magic numbers
2022-06-16 03:14:46 +00:00
n9k
6746f7b859
Simplify starting: create anonstream/__main__.py
2022-06-16 02:56:38 +00:00
n9k
fdf4713c71
Licence headers in every new file
2022-06-16 01:31:10 +00:00
n9k
1c7818cc0b
Licence headers formatting
2022-06-16 01:31:10 +00:00
n9k
309b2ad54f
Control socket: minor redo exceptions
2022-06-16 01:05:18 +00:00
n9k
c07910b6c5
v1.2.1
2022-06-15 21:19:21 +00:00
n9k
50d03ba8d5
Control socket: specify users by token hash
2022-06-15 21:17:25 +00:00
n9k
f3e58fd3fa
Refactor info update background task
...
We now time the interval between consecutive tasks. This is more precise
than using the constant interval the task is supposed to run at since
there is some drift on each run (~0.004s).
2022-06-15 21:03:08 +00:00
n9k
e449caff5f
Reimplement `with_timestamp`, allow ints & floats
2022-06-15 20:54:55 +00:00
n9k
1f56e635b9
Ensure chat stays at bottom if names/tripcodes change
2022-06-15 20:39:06 +00:00
n9k
55a713991c
Nojs info: fix invisible uptime counter taking up space
...
Also adds "visibility: hidden;" to `disappear`. It would replace
"opacity: 0;" but Firefox acts weird with only visibility set, it only
half works until you switch between desktop and mobile view. IDK this
isn't that important.
2022-06-15 10:14:37 +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
dd1d98361f
v1.2.0
2022-06-15 09:09:03 +00:00
n9k
976abc0ede
WS: increase uptime drift tolerance for resending
2022-06-15 09:07:25 +00:00
n9k
5c8062466d
Control socket: overhaul finished for now
...
This unbreaks the commands broken by the last commit. Everything is
still better.
2022-06-15 08:55:44 +00:00
n9k
abfa3fe865
Control socket: overhaul implementation
...
This breaks some commands, everything else is better though.
2022-06-15 05:39:54 +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