Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

enhance: カスタム絵文字関連の変更 #9794

Merged
merged 22 commits into from
Apr 12, 2023

Conversation

tamaina
Copy link
Contributor

@tamaina tamaina commented Feb 4, 2023

Resolve #9695

Includes #10142

What

  • ノートなどに含まれるemojis(populateEmojiの結果)は(プロキシされたURLではなく)オリジナルのURLを指すように
  • 絵文字は必ずプロキシする
  • MFMでx3/x4もしくはscale.x/yが2.5以上に指定されていた場合にはオリジナル品質の絵文字を使用するように

Why

populateEmojiの結果がなぜかプロキシだけ通して絵文字品質へ圧縮していない問題も修正されます

@github-actions github-actions bot added packages/backend Server side specific issue/PR packages/frontend Client side specific issue/PR labels Feb 4, 2023
@syuilo
Copy link
Member

syuilo commented Feb 5, 2023

ノートなどに含まれるemojis(populateEmojiの結果)は(プロキシされたURLではなく)オリジナルのURLを指すように

リモート直リンクは問題起きない?
前にインスタンスのアイコン直リンクしてたらブラウザの警告出たことあったし

@tamaina
Copy link
Contributor Author

tamaina commented Feb 5, 2023

リモート直リンクは問題起きない?

このPRではMkCustomEmojiがプロキシを通すようにしている(はず)

@syuilo
Copy link
Member

syuilo commented Feb 5, 2023

MFMでx3/x4もしくはscale.x/yが2.5以上に指定されていた場合にはオリジナル品質の絵文字を使用するように

これあんまり要らない気がした

@tamaina
Copy link
Contributor Author

tamaina commented Feb 5, 2023

これあんまり要らない気がした

いいえ、絶対に必要です

@tamaina
Copy link
Contributor Author

tamaina commented Feb 10, 2023

ping

@acid-chicken
Copy link
Member

MFMでx3/x4もしくはscale.x/yが2.5以上に指定されていた場合にはオリジナル品質の絵文字を使用するように

これ寸法計算したいしやっぱりプロキシの仕様整理しようぜ

@tamaina
Copy link
Contributor Author

tamaina commented Feb 11, 2023

寸法計算したい

xNオプションになったわけだしそんな厳密にやる必要ない気もする

プロキシの仕様整理

これ以上整理する気ない

@acid-chicken
Copy link
Member

xNオプションになったわけだしそんな厳密にやる必要ない気もする

画像サイズ側をちゃんとした寸法で返そうって話

これ以上整理する気ない

今あまり整理された仕様ではなくない?

@tamaina
Copy link
Contributor Author

tamaina commented Feb 11, 2023

ちゃんとした寸法で

クライアント側での計算量、キャッシュを効かせられないなどの面で不利なのでpx単位でプロキシに要求するのはやめたい

今あまり整理された仕様ではなくない?

個人的にはもう十分整理した気になっている

@acid-chicken
Copy link
Member

acid-chicken commented Feb 11, 2023

クライアント側での計算量、キャッシュを効かせられないなどの面で不利なのでpx単位でプロキシに要求するのはやめたい

(キャッシュはできるという前提で)計算量は重なってる scale を掛け合わせるだけでオーダーもへったくれもないし、キャッシュについてはどうせノートで scale かわらんからさして不利どころかオリジナルを問い合わせてキャッシュに乗せる方が容量取る(オリジナルの解像度にもよるが)

個人的にはもう十分整理した気になっている

#9733 (comment) などで前にも書いてるけど特に回答もらってない気がする

@syuilo
Copy link
Member

syuilo commented Feb 20, 2023

これあんまり要らない気がした

いいえ、絶対に必要です

近い将来カスタム絵文字として使われる画像の大きさを制限する可能性が高いからそれ考えると要らない感

@tamaina
Copy link
Contributor Author

tamaina commented Feb 20, 2023

近い将来

いつ

@syuilo
Copy link
Member

syuilo commented Feb 20, 2023

近い将来

@tamaina
Copy link
Contributor Author

tamaina commented Feb 20, 2023

重なってる scale を掛け合わせるだけ

端末での表示倍率やMFMば表示されているフォントサイズはまちまちなので、scaleを掛け合わせるだけで必要なpxを得ることはできない
(し、多くの場合普通のサイズで表示されるのだからそこまで複雑な処理を書く必要はない)

どうせノートで scale かわらんからさして不利どころかオリジナルを問い合わせてキャッシュに乗せる方が容量取る(オリジナルの解像度にもよるが)

この部分理解できなかった

@codecov
Copy link

codecov bot commented Feb 22, 2023

Codecov Report

Merging #9794 (28698d8) into develop (0db88a5) will increase coverage by 3.47%.
The diff coverage is 59.25%.

@@             Coverage Diff             @@
##           develop    #9794      +/-   ##
===========================================
+ Coverage    74.94%   78.42%   +3.47%     
===========================================
  Files          891      164     -727     
  Lines        87860    20320   -67540     
  Branches      5951      359    -5592     
