Safari の RSS アイコンをクリックしたら...

「Safari の RSS アイコンをクリックしたら、使っている RSS リーダーで登録をしてほしいよね」というお話。

Safari RSS アイコン

Safari の RSS アイコンっていうのは、アドレスバーの右側に出てくるやつです。

利用している RSS リーダーがローカル環境で動かすアプリケーションならそれほど面倒なことではないのかもしれない。Safari の環境設定のデフォルト RSS リーダーに指定すればいいのです。だけど使っているのが Web アプリケーションだったなら?

具体的にいうと livedoor Reader。RSS アイコンをクリックしたら livedoor Reader で RSS の購読を行いたい。Firefox なんかだとそういう設定ができた。Bookmarklet を使え、という話もあるけどそこはそれ。大人の事情により、触れることはいたしません。

Safari の RSS アイコンをクリックすることで livedoor Reader に登録することは簡単にできます。やり方は以前から知っていた(Safari の RSS アイコンをクリックしたら Bloglines に登録されて欲しいよね : blog.imladris.jp)。

では、試してみましょう。

まず、以下のようなスクリプトをバンドル形式のアプリケーションとして保存します。

Script Editor で開く

on open location thisURL
    display dialog thisURL
end open location

保存したらバンドルの中にある Info.plist に以下のように追加の記述を行います。

<key>CFBundleIdentifier</key>
<string>com.DeveloperName.ApplicationName</string>
<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLName</key>
        <string>RSS URL</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>feed</string>
        </array>
    </dict>
</array>

Info.plist を保存し、いったんログアウトし、再度ログインします。

Safari の環境設定でデフォルト RSS リーダーに Info.plist を書き換えたこの AppleScript アプリケーションを指定します(一覧に表示されると思います)。

Safari「デフォルト RSS リーダー」環境設定

これでアドレスバーの RSS アイコンをクリックすると、この AppleScript アプリケーションが起動し、渡された URL を表示します。

RSS アイコンクリックで表示されたダイアログ

ここまで確認できたら本来の目的の livedoor Reader に登録するのは簡単です。

Script Editor で開く

on open location thisURL
    if thisURL starts with "feed://" then
        set num to offset of ":" in thisURL
        set targetURL to "http" & (text num thru -1 of thisURL)
        -- display dialog targetURL
        continue open location "http://reader.livedoor.com/subscribe/" & targetURL
    end if
end open location

渡される URL は feed で始まっているのでこの部分を http に変更します。そして、livedoor Reader の URL にくっつけて open location で開くと、livedoor Reader の登録画面に移動します。