TwitterにPostするOperatorユーザスクリプト書いてみた

Firefoxのアドオン、「Operator」のユーザスクリプトを使って、Twitterにポストするものを書いてみました。

Operatorのユーザースクリプトの「hAtom.js」を利用しますため、あらかじめ、以下のページからコードを入手しておく必要があります。

hAtom.jsのセットの方法は、わかりにくいものでよければ以下のページに記載してあります。

Operator経由でTwitterにポストするためのコードは、以下となります。なお、コチラがユーザスクリプトの書き方をよく把握してないので、書き方があっているのかどうかは不明なのと、Microformatsが書かれていないと動作できないことから、テストしたページは少ないです。(自分のトコのページだけでは限界が。。)

実用性とかはギモンなのですが、参考程度と個人の覚書ということで晒しておきます。

セットのときは任意のファイル名で拡張子.jsとして保存しておき、Operatorのオプションメニューから登録します。登録のときに、Operatorのオプションメニューの「動作」のtabから、「Submit to Twitter」を追加します。

// Submit to Twitter
var submit_to_twitter = {
  description: "Submit to Twitter",
  shortDescription: "Submit twitter",
  scope: {
    semantic: {
      "hAtom-hFeed": "hAtom-hFeed",
      "hAtom-hEntry": "hAtom-hEntry",
      "hCard" : "url",
    }
  },
  doAction: function(semanticObject, semanticObjectType, propertyIndex) {
    if(semanticObjectType == "hAtom-hFeed"||semanticObjectType == "hAtom-hEntry"){
      var _url = window._content.document.location.href;
      var _title = window._content.document.title;
      return "http://twitter.com/home?status=" + encodeURIComponent(_title) + "%20" + encodeURIComponent(_url) ;
      }
    if(semanticObjectType == "hCard"){
      var _urlvcard;
      var property = this.scope.semantic[semanticObjectType];
      _urlvcard = semanticObject[property];
     return "http://twitter.com/home?status=" + _urlvcard;
      }
  }
};SemanticActions.add("submit_to_twitter", submit_to_twitter);

ページで、hAtomが埋め込まれていたときは、そのページのタイトルとURI、hCardでURL情報があるときは、単にURLの情報だけをPOSTします。Operator経由であることを示す語句を添えれば、そのページがMicroformatsが埋め込まれているということを知らせることができるカモ(?)。