===========================================
- Hits         65846    15935   -49911     
+ Misses       22014     4385   -17629     
Impacted Files Coverage Δ
packages/frontend/src/components/mfm.ts 33.33% <34.37%> (+1.32%) ⬆️
packages/frontend/src/scripts/media-proxy.ts 18.75% <50.00%> (ø)
...s/frontend/src/components/global/MkCustomEmoji.vue 100.00% <100.00%> (ø)

... and 727 files with indirect coverage changes

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

@tamaina
Copy link
Contributor Author

tamaina commented Feb 22, 2023

マージコンフリクト直したけどなんでコンフリクトと言われたかがわからない

@tamaina
Copy link
Contributor Author

tamaina commented Feb 26, 2023

conflict resolved

@tamaina
Copy link
Contributor Author

tamaina commented Feb 28, 2023

#10142 をマージ

@tamaina tamaina requested a review from rinsuki February 28, 2023 06:49
@tamaina
Copy link
Contributor Author

tamaina commented Feb 28, 2023

プロキシの仕様整理

https://github.com/misskey-dev/media-proxy/blob/master/SPECIFICATION.md

メディアプロキシの仕様を書き出してみた

@tamaina
Copy link
Contributor Author

tamaina commented Apr 12, 2023

scaleで掛け合わせるようにした

@tamaina
Copy link
Contributor Author

tamaina commented Apr 12, 2023

今マージする気満々でいる

@syuilo syuilo merged commit 81d2c5a into misskey-dev:develop Apr 12, 2023
@tamaina
Copy link
Contributor Author

tamaina commented Apr 12, 2023

