« ubiquity | メイン | 肉1.5盛牛丼 »

ubiquity + wassr

ubiquity のコマンドを自分で作ってみたいな~と思い、自分で作ってみました。
Wassr へヒトコト投稿するコマンド。
既に誰か作っていそうだったけれど、自分でも作ってみたかったので、探さずに自分で書きました。

Twitter の Status Update コマンド(ヒトコト投稿みたいなもの)が公開されていたので、 それを参考に。
といっても殆どコピペだけれどw

下記を ubiquity の command-editor で入力。


// max of 140 chars is recommended, but it really allows 255
const WASSR_STATUS_MAXLEN = 255;

CmdUtils.CreateCommand({
  name: "wassr-say",
  homepage: "http://wassr.jp/",
  icon: "http://api.wassr.jp/favicon.ico",
  author: { name: "hagy", homepage: "http://www.hagyroom.com/" },
  license: "Public Domain",
  description: "Wassr/ubiquity ヒトコト/ステータス更新",
  takes: { parameter: noun_arb_text },

  preview: function(previewBlock, statusText) {
    var previewTemplate = "Updates your Wassr status to: <br/>" +      
                          "<b>${status}</b><br /><br />" +
                          "Characters remaining: <b>${chars}</b>";
    var truncateTemplate = "<br />The last <b>${truncate}</b> " +
                           "characters will be truncated!";
    var previewData = {
      status: statusText.text,
      chars: WASSR_STATUS_MAXLEN - statusText.text.length
    };
     
    var previewHTML = CmdUtils.renderTemplate(previewTemplate,
                                                    previewData);
   
    if(previewData.chars < 0) {
      var truncateData = {
        truncate: 0 - previewData.chars
      };
     
      previewHTML += CmdUtils.renderTemplate(truncateTemplate,
                                                   truncateData);
    }
   
    previewBlock.innerHTML = previewHTML;
  },

  execute: function(statusText) {
    if(statusText.text.length < 1) {
      displayMessage("Wassr requires a status to be entered");
      return;
    }
   
    var updateUrl = "http://api.wassr.jp/statuses/update.json";
    var updateParams = {
      source: "ubiquity",
      status: statusText.text
    };
   
    jQuery.ajax({
      type: "POST",
      url: updateUrl,
      data: updateParams,
      dataType: "json",
      error: function() {
        displayMessage("Wassr error - status not updated");
      },
      success: function() {
        displayMessage("Wassr status updated");
      }
    });
  }
});


jQuery で Ajax を使って Wassr API を JSON で呼び出してヒトコト更新をしています。

[Ctrl + Space] コマンドラインで、wassr-say Hello! で wassr へ「Hello!」というヒトコトが投稿されます。
初回投稿時に Basic 認証を要求されます。自分のログインIDとパスワードでログインすると以降はブラウザを閉じるまでヒトコトを投稿できるようになります。
Wassr の認証API を使えば、Basic 認証なしで投稿できるようになりますが、上記コードは認証API は使っていません。使うには個々でシグネチャを取得して設定しないといけません。


これ投稿するだけで見ることはできないので、見るためには結局 Wassr のページを開かないといけないので、実用性はあんまりありませんw

■Wassr*Channel ubiquity チャンネル
http://wassr.jp/channel/ubiquity
ここに wassr のチャンネル検索コマンドへのリンクがあります。

トラックバック

このエントリーのトラックバックURL:
http://hagyroom.sakura.ne.jp/mt/mt-tb.cgi/1697

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2008年09月03日 00:00に投稿されたエントリーのページです。

ひとつ前の投稿は「ubiquity」です。

次の投稿は「肉1.5盛牛丼」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

アーカイブ

お薦めショップ

  • HagyShop   ボクの大好きな作品だけ、
      お薦めの本と映画をご紹介。