作成: 2022-06-18
最終更新: 2022-08-18
2022-06-18 作ってみたが、意外とツイート本文取得成功率の低い方法
2022-06-02のメモで、ツイート埋め込みに表示されない本文も添えることで、ツイート内容も検索可能にする方法を書いた。
今回はそれを自動化するショートカットを作った。
使い方
ショートカット
※ 現在のショートカットアプリの完成度はまだまだ低いのだろう。ショートカットを実行しても<template></template>
タグ内が空っぽだったって事が多い。しつこくショートカットを3~4回ほど実行してやったら本文が取り込めた。
技術的事項
本当は、ツイートのリンク(URL)を渡せば処理してくれるものを作りたかった。
しかし、ツイート本文である「記事」の取得が、共有シートとアクションでは動作が異なっていた。
対象ツイートを表示しておいて、Safariの共有シートから直接記事を渡した場合、ツイートの本文は問題なく取得できる。(失敗することも多い)
一方、URLだけ渡して、「Safariの"リーダー"を使って記事を取得」アクションで記事を取得しようとすると、今度は何故か本文を取得できない。
そのため、この操作方法になってしまった。
iOS/iPadOSのSafariの機能を使っているので、macOSでは動かないだろうし、Chromeでも動かない。
2022-08-18 Obsidianにツイート本文を埋め込む時に使用した取得方法を流用する
ツイートのWebページを取得し、それをHTMLに変換して、正規表現で本文と思われるところを抽出するという方法もある。
でも、以前作った「ObsidianにTweetを埋め込む時に使用するtwitframeのiframeのsizeを決定するiOS/iPadOSショートカットやブックマークレット(2022-04-08)」でもツイート本文を確実に取得できている。
そいつは、publish.twitter.comのページから「WebページでJavascriptを実行」アクションを使用して本文を取得している。(本文以外のデータも色々と取得する必要があったので)
今回は、そいつをLogseq用に改造することにした。
「コミュニティ」内のツイートのように「共有する」が無いものは、URLをクリップボードにコピーしておいて、このショートカットを直接実行する。