Commit graph

54 commits

Author SHA1 Message Date
KMY
9de0de7d65 Merge remote-tracking branch 'parent/main' into kbtopic-remove-quote 2025-05-07 09:39:51 +09:00
Claire
79931bf3ae
Merge commit from fork
* Check scheme in account and post links

* Harden media attachments

* Client-side mitigation

* Client-side mitigation for media attachments
2025-05-06 15:02:13 +02:00
KMY
d845d1e9fb Remove: kmyblue独自機能の引用 2025-04-24 08:48:28 +09:00
KMY
3784ad273c Merge remote-tracking branch 'parent/main' into upstream-20241216 2024-12-16 10:14:31 +09:00
Renaud Chaput
ded799f913
Convert polls to Typescript / Immutable Records (#29789) 2024-12-10 22:54:07 +00:00
KMY
6955843321 Merge remote-tracking branch 'parent/main' into upstream-20240628 2024-06-28 08:57:12 +09:00
Eugen Rochko
096057b845
Change author_account to be authors in REST API (#30846) 2024-06-27 13:17:18 +00:00
KMY
aa2cdc898a Merge remote-tracking branch 'parent/main' into upstream-20240618 2024-06-18 07:43:33 +09:00
Eugen Rochko
ed6d24330b
Add author links on the explore page in web UI (#30521) 2024-06-13 13:04:16 +00:00
KMY
52dac50826 Merge remote-tracking branch 'parent/main' into upstream-20231104 2023-11-04 09:10:13 +09:00
Renaud Chaput
3bf2a7296e
Use Immutable Record for accounts in Redux state (#26559) 2023-11-03 15:00:03 +00:00
KMY
80498c8377 Merge remote-tracking branch 'parent/main' into kb-merge-231010 2023-10-10 22:17:15 +09:00
Renaud Chaput
774e1189d2
Change eslint config to autofix missing comma and indentation in JS files (#26711) 2023-10-09 13:38:29 +02:00
KMY(雪あすか)
44b739a39a
Add: Webでの引用表示 (#50)
* Add compacted component

* 引用表示の間にコンテナをはさみ、不要なコードを削除

* 引用APIを作成、ついでにブロック状況を引用APIに反映

* テスト修正など

* 引用をキャッシュに登録

* `quote_id`が`quote_of_id`になったのをSerializerに反映

* Fix test

* 引用をフィルターの対象に含める設定+エラー修正

* ストリーミングの存在しないプロパティ削除によるエラーを修正

* Fix lint

* 他のサーバーから来た引用付き投稿を処理

* Fix test

* フィルター設定時エラーの調整

* 画像つき投稿のスタイルを調整

* 画像つき投稿の最大高さを調整

* 引用禁止・非表示の設定を追加

* ブロック対応

* マイグレーションコード調整

* 引用設定の翻訳を作成

* Lint修正

* 参照1つの場合は引用に変換する設定を削除

* 不要になったテストを削除

* ブロック設定追加、バグ修正

* 他サーバーへ引用送信・受け入れ
2023-10-02 11:12:51 +09:00
KMY
2f1b17e506 Merge remote-tracking branch 'parent/main' into kb_migration 2023-08-13 19:06:10 +09:00
Claire
34f3001278
Fix reply not preserving the language from the replied-to post (#26452) 2023-08-12 00:06:37 +02:00
KMY
287eacf5f3 Merge commit 'fd284311e7' into kb_migration 2023-08-01 17:59:16 +09:00
Christian Schmidt
6781dc6462
Preserve translation on status re-import (#26168) 2023-07-25 20:29:31 +02:00
KMY
9027195ae3 Merge commit '0ddc895282' into kb_migration 2023-06-06 11:36:04 +09:00
S.H
a6c898f501
Fix not shown announcements in hometimeline. (#25251) 2023-06-05 14:49:51 +02:00
KMY
093cfdbb7b Merge commit 'c15c8c7aa8' into kb_migration 2023-06-01 17:30:18 +09:00
Christian Schmidt
69057467cb
Translate CW, poll options and media descriptions (#24175)
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2023-06-01 00:10:21 +02:00
KMY
d6f8f19e31 Merge commit 'e58c36d308' into kb_migration 2023-05-25 08:46:53 +09:00
Renaud Chaput
d27216dc46
Enforce import order with ESLint (#25096) 2023-05-23 17:15:17 +02:00
KMY
ff2bcf7595 Add custom_emoji isSensitive support 2023-05-22 17:44:47 +09:00
KMY
57c15e0d7f Remove extra media attachments and support raw array 2023-04-22 17:10:11 +09:00
KMY
55f59b4343 Fix status visibility_ex error 2023-04-09 09:21:10 +09:00
KMY
0b9151859d Separate media_attachments property 2023-04-08 09:35:23 +09:00
KMY
1502668ee5 Support 5 or more media_attachments from activitypub 2023-04-07 20:26:52 +09:00
KMY
21899ccf3f Fix removing my reaction flag on status updated 2023-04-07 17:22:09 +09:00
KMY
df6de7daf5 Add emoji reaction bar into status view 2023-02-24 17:51:57 +09:00
Claire
02851848e9
Revamp post filtering system (#18058)
* 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.
2022-06-28 09:42:13 +02:00
Eugen Rochko
1060666c58
Add support for editing for published statuses (#16697)
* Add support for editing for published statuses

* Fix references to stripped-out code

* Various fixes and improvements

* Further fixes and improvements

* Fix updates being potentially sent to unauthorized recipients

* Various fixes and improvements

* Fix wrong words in test

* Fix notifying accounts that were tagged but were not in the audience

* Fix mistake
2022-01-19 22:37:27 +01:00
Claire
37e80994f8
Fix media descriptions not being used for client-side filtering (#17206)
Fix oversight in #13837
2021-12-28 23:25:50 +01:00
Claire
70f6f2e9b7
Fix empty CW when a content-less toot with a CW is encountered twice (#16220) 2021-05-11 22:21:47 +02:00
Claire
aa1b43f467
Fix display of toots without text content (#15665)
* Fix display of toots without text content

- fixes CWs from other implementations not showing up if toot has no text
  contents
- fixes the “Read more” thread indicator not showing up on threaded toots
  with no text contents

* Move content-less toot's CW to conents
2021-05-05 23:41:02 +02:00
Eugen Rochko
bf903dc510
Change onboarding by replacing tutorial with follow recommendations in web UI (#16060) 2021-04-19 14:45:15 +02:00
Ben Lubar
c66403b257
FIX: filters ignore media descriptions (#13837)
* FIX: filters ignore media descriptions

* remove parentheses to make codeclimate happy

* combine the text and run the regular expression only once.

https://github.com/tootsuite/mastodon/pull/13837#discussion_r431752581

* Fix use of “filter” instead of “compact”, fix coding style issues

Co-authored-by: Thibaut Girka <thib@sitedethib.com>
2020-06-09 00:11:42 +02:00
Eugen Rochko
f52c988e12
Add announcements (#12662)
* Add announcements

Fix #11006

* Add reactions to announcements

* Add admin UI for announcements

* Add unit tests

* Fix issues

- Add `with_dismissed` param to announcements API
- Fix end date not being formatted when time range is given
- Fix announcement delete causing reactions to send streaming updates
- Fix announcements container growing too wide and mascot too small
- Fix `all_day` being settable when no time range is given
- Change text "Update" to "Announcement"

* Fix scheduler unpublishing announcements before they are due

* Fix filter params not being passed to announcements filter
2020-01-23 22:00:13 +01:00
ThibG
1a12943924 Fix notification filters not applying to poll options (#12269) 2019-11-04 13:01:50 +01:00
ThibG
b359974d9b Show user what options they have voted (#11195)
* Add own_votes field to poll results in REST API

Fixes #10679

* Display user votes in WebUI

* Update styling

* Add vote checkmark to public pages
2019-09-22 14:15:18 +02:00
ThibG
4bd58b7f2d Display custom emoji in bio field names (#11350)
Already displayed in public pages, but not WebUI
2019-07-21 03:40:27 +02:00
ThibG
47ef4a6c7a Apply filters to poll options (#11174)
* Apply filters to poll options in WebUI

Fixes #11128

* Apply filters to poll options server-side

* Add poll options to searchable text
2019-06-25 14:45:14 +02:00
ThibG
80f0910e21 Add support for custom emojis in poll options (#10322)
* Backend changes for custom emoji support in poll options

* Serialize poll emojis in REST API

* Render custom emojis in poll options

* Render custom emoji in poll options on public pages
2019-03-20 17:29:12 +01:00
Eugen Rochko
4407f07014
Render unicode emoji in polls using emoji pack (#10185) 2019-03-06 03:57:46 +01:00
Eugen Rochko
230a012f00
Add polls (#10111)
* Add polls

Fix #1629

* Add tests

* Fixes

* Change API for creating polls

* Use name instead of content for votes

* Remove poll validation for remote polls

* Add polls to public pages

* When updating the poll, update options just in case they were changed

* Fix public pages showing both poll and other media
2019-03-03 22:18:23 +01:00
Eugen Rochko
f59b840549
Fix empty display name precedence over username in web UI (#9163)
Fix #9131
2018-10-30 17:06:12 +01:00
Matt Sweetman
1889526e23 Add user preference to always expand toots marked with content warnings (#8762) 2018-09-24 05:44:01 +02:00
Yamagishi Kazutoshi
f972815f1b Hide status content when spoiler text is not empty (#7797) 2018-06-14 08:03:51 +02:00
Eugen Rochko
d185f3ddaf
Use plaintext value for field value tooltips in web UI (#7388)
Fix #7383
2018-05-07 09:30:38 +02:00