
日々の「ソーシャルネットワーキングワークフロー」では、Twitterの「お気に入り」機能をToDoリストのように使っています。メールを介さずにOmniFocusにお気に入りを追加する方法が見つからなかったので、自分で解決策を構築しました。
IFTTT、1行のbash、Hazel、そしてAppleScriptを使って、お気に入りのツイートをOmniFocusの受信トレイのタスクに変換し、後で処理できるようにするシンプルな方法を作りました。さらに、Automatorを追加してお気に入りのツイートからURLのみを抽出する、より高度なバージョンも作成しました。
イフト
Twitterアーカイブツールを独自に運用する方法はいくつかありますが、私はIFTTTを使うことにしました。私の経験上、IFTTTは信頼性が高く、十分な速度も出ています(プレミアムアカウントでは、将来的にはトリガータイムがさらに高速になるはずです)。お気に入りのツイートをメールで転送し、Mail.appでOmniFocusのタスクとして処理する代わりに、別の方法を選びました。ツイートをテキストファイルに変換し、それを受信トレイのタスクとして保存するのです。これによりMail.appを介さず、Dropboxを使用し、AppleScriptを介してOmniFocusと直接連携し、必要に応じてお気に入りのツイートをプレーンテキストファイルとしてアーカイブ保存できます。
IFTTTで、お気に入りに追加した新しいツイートごとにDropboxに新しいテキストファイルを作成するレシピを作成しましょう。作業を簡単にするために、Dropboxに別の保存先フォルダを設定し、ユーザー名とテキストの基本的な構文を選択しました。これらのパラメータは自由に調整できます。OmniFocusではこの形式でツイートが表示されるので、お好きな構文を自由に選んでください。
プロセステキスト
Macでは、保存先フォルダに新しいテキストファイルがあるかどうかを監視し、何らかのアクションを実行する必要があります。これにはいつものようにHazelを使用します。下図のようにフォルダの新しいルールを作成し、シェルスクリプトとAppleScriptのアクションを設定します。
シェル スクリプトは現在処理中のファイルを取得し、その内容を読み取り、UTF-8 でエンコードされていることを確認し、テキストをシステム クリップボードにコピーします。
cat $1 | textutil -convert txt -stdin -stdout -encoding UTF-8 | pbcopy
AppleScript はクリップボードを取得し、それを基に OmniFocus に新しい受信トレイ タスクを作成します。
set OFTask to the clipboard
tell application "OmniFocus"
set theDoc to first document
tell theDoc
make new inbox task with properties {name:OFTask}
end tell
end tell
最後に、テキストファイルをアーカイブまたは削除するアクションを挿入できます。もちろん、新しい受信トレイタスクを受け取るにはOmniFocusが起動している必要があることに注意してください。AppleScriptをいじれば、新しいタスクのデフォルトのコンテキストとプロジェクトを設定することもできますが、きちんと確認するために受信トレイに残しておくのがよいでしょう。
私のようにTwitterのお気に入りをToDoリストや「チェックしておきたいクールなものリスト」として使っている人は、タイムラインで共有されたリンクをお気に入りとして使っているのではないでしょうか。MacがツイートからURLを自動的に抽出し、OmniFocusにURLだけを保存してくれたら便利だと思いませんか?
テキストからURLを抽出し、クリップボードと、上記で使用したのと同じAppleScriptに渡すAutomatorワークフローを作成しました。このワークフローは、URLが1つだけのツイートでも問題なく動作しますが、複数のURLを含むツイートの場合はさらに効果的です。複数のURLを含むツイートの場合は、URLを抽出し、テキスト文字列を改行区切りで結合します(この区切りは好みに合わせてカスタマイズできます)。
どういうわけか、Apple独自のAutomatorアクション「テキストからデータを抽出」は、プレーンテキストファイル内のURLをうまく処理できません。これを実現し、さらに多くのアクションを実行するために、Automated WorkflowsのText Automator Action Packを使用しています。これは、テキスト関連の優れたアクションをまとめた15ドルのコレクションで、こちらから確認できます。「テキストからURLを抽出」アクションは完璧に機能し、URL検索プレフィックスを追加することもできます。
リンクのフォーマットは自由に設定できます。私はシンプルにしていますが、改行に接頭辞(例えば「Link - 」)を追加したり、接尾辞を追加したり、テキストの先頭または末尾の文字を削除したりすることもできます。これらはすべてAction Packに含まれています。
AutomatorワークフローをシェルスクリプトとAppleScriptの間に配置する必要があります。利便性と整理のため、Keyboard Maestroでワークフローを実行し、スクリプトの先頭で以下の3つの文字列で呼び出します。
tell application "Keyboard Maestro Engine"
-- Tells KM to execute script as macro
do script "Extract"
end tell
set OFTask to the clipboard
tell application "OmniFocus"
set theDoc to first document
tell theDoc
make new inbox task with properties {name:OFTask}
end tell
end tell
Automator のおかげで、ツイートに複数のリンクが含まれている場合でも、OmniFocus の受信トレイに URL のリストが 1 つ表示されます。
更新: また、Automated Workflows では、通知センターでワークフローの実行を確認するために使用できるアクションも紹介されています。
追加コンテンツと特典にアクセスする
Club MacStories は 2015 年に設立され、ほぼ 10 年間にわたって毎週独占コンテンツを提供してきました。
毎週、毎月の電子メール ニュースレターから始まったものが、すべての MacStories ファン向けに設計されたメンバーシップ ファミリーに成長しました。
詳細については、こちらおよびクラブの FAQ をご覧ください。
Club MacStories : アプリ、ヒント、自動化ワークフロー、長文執筆、MacStories Unwind ポッドキャストへの早期アクセス、定期的な景品など、盛りだくさんの情報を満載した、電子メールと Web 経由の週刊および月刊ニュースレター。
Club MacStories+ : Club MacStories が提供するすべての機能に加え、アクティブな Discord コミュニティ、クラブの過去のカタログ全体を閲覧するための高度な検索機能とカスタム RSS 機能、ボーナス コラム、多数のアプリ割引などが含まれます。
Club Premier : 上記のすべてに加え、早期に、広告なしで、高ビットレートのオーディオで配信される当社の主力ポッドキャストの拡張バージョンである AppStories+ が含まれます。