(一応テストを待ってた

Ry0taK pushed a commit to MisskeyIO/misskey that referenced this pull request Apr 13, 2023
* Refactor sw (misskey-dev#10579)

* refactor(sw): remove dead code

* refactor(sw): remove dead code

* refactor(sw): remove dead code

* refactor(sw): remove dead code

* refactor(sw): remove dead code

* refactor(sw): remove dead code

* refactor(sw): 冗長な部分を変更

* refactor(sw): 使われていない煩雑な機能を削除

* refactor(sw): remove dead code

* refactor(sw): URL文字列の作成に`URL`を使うように

* refactor(sw): 型アサーションの削除とそれに伴い露呈したエラーへの対処

* refactor(sw): `append` -> `set` in `URLSearchParams`

* refactor(sw): `any`の削除とそれに伴い露呈したエラーへの対処

* refactor(sw): 型アサーションの削除とそれに伴い露呈したエラーへの対処

対処と言っても`throw`するだけ。いままでもこの状況ではエラーが投げられていたはずなので、この対処により新たな問題が起きることはないはず。

* refactor(sw): i18n loading

* refactor(sw): 型推論がうまくできる書き方に変更

`codes`が`(string | undefined)[]`から`string[]`になった

* refactor(sw): クエリ文字列の作成に`URLSearchParams`を使うように

* refactor(sw): `findClient`

* refactor(sw): `openClient`における`any`や`as`の書き換え

* refactor(sw): `openPost`における`any`の書き換え

* refactor(sw): `let` -> `const`

* refactor(sw): `any` -> `unknown`

* cleanup(sw): import

* cleanup(sw)

* cleanup(sw): `?.`

* cleanup(sw/.eslintrc.js)

* refactor(sw): `@typescript-eslint/explicit-function-return-type`

* refactor(sw): `@typescript-eslint/no-unused-vars`

* refactor(sw): どうしようもないところに`eslint-disable-next-line`を

* refactor(sw): `import/no-default-export`

* update operations.ts

* throw new Error

---------

Co-authored-by: tamaina <tamaina@hotmail.co.jp>

* Update CHANGELOG.md (misskey-dev#10591)

* feat: queueing bulk follow/unfollow and block/unblock (misskey-dev#10544)

* wrap follow/unfollow and block/unblock as job queue

* create import job to follow in each iteration

* make relationship jobs concurrent

* replace to job queue if called repeatedly

* use addBulk to import

* omit stream when importing

* fix job caller

* use ThinUser instead of User to reduce redis memory consumption

* createImportFollowingToDbJobの呼び出し方を変える, 型補強

* Force ThinUser

* オブジェクト操作のみのメソッド名はgenerate...Data

* Force ThinUser in generateRelationshipJobData

* silent bulk unfollow at admin api endpoint

---------

Co-authored-by: tamaina <tamaina@hotmail.co.jp>

* perf(backend): ノート作成時のアンテナ追加パフォーマンスを改善

* update CHANGELOG.md

* refactor: サウンド関連の設定をpizzaxに移行 (misskey-dev#8105)

* enhane: unison-reloadに指定したパスに移動できるように

* null

* null

* feat: ログインするアカウントのIDをクエリ文字列で指定する機能

* null

* await?

* rename

* rename

* Update read.ts

* merge

* get-note-summary

* fix

* swパッケージに

* add missing packages

* fix getNoteSummary

* add webpack-cli

* ✌️

* remove plugins

* sw-inject分離したがテストしてない

* fix notification.vue

* remove a blank line

* disconnect intersection observer

* disconnect2

* fix notification.vue

* remove a blank line

* disconnect intersection observer

* disconnect2

* fix

* ✌️

* clean up config

* typesを戻した

* backend/src/web/index.ts

* notification-badges

* add scripts

* change create-notification.ts

* Update packages/client/src/components/notification.vue

Co-authored-by: Acid Chicken (硫酸鶏) <root@acid-chicken.com>

* disconnect

* oops

* Failed to load the script unexpectedly回避
sw.jsとlib.tsを分離してみた

* truncate notification

* Update packages/client/src/ui/_common_/common.vue

Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>

* clean up

* clean up

* refactor

* キャッシュ対策

* Truncate push notification message

* fix

* wip

* clean up

* migration

* migration

* comment

* move soundConfigStore

* ✌️

* clean up

* クライアントがあったらストリームに接続しているということなので通知しない判定の位置を修正

* components/drive-file-thumbnail.vue

* components/drive-select-dialog.vue

* components/drive-window.vue

* merge

* fix

* remove reversi setting

* Service Workerのビルドにesbuildを使うようにする

* return createEmptyNotification()

* fix

* fix

* i18n.ts

* update

* ✌️

* remove ts-loader

* fix

* fix

* enhance: Service Workerを常に登録するように

* pollEnded

* pollEnded

* URLをsw.jsに戻す

* clean up

* clean up

* update sounds.vue

* update

* fix type

* ✌️

* ;v;

---------

Co-authored-by: Acid Chicken (硫酸鶏) <root@acid-chicken.com>
Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>

* enhance: カスタム絵文字関連の変更 (misskey-dev#9794)

* PackedNoteなどのemojisはプロキシしていないURLを返すように

* MFMでx3/x4もしくはscale.x/yが2.5以上に指定されていた場合にはオリジナル品質の絵文字を使用する

* update CHANGELOG.md

* fix changelog

* ??

* wip

* fix

* merge

* Update packages/frontend/src/scripts/media-proxy.ts

Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>

* merge

* calc scale

---------

Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>

* feat: role timeline

Resolve misskey-dev#10581

* feat(server): Misskey Webでユーザーフレンドリーなエラーページを出す (misskey-dev#10590)

* (add) user-friendly error page

* Update CHANGELOG.md

* (add) cache-control header

* Add ClientLoggerService

* Log params and query

* remove error stack on client

* fix pug

* 文面を調整

* :art]

---------

Co-authored-by: tamaina <tamaina@hotmail.co.jp>

* test(backend): Add tests for users (misskey-dev#10546)

Co-authored-by: tamaina <tamaina@hotmail.co.jp>

* fix(backend): カスタム絵文字でリアクションできないことがある問題を修正

* Update CustomEmojiService.ts

* fix type

* Use unique identifier for each follow request (misskey-dev#10600)

Co-authored-by: anemone <anemoneya@icloud.com>

* fix type in CustomEmojiService

* fix type in CustomEmojiService 2

* fix

* Update CHANGELOG.md

* fix(server): アンテナとロールTLのuntil/sinceプロパティが動くように (misskey-dev#10605)

* fix(server): アンテナとロールTLのuntil/sinceプロパティが動くように

* fix

* Update CHANGELOG.md

* Update about-misskey.vue

* 🎨

* fix(backend): チャンネルのピン留めされたノートの順番が正しくない問題を修正

Fix misskey-dev#10541

* New Crowdin updates (misskey-dev#10585)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Chinese Traditional)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (Japanese, Kansai)

* New translations ja-JP.yml (Chinese Simplified)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (Chinese Traditional)

* New translations ja-JP.yml (Japanese, Kansai)

* New translations ja-JP.yml (Chinese Simplified)

* 13.11.3

* [ci skip] remove outdated comment

* [ci skip] improve readability

* 一部の Workflow を削除

---------

Co-authored-by: okayurisotto <aytkzm@gmail.com>
Co-authored-by: tamaina <tamaina@hotmail.co.jp>
Co-authored-by: futchitwo <74236683+futchitwo@users.noreply.github.com>
Co-authored-by: Namekuji <11836635+nmkj-io@users.noreply.github.com>
Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
Co-authored-by: Acid Chicken (硫酸鶏) <root@acid-chicken.com>
Co-authored-by: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com>
Co-authored-by: Nanashia <nanashia.128@gmail.com>
Co-authored-by: hutchisr <42283663+hutchisr@users.noreply.github.com>
Co-authored-by: anemone <anemoneya@icloud.com>
Co-authored-by: Ebise Lutica <7106976+EbiseLutica@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
packages/backend Server side specific issue/PR packages/frontend Client side specific issue/PR
Projects
None yet
3 participants