✅️GM_fetchがない環境でurl-customizerでtweetが展開できない
2024-04-14 修正完了takker.icon
0.3.3にupdateしてください
変更点
default formatterでuserNameを使わないようにした
画像や動画しかないtweetはno description providedと表示する(後述)
defaultでScrapboxのtweet埋め込みが機能しなくなっている理由もわかったtakker.icon
code:index.jsから抜粋(js)
var v = Y.default.stringify({
url: i
})
, _ = yield ee.apiClient.post("/api/embed-text/twitter?".concat(v), {
timeout: 3e3
})
, {description: j, userName: W, screenName: Z, images: X} = _.data;
if (!(j && W && Z))
return closeModal();
ye({
description: j,
userName: W,
screenName: Z,
images: X
}),
description,userName,screenName,imagesのどれか一つでもないとmodalが閉じる(if (!(j && W && Z)) return closeModal();)ようcodingされている
ところがuserNameが生えなくなってしまったせいで、常にmodalが閉じるようになってしまった
またメディアのみのtweetでdescriptionが生えなくなったため、この条件でもmodalが開かなくなる
おそらくshokai.iconさんは気づいていないか、気づいていても困っていないか修正が後回しになっていて、放置しているのだろう
ちなみにイーロン・マスク.iconのせいでimagesは常に空になる
画像のみのtweetは表示できるものが何もなくなってしまったため、no description providedと表示するようdefault formatterを変えた
@shokai
no description provided
注:自分用に改造しているのが悪さをしている可能性がある点wogikaze.icon
テスト用リンク
https://twitter.com/Colon_BR/status/1771490154277974290
cdn.syndication.twimg.com/tweet-result?id=:tweetIdで中身を見ればわかりそうtakker.icon
https://cdn.syndication.twimg.com/tweet-result?id=1771490154277974290&token=x
エラー
https://gyazo.com/8a2bd7b26c1913cc924dc5301dafd2b4
コード
code:js
if ("images" in tweet) {
return [
[${escapeForEmbed(tweet.screenName)}(@${escapeForEmbed(tweet.userName)}) ${url.origin}${url.pathname}],
...tweet.description.split("\n").map((line) => > ${escapeForEmbed(line)}),
...tweet.images.length > 0 ? [> ${tweet.images.map((image) => ${image})}] : []
].join("\n");
}
tweet.userNameがundefined??wogikaze.icon
これapi/embed-text/twitterの場合のコードが走ってるなtakker.icon
ほんとだwogikaze.icon
なら理解できる
✅️GM_fetchがない環境でurl-customizerでtweetが展開できない#661b0ff31280f000000020069c
すみませんでしたwogikaze.icon
既出だったんだtakker.icon
先人に感謝
GM_fetchがない環境で実行しようとして、この分岐を踏んだということかなtakker.icon
// @match https://scrapbox.io/*が// @match https://scrapbox.io/+になってた
(なんでや)wogikaze.icon
似てるから間違えるのもしゃーないtakker.icon
api/embed-text/twitterの型定義修正PR出してくれるひとがいたらうれしーなー(チラチラtakker.icon
ころんびぁ☕️ 3/24名古屋COMITIA Cー47(@Colon_BR)
謎ピースび☕️
https://pbs.twimg.com/media/GJWYxFhboAAApop.jpg
(2024-04-14) いまさらtwitter埋め込みが死をどうにかしようとしているにあったやりとりを移植
このやりとりのほうが上記のやりとりより先に行われていた
原因がわかりました。api/embed-text/twitterの応答の型変更ですtakker.icon
今まではuserNameが生えていたが、あるタイミングで消えたみたい
/yuyasurarin/tweetの埋め込みのフォーマットを変更するscript#64e6d6675f1e0d00005b019awogikaze.icon
これを文字列だとみなして処理していたため、userName.replace()でTypeError: Cannot read properties of undefined (reading 'replace')が発生した
対策
PCのみ
TamperMonkeyでGM fetchを入れる
モバイル含む
コードに修正を加える必要がある
api/embed-text/twitterの型定義の更新
変更された型定義に併せて、scrapbox-url-customizerのformat処理を書き換える
takker.iconが再現できなかったのは、GM fetchを入れていたため
GM fetchがない環境でのみapi/embed-text/twitterを叩く仕様にしていた
なるほどーinajob.icon
今は api/embed-text/twitter は動いているけどCtrl+Shift+Vが動いていない状況のか・・
api/embed-text/twitterもおかしいように見える
descriptionの先頭1文字が欠けている
画像があってもimagesが空
Tweetの文字列は1文字目が展開されない様子inajob.icon
XHRの通信結果からして1文字目が存在しないのでこれは対応できなそう