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 のチャンネル検索コマンドへのリンクがあります。
