コミットグラフ

271 コミット

作成者 SHA1 メッセージ 日付
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