Skip to content

Conversation

@yuicho
Copy link

@yuicho yuicho commented Nov 14, 2025

本家 9dbebbb にてapp/javascript/mastodon/actions/importer/index.jsapp/javascript/mastodon/actions/importer/normalizer.jsにそれぞれoptions引数が追加されました

kmyblueでは 976b107 にて、以前よりoptions引数を入れていましたが、今回本家で追加されたものとは型が違いました。

この状態で index.jsimportFetchedStatuses のみ以前の状態となっていたため、optionsが存在しなかった時のデフォルト値undefineが格納された状態だと、分割代入に失敗しエラーとなっていました。

なお、optionsの定義場所も変わっていますが、これは本家に合わせた変更です。

@yuicho
Copy link
Author

yuicho commented Nov 14, 2025

自サーバー(mstdn.yuicho.net)で動作確認済みです

@kmycode
Copy link
Owner

kmycode commented Nov 14, 2025

ご指摘ありがとうございます。

ただ、今回のPRですが、2つあるoptionsを混合しているように見受けられます。
kmyblueのkb21.0-lts以前のコードが以下になりますが、

export function importFetchedStatuses(statuses) {
return (dispatch, getState) => {
const accounts = [];
const normalStatuses = [];
const polls = [];
const filters = [];
function processStatus(status, options = undefined) {
pushUnique(normalStatuses, normalizeStatus(status, getState().getIn(['statuses', status.id]), options));
pushUnique(accounts, status.account);
if (status.filtered) {
status.filtered.forEach(result => pushUnique(filters, result.filter));
}
if (status.reblog?.id) {
processStatus(status.reblog);
}
if (status.quote?.quoted_status) {
processStatus(status.quote.quoted_status, { withoutEmojiReaction: true });
}

processStatusの中からprocessStatusを再帰的に呼び出しているのは、kmyblueのAPIで取得できる投稿オブジェクトにおいて絵文字リアクションの情報が欠損する場合があり、それらの投稿の絵文字リアクション情報を取り込んで保存しないという動作を足しているためです。
元来APIの不出来に由来するとはいえprocessStatusも投稿ごとに挙動を変える必要があります。

今回のPRではoptionsが外側のみに設定されており、今回のPRコード内の73行目が正しく動作しないと思われます。

https://github.com/yuicho/kmyblue/blob/7571546e9a1815d5a3b1220af6b086a3d430874c/app/javascript/mastodon/actions/importer/index.js#L60-74

以上の理由により、コードの修正がない限りこのPRは却下とさせていただきます。
並行してこちらでも修正を検討しますが、アイデアがあるなら引き続きPR受け入れますのでよろしくお願いします

@yuicho
Copy link
Author

yuicho commented Nov 14, 2025

再起呼び出しについて見落としておりました。
ご指摘ありがとうございます。

21.2のPR( #1070 )にて対応いただいているようですので、当PRはクローズいたします。

@yuicho yuicho closed this Nov 14, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants