c4se記:さっちゃんですよ☆

.。oO(さっちゃんですよヾ(〃l _ l)ノ゙☆)

.。oO(此のblogは、主に音樂考察Programming に分類されますよ。ヾ(〃l _ l)ノ゙♬♪♡)

音樂は SoundCloud に公開中です。

考察は現在は主に Scrapbox で公表中です。

Programming は GitHub で開發中です。

地震なう #AzureaScript #js

ラーメン大陸の力を受け継ぎし、チャーハン諸島の優れた文明である「地震なう」機能が、Azureaへ漏洩しました。此れは世界のバランスにとって由々しき事態であると共に、我々は此の革命を喜び、声明文を此所に掲載します。
冗談です。
Commit 651f2760912a00be5806b61aa1d402ff14f1802e to ne-sachirou/AzureaVim - GitHub https://github.com/ne-sachirou/AzureaVim/commit/651f2760912a00be5806b61aa1d402ff14f1802e

用量

二通りの導入部が有ります。単独のAzurea拡張として使う方法と、AzureaVimのpluginとして使う方法です。


単独で使う場合は、通常のAzureaScriptと同じく、Scriptsフォルダへearthquake.jsを置く丈です。AzureaStartup.jsでの自動更新にも対応します。
https://github.com/ne-sachirou/AzureaVim/blob/master/src/plugins/earthquake.js


azvm pluginとする場合、少し手間が掛かります(上級者向け)。buildする必要が有ります。手順は以下。

  1. リポジトリをdownload
  2. feature.jsに追記
  3. 自動更新を対処(更新用コメントを削除或いは改変)
  4. rakeでclobber(azvm.bat clobber)
  5. rakeでAzureaVim.jsをビルド(azvm.bat)
  6. Scriptsへ設置(いつも通り)

先ずAzureaVimのリポジトリをダウンロードします。git clone (forkしちゃったら好いかも)しても、ダウンロードボタンから落としても構いません。
次に、build/feature.jsに、以下の項目を追加して下さい。

    "plugins/earthquake": ["AzureaVim"],

ま、既存の行を読んで、似た様に書いて下さいね。
azvm.rakeも改変しましょう。AzureaVim.jsが自動更新されては困りますからね。まぁ、あれですよお。冒頭のMETA['scriptUrl']を消すとかfork先リポジトリに書き換えるとか…。
もう後わかりますよね…。あ"ー。

用法

使用法は、二つのフェーズから成ります。

  1. 地震なうの投稿文(デフォルトでは「地震なう」)を設定
  2. 投稿

ま、そのまんまですね。当然の機能ですね。
投稿文の設定は、コンテキストメニュー(右クリックメニュー)の、Extends -> 地震なう設定、から行います。
投稿は、キーボードショートカットです。Ctrl+↓で投稿。チャーハン諸島風ですから。


AzureaVim pluginとして組み込んだ場合、更にコマンドが加わります。コードにコメントで書いてあるから、解りますよね。

製法

最新は[ https://github.com/ne-sachirou/AzureaVim/blob/master/src/plugins/earthquake.js ]
以下2011-03-10時点でのスナップショット。

// ==AzureaScript==
// @name 地震なう
// @author http://c4se.sakura.ne.jp/profile/ne.html
// @date 2011-03-10
// @scriptUrl https://github.com/ne-sachirou/AzureaVim/raw/master/src/plugins/
// @license public domain
// ==/AzureaScript==

try {
    AzureaUtil.mixin(AzureaVim.commands_list, {
        earthquake: 'earthquake',
        e: 'earthquake',
        jisin: 'earthquake',
        'え': 'earthquake',
        'じしん': 'earthquake'
    });
} catch (err) {}
// :earthquake [set option2]
// チャーハン諸島風地震なう機能です。Ctrl+↓で、設定した文を、時刻付きでpostします。
// AzureaVim pluginとして丈でなく、単独のAzureaScriptとして使えます(其の場合コマンド機能は使用出来ません)。
// option1にsetを入れた場合、option2で投稿文を設定します。


(function() {

var _message = System.settings.getValue('user.Earthquake', 'Message');

if (_message === '') {
    System.settings.setValue('user.Earthquake', 'Message', '地震なう');
    _message = '地震なう';
}

function _getMessage() { // @return String:
    return _message;
}

function _setMessage(text) { // @param String:
                             // @return String:
    text = text || _message;
    System.settings.setValue('user.Earthquake', 'Message', text);
    _message = text;
    return text;
}


function setEarthquakeMessage() { // @return String:
    var text = System.inputBox('地震なう投稿文', _getMessage(), false);
    
    _setMessage(text);
    return text;
}


function postEarthquakeMessage() { // @return String:
    var text = _getMessage() + ' ' + (new Date()).toString();
    
    TwitterService.status.update(text, 0);
    return text;
}


System.addContextMenuHandler('地震なう設定', 0, setEarthquakeMessage);
System.addKeyBindingHandler(0x28, // VK_DOWN ↓
                            2, // Ctrl
                            postEarthquakeMessage);
try {
    AzureaVim.prototype.earthquake = function() { // @return String:
        var result;
        
        switch (this.command[1]) {
        case 'set':
            result = _setMessage(this.command[2]);
            break;
        default:
            result = postEarthquakeMessage();
            break;
        }
        return result;
    }
} catch (err) {}

})();

今後

  • reply.jsも、ショートカット用とazvm pluginで分かれてるけど、同じ様に統合しようかなぁ。



あー うん はい