はじめに
hkob の雑記録の第152回目は、Arc で表示しているページを Task として登録するか X のポストを記録する Create a task or Save X Workflow を解説します。
これまでの Create a task or Save X Workflow
Create a task or Save X Workflow は Arc で開いているページを Task として登録するか X のポストを記録するものです。

最初の Hotkey は特に余計なことはしていません。

次の Run Script では AppleScript で Arc のアクティブウィンドウの URL とタイトルを取得します。二つを値を次のアクションに渡したいので、URL やタイトルに含まれないであろう半角の円マークで連結しています。

スクリプトは以下のようになっています。
tell application "Arc" set currentURL to URL of active tab of window 1 set currentTitle to title of active tab of window 1end tellreturn {currentURL, "¥", currentTitle} as string
二つ目の Run Script は Ruby スクリプトです。まず、受け取った文字列から URL とタイトルを分離します。URL が x.com か bsky.app であれば X の記録データベースに保存します。この場合、本文に Embed block でポストの埋め込みも作成しています。それ以外の場合には「いつかやる」タスクを作成します。どちらも元のページをアクセスできるように URL が保存されています。

Workflow の修正
こちらも大きな修正はなく、Replace action を削除するために、上のコードの URL の置換処理だけを変更しています。
require "notion_ruby_mapping" include NotionRubyMapping NotionRubyMapping.configure { |c| c.token = ENV["NOTION_API_KEY"] } url, title = ARGV.first.split "¥" if url =~ /https:\/\/(twitter.com|x.com|bsky.app)/ title =~ /^[^:]+: (.{,80}).*/ db = Database.find ENV["X_DB_ID"] page = db.create_child_page do |p, pp| pp["Name"].text_objects << $1 pp["URL"].url = url pp["Tag"].multi_select = ["Notion"] end page.append_block_children(EmbedBlock.new(url)) print page["url"].gsub("https://", "notion://") else db = Database.find ENV["TASK_DB_ID"] page = db.create_child_page do |p, pp| pp["Task name"].text_objects << title pp["Link"].url = url pp["Assignee"].people = ENV["USER_ID"] end print page["url"].gsub("https://", "notion://") end
この Workflow は最終的に以下のようになりました。

おわりに
毎週の Notion 座談会のために、X のポストなどを保存しています。このため、このワークフローは非常に便利に使っています。