おさむのひと
おさむのひと
おそくなってごめんなさいdone
### ①フロントエンド側の`MkPagination`は`id`というプロパティを期待しており、これをページネーションの`sinceId`/`untilId`に使用している https://github.com/misskey-dev/misskey/blob/c1514ce91dc08481a092a789ee37da546cdb4583/packages/frontend/src/components/MkPagination.vue#L83-L85 https://github.com/misskey-dev/misskey/blob/c1514ce91dc08481a092a789ee37da546cdb4583/packages/frontend/src/components/MkPagination.vue#L239-L328 ### ②バックエンド側の`QueryService.makePaginationQuery()`は`id`というプロパティを期待しており、これをページネーションの`sinceId`/`untilId`に使用している https://github.com/misskey-dev/misskey/blob/c1514ce91dc08481a092a789ee37da546cdb4583/packages/backend/src/server/api/endpoints/channels/followed.ts#L51-L52 https://github.com/misskey-dev/misskey/blob/c1514ce91dc08481a092a789ee37da546cdb4583/packages/backend/src/core/QueryService.ts#L43-L68 ここで渡しているのは`channelFollowingsRepository`のクエリビルダーなので、channel_followings.idが`sinceId`/`untilId`として渡されることが想定されている ### ③バックエンドから返される時にpackされているが、この時のIDは`channel`のものになる https://github.com/misskey-dev/misskey/blob/c1514ce91dc08481a092a789ee37da546cdb4583/packages/backend/src/server/api/endpoints/channels/followed.ts#L58 https://github.com/misskey-dev/misskey/blob/c1514ce91dc08481a092a789ee37da546cdb4583/packages/backend/src/core/entities/ChannelEntityService.ts#L75 ### ①+②+③ フロントエンドには`channel.id`をキーとした一覧が返却され、`MkPagination`によるページネーションもこのIDが使用される。channels/followedの`sinceId`/`untilId`には`channel.id`が渡ってくることになるが、channels/followedそのものは`channel_followings.id`を使って絞り込みをしており、不正確な条件で絞り込みをしてしまう(IDの種類が違うので)
@syuilo ↑こんな感じかなと
@syuilo この流れ、1回やった気がするのでもう一度 https://github.com/misskey-dev/misskey/issues/12175 を確認いただけますと… :pray: そのうえでこのブランチの対応がよく無さそうであれば、別の方法を考えます
https://github.com/misskey-dev/misskey/blob/514a65e45330f09ad58cac3cab16bd888be80866/packages/backend/src/core/entities/FollowingEntityService.ts#L90-L101 followingのIDでした
方針がよくなさそうなので、このPRは白紙にしますか。
makePaginationQueryを少し弄ったコピペ版を作成し(ただし、安易に複製しないでほしい旨と経緯、このissue/prをコメントで添える)、それを使ってページング処理をするようにすれば、すべてクリアになりますかね…?
「全て」タブはセンシティブチャンネルのノートを省くようになっていますが、これを踏襲しつつ…以下のどちらかで実装できればと思っていますが、いかがでしょう。 - 「ファイル付き」タブにチャンネルノートを混ぜ込んでしまう - 「ファイル付き」と「ファイル付き(全て)」みたいな感じで分ける