- Jul 13, 2022
-
-
Eugen Rochko authored
* Change how hashtags are normalized * Fix tests
-
- Jun 28, 2022
-
-
Claire authored
* Add model for custom filter keywords * Use CustomFilterKeyword internally Does not change the API * Fix /filters/edit and /filters/new * Add migration tests * Remove whole_word column from custom_filters (covered by custom_filter_keywords) * Redesign /filters Instead of a list, present a card that displays more information and handles multiple keywords per filter. * Redesign /filters/new and /filters/edit to add and remove keywords This adds a new gem dependency: cocoon, as well as a npm dependency: cocoon-js-vanilla. Those are used to easily populate and remove form fields from the user interface when manipulating multiple keyword filters at once. * Add /api/v2/filters to edit filter with multiple keywords Entities: - `Filter`: `id`, `title`, `filter_action` (either `hide` or `warn`), `context` `keywords` - `FilterKeyword`: `id`, `keyword`, `whole_word` API endpoits: - `GET /api/v2/filters` to list filters (including keywords) - `POST /api/v2/filters` to create a new filter `keywords_attributes` can also be passed to create keywords in one request - `GET /api/v2/filters/:id` to read a particular filter - `PUT /api/v2/filters/:id` to update a new filter `keywords_attributes` can also be passed to edit, delete or add keywords in one request - `DELETE /api/v2/filters/:id` to delete a particular filter - `GET /api/v2/filters/:id/keywords` to list keywords for a filter - `POST /api/v2/filters/:filter_id/keywords/:id` to add a new keyword to a filter - `GET /api/v2/filter_keywords/:id` to read a particular keyword - `PUT /api/v2/filter_keywords/:id` to edit a particular keyword - `DELETE /api/v2/filter_keywords/:id` to delete a particular keyword * Change from `irreversible` boolean to `action` enum * Remove irrelevent `irreversible_must_be_within_context` check * Fix /filters/new and /filters/edit with update for filter_action * Fix Rubocop/Codeclimate complaining about task names * Refactor FeedManager#phrase_filtered? This moves regexp building and filter caching to the `CustomFilter` class. This does not change the functional behavior yet, but this changes how the cache is built, doing per-custom_filter regexps so that filters can be matched independently, while still offering caching. * Perform server-side filtering and output result in REST API * Fix numerous filters_changed events being sent when editing multiple keywords at once * Add some tests * Use the new API in the WebUI - use client-side logic for filters we have fetched rules for. This is so that filter changes can be retroactively applied without reloading the UI. - use server-side logic for filters we haven't fetched rules for yet (e.g. network error, or initial timeline loading) * Minor optimizations and refactoring * Perform server-side filtering on the streaming server * Change the wording of filter action labels * Fix issues pointed out by linter * Change design of “Show anyway” link in accordence to review comments * Drop “irreversible” filtering behavior * Move /api/v2/filter_keywords to /api/v1/filters/keywords * Rename `filter_results` attribute to `filtered` * Rename REST::LegacyFilterSerializer to REST::V1::FilterSerializer * Fix systemChannelId value in streaming server * Simplify code by removing client-side filtering code The simplifcation comes at a cost though: filters aren't retroactively applied anymore.
-
- Apr 19, 2022
-
-
Yamagishi Kazutoshi authored
-
- Mar 21, 2022
-
-
Claire authored
-
- Feb 16, 2022
-
-
Claire authored
Fixes #17541 - prefix JSON parsing error message by “Error parsing message from …” - output user id if a user is logged in, IP address otherwise - reduce log level from error to warning when a user is logged in, and to silly otherwise
-
- Jan 07, 2022
-
-
Claire authored
* Fix timeline streaming stopping for multiple sessions instead of one Fixes #17256. In updating the code for a newer version of node-redis, #17183 also broke redis subscription management when multiple streaming clients subscribe to the same channel. This commit restores the redis subscription management code. * Let node-redis actually handle the subscriptions
-
- Dec 25, 2021
-
-
Lerk authored
* fix streaming redis client * use console.error instead of console.log * follow node-redis migration guide https://github.com/redis/node-redis/blob/master/docs/v3-to-v4.md * fix config options for node-redis * keep indentation * Update streaming/index.js Co-authored-by:
Yamagishi Kazutoshi <ykzts@desire.sh> Co-authored-by:
Yamagishi Kazutoshi <ykzts@desire.sh>
-
- Oct 13, 2021
-
-
Sasha Sorokin authored
When checking for required OAuth scopes, an unexpected error could happen due to missing (null-y) req.scopes. This commit fixes that by checking if req.scopes are present before checking if any required scopes are present, otherwise it skips that straight to rejection.
-
- Sep 26, 2021
-
-
Eugen Rochko authored
Eliminate need to have custom notifications filtering logic in the streaming API code by publishing notifications into a separate stream and then simply using the multi-stream capability to subscribe to that stream when necessary
-
- May 02, 2021
-
-
Eugen Rochko authored
Third argument of `ping` is the callback Regression from #15932
-
- May 01, 2021
-
-
Eugen Rochko authored
-
- Mar 24, 2021
-
-
Claire authored
* Switch from deprecated ClusterWS/cws to ws package Fixes #15184 Co-authored-by:
Edho Arief <me@nanaya.pro> * Make bufferutil and utf-8-validate optional dependencies Co-authored-by:
Edho Arief <me@nanaya.pro>
-
- Nov 23, 2020
-
-
abcang authored
* eslint --fix * fix consistent-return * fix promise/catch-or-return * ignore import rule
-
- Nov 12, 2020
-
-
Eugen Rochko authored
Fix #14816
-
- Sep 22, 2020
-
-
fuyu authored
-
- Aug 12, 2020
-
-
Eugen Rochko authored
-
- Aug 11, 2020
-
-
Eugen Rochko authored
-
- Jun 24, 2020
-
-
ThibG authored
Fixes #14131 Our `mastodon:setup` task defaults to a blank password rather than the absence of password, but some versions of Redis reject blank password authentication when authentication is possible without a password. The Ruby code only uses the Redis password when it's not blank, so do the same for the node.js part.
-
- Jun 02, 2020
-
-
Eugen Rochko authored
-
- May 10, 2020
-
-
Takeshi Umeda authored
* Add remote only to public timeline * Fix code style
-
- Jan 24, 2020
-
-
Ben Lubar authored
* Send output on the server-sent events stream immediately so the client sees that it was successfully opened even if it doesn't have any messages. Fix transparent SSE streaming for the public:local and hashtag:local stream types. * Tell caches to never store server-sent events.
-
- Jul 30, 2019
-
-
Eugen Rochko authored
-
- Jul 15, 2019
-
-
Eugen Rochko authored
-
- May 24, 2019
-
-
ThibG authored
* Check OAuth token scopes in the streaming API * Use Sec-WebSocket-Protocol instead of query string to pass WebSocket token Inspired by https://github.com/kubevirt/kubevirt/issues/1242
-
- May 22, 2019
-
-
abcang authored
-
- Mar 10, 2019
-
-
Eugen Rochko authored
Fix #10223
-
Eugen Rochko authored
* Fix SSL configuration regression in streaming API Fix #10223 * Fix code style issues and integrate #10219 * Fix dumb thing
-
- Mar 08, 2019
-
-
Sascha authored
* config: add DB_SSLMODE for managed/remote PG * streaming: set PG sslmode, defaults to prefer
-
- Oct 21, 2018
-
-
Gomasy authored
-
- Oct 20, 2018
-
-
Eugen Rochko authored
Previously, the server would attempt taking port/socket in worker process, and if it was taken, fail, which made the master process create a new worker. This led to really high CPU usage if the streaming API was started when the port or socket were not available. Now, before clustering (forking) into worker processes, a test server is created and then removed to check if it can be done.
-
- Oct 11, 2018
-
-
Eugen Rochko authored
* Add check for missing tag param in streaming API Fixes error: ``` TypeError: Cannot read property 'toLowerCase' of undefined at app.get (.../streaming/index.js:493:50) ``` * Fix code style issues
-
- Oct 07, 2018
-
-
Eugen Rochko authored
* Add conversations API * Add web UI for conversations * Add test for conversations API * Add tests for ConversationAccount * Improve web UI * Rename ConversationAccount to AccountConversation * Remove conversations on block and mute * Change last_status_id to be a denormalization of status_ids * Add optimistic locking
-
- Aug 26, 2018
-
-
Eugen Rochko authored
GET /api/v1/streaming/health Answers with OK. Fix #8337
-
- Aug 24, 2018
-
-
MIYAGI Hikaru authored
* Support UNIX domain socket for streaming service without using PORT The use of UNIX domain socket for streaming service was not officially supported, but it was made unofficial to use by setting a path to PORT. From now on, SOCKET will be used just like setting for puma. * Hundle relative path
-
- Jul 14, 2018
-
-
Eugen Rochko authored
-
- May 21, 2018
-
-
Yamagishi Kazutoshi authored
-
- Apr 18, 2018
-
-
Kaito Sinclaire authored
* Added a timeline for Direct statuses * Lists all Direct statuses you've sent and received * Displayed in Getting Started * Streaming server support for direct TL * Changes to match other timelines in 2.0
-
- Apr 17, 2018
-
-
abcang authored
-
- Dec 13, 2017