おさむのひと
おさむのひと
もしこれが採択された場合、CHANGELOG.mdの記入箇所チェックが役割を終えるので消しておきたい - https://github.com/misskey-dev/misskey/blob/develop/.github/workflows/changelog-check.yml - https://github.com/misskey-dev/misskey/tree/develop/scripts/changelog-checker ああいや結局記入位置を間違える問題はついて回りそうかな…蒸気は最終的な形次第で
以下の実装が噛み合っていないものと推測しています。 - [channels/followed.ts](https://github.com/samunohito/misskey/blob/6cf466e5d1d423aec8ec06f65644c73c7e9a8ecd/packages/backend/src/server/api/endpoints/channels/followed.ts#L33)に渡されるsinceId/untilIdの種別 →ここで渡ってくるのはchannel.id - [channel_following向けのクエリビルダ](https://github.com/samunohito/misskey/blob/6cf466e5d1d423aec8ec06f65644c73c7e9a8ecd/packages/backend/src/server/api/endpoints/channels/followed.ts#L51) - [QueryService.makePaginationQuery](https://github.com/samunohito/misskey/blob/e6c54de814c4d43785cc3c26378479bd053d9b63/packages/backend/src/core/QueryService.ts#L43)の実装 →sinceId/untilIdで絞り込む対象のカラムはid固定 上記から、channel_following.idに対しsinceId/untilIdを使って絞り込みを測るも、channel.idとchannel_following.idは別物であるため意図せぬ動作をしているものと考えました。 なので、絞り込み対象のカラムをchannel.idと同種であるchannel_following.followeeIdにすれば期待する動作となるかと思います。
以下のようにすればいけるかなと思ったのですが、如何でしょうか。 方針的によさそうであれば、プルリクを作ろうかと思います。 ```ts // 絞り込み対象とするカラムを外から設定できるようにする // (他箇所に影響がないように元々固定で設定されていたidカラムをデフォルト値とする) public makePaginationQuery( q: SelectQueryBuilder, sinceId?: string | null, untilId?: string | null, sinceDate?: number | null, untilDate?: number | null, columnName = 'id',...
> ChannelFollowing を返さないとダメそう となると…channelEntityService.pack()の流用はできなくなるので、channels/followed専用のものを新たに作成してそれを使うようにするイメージでしょうか(idはchannel_following.idを返すようにして、別にchannelIdみたいなパラメータを増やして返す) 上記方針だと[フロント側](https://github.com/samunohito/misskey/blob/b0f6c44f36f3173f5d232d1adb02fc09dfdcc003/packages/frontend/src/components/MkChannelPreview.vue#L7)やサードパーティアプリの該当機能も修正する必要が出てきますね…
@syuilo 互換性の観点から今のchannelIdを返す形を崩したくないのですが、どうでしょうか…
> v2として新設するとか これはバグの認識なので、仕様(channelのidを返す)を維持したまま期待動作になるよう修正するのがベストだと考えます。 平行線だと良くないので、以下の2点についてお伺いします。 - 現行のchannel.idを軸としたリストを返却することに対して懸念はありますか? - `ChannelFollowing を返さないとダメそう`という理由もご教示願いたいです
> ChannelFollowingを取得するAPIでChannelが返ってきてしまっているからいつフォローしたかとかの情報が取れない 現状持ってないです… 
`いつフォローしたかとかの情報`をどう賄うかは理解しました。 しかし、現状は「いつフォローしたか」の情報を使用していないので、互換性を切ってまでChannelFollowingのIDを返す理由が思い当たらず…
v2で新設というのは、ChannelFollowingのIDをベースにしたものを新しく作るという事ですか? となると、現行のバグはそのままということでしょうか…(これが懸念)
なるほど。v2を推される理由は理解しました。 > 現状のレスポンスだと不可能 https://github.com/misskey-dev/misskey/issues/12175#issuecomment-1783954717 それこそ上記コメントの実装か、上記が適わない場合はchannelIdを使用したsinceId/untilIdによる絞り込みクエリを追加する処理をフォロー中チャンネル一覧APIに追加すれば直せそうですが…