Hatena::Groupkeysnail

きすねた(ん)

2010-05-26

Yet Another Twitter Client KeySnail 2.1.3 - ワードトラッキング機能の追加

| 00:02 | Yet Another Twitter Client KeySnail 2.1.3 - ワードトラッキング機能の追加 - きすねた(ん) を含むブックマーク はてなブックマーク - Yet Another Twitter Client KeySnail 2.1.3 - ワードトラッキング機能の追加 - きすねた(ん)

Yet Another Twitter Client KeySnail 2.1.3 をリリースしました.

no title

今回追加された "ワードトラッキング" 機能は, 自分で言うのもなんですが結構すごいです.

これは, 特定の単語 (ハッシュタグ含む) を登録しておくと定期的にその単語で検索を行い, トラッキングを行ってくれるというものです.

リストとは違い .keysnail.js にあらかじめ登録を行っておく必要は無く, 「ちょっとこのハッシュタグ追いかけたいな」と思ったときにさっと登録し, 追いかける必要がなくなったらワンクリックでトラッキングを解除することが可能です.

更新間隔もワード (ハッシュタグ) 毎に設定が可能ですので, イベントや勉強会に参加した際など, 猛スピードで流れていくハッシュタグを追いかけるのにも役立ってくれることでしょう.

さて, それではスクリーンショットと共に今回追加された "ワードトラッキング" の簡単な説明を行いたいと思います.

概要

まずは以下のスクリーンショットをご覧ください.

f:id:mooz:20100526235747p:image

リストの横に, #vimperator, #scala, keysnail というボタンが表示されているのが確認できます. これが, トラッキングの対象となる単語 / ハッシュタグです. ボタンをクリックすると, そのトラッキングワードで検索された結果 (あらかじめキャッシュされています) が表示されます.

トラッキングワードの追加

新しいトラッキングワードを追加するには, 最右部の "虫眼鏡にプラスマーク" が付いたアイコンをクリックします. すると次のようにしてトラッキング対象の単語を入力するよう求められますので, お好きな単語を入力してやります.

f:id:mooz:20100526235746p:image

OK ボタンを押せば, 登録は完了です. 何秒か待つと, 検索結果の取得が行われ, 以下のようにして未読件数 (この場合は取得したもの全て) が表示されます.

f:id:mooz:20100526235745p:image

他の人のつぶやきに現れたハッシュタグから, ダイレクトに登録を行うことも可能です. ハッシュタグの上で右クリックをしてやると, "このハッシュタグトラッキングする" というメニューが現れますので, これをクリックしてあげます. すると, そのハッシュタグが入力された状態で, 先ほどのトラッキングワード登録へ移ることができます.

f:id:mooz:20100526235743p:image

トラッキング間隔の変更 / トラッキングワードの削除

イベント参加時などは特定のハッシュタグを短い間隔でトラッキングしたくなるものです. また, あまりつぶやかれることのない単語 (例: keysnail) を短い間隔で何度も更新しても, API の無駄となってしまいます. (keysnail という単語が頻繁につぶやかれるようになれば無駄にもなりませんね)

そんな理由から, このプラグインではトラッキングワード毎に更新間隔を設定できるようになっています. 登録されたトラッキングワードの上で右クリックし, メニューを開いてください.

f:id:mooz:20100526235742p:image

ここで "トラッキング間隔の変更" を選べば, そのトラッキングワードに対する更新間隔を "分単位" で設定することが出来ます. 用済みになったハッシュタグは "トラッキングを終了" で登録を解除すると良いでしょう.

また, "更新" を選ぶことで最新の検索結果を表示することも可能となっています.

キーボードからの選択

もちろんキーボードからの選択にも対応しています.

f:id:mooz:20100526235741p:image

上の画面は, 以下のようなコマンドで表示することが可能です. ここでは Alt + j キーに割り当てています.

key.setGlobalKey("M-j", function () {
    plugins.twitterClient.switchTo();
}, "Twitter Client Select Action");

検索結果の言語を制限

なんだか英語のつぶやきばかりひっかかってもう嫌だ! 日本語が好きなんだ! という方は次のような設定を .keysnail.js の PRESERVE エリアへ貼り付けておきましょう.

plugins.options["twitter_client.tracking_langage"] = "ja";

BrysenBrysen2011/10/06 01:47It's sopkoy how clever some ppl are. Thanks!

2010-05-23

指定したプラグインをロード

| 21:58 | 指定したプラグインをロード - きすねた(ん) を含むブックマーク はてなブックマーク - 指定したプラグインをロード - きすねた(ん)

初期化ファイルの整理をしていたら出てきたので.

ext.add("source", function () {
            let plugins = util.readDirectory(userscript.pluginDir, true)
                .filter(function (file) !(file.leafName.match("^_.+\\.ks\\.js$") ||
                                          !file.leafName.match("\\.ks\\.js$") ||
                                          file.isDirectory()));
            prompt.selector(
                {
                    message    : "reload plugin:",
                    collection : plugins.map(function (f) f.leafName),
                    callback   : function (i) { if (i >= 0) userscript.loadPlugin(plugins[i]); }
                });
        }, "Load specified plugin");

開発者にしか需要はないかな.

特定のリストを表示するコマンド

| 20:32 | 特定のリストを表示するコマンド - きすねた(ん) を含むブックマーク はてなブックマーク - 特定のリストを表示するコマンド - きすねた(ん)

Twitter / ? という要望があったので.

以下のようにして, 特定のリスト (plugins.options["twitter_client.lists"] に指定されたものに限る) を直接閲覧することが可能.

key.setViewKey(["C-c", "l", "j"],
               function () {
                   plugins.twitterClient.showCrawledListStatuses("stillpedant", "js");
               }, "Show List > js");

key.setViewKey(["C-c", "l", "e"],
               function () {
                   plugins.twitterClient.showCrawledListStatuses("stillpedant", "emacs");
               }, "Show List > emacs");

// どれを見る? 画面を直接表示する

key.setViewKey(["C-c", "C-t"],
               function () {
                   plugins.twitterClient.switchTo();
               }, "Twitter Client Select Action");

最後の一つはどれを見る? 画面を直接表示するもの.

f:id:mooz:20100523013708p:image

Yet Another Twitter Client KeySnail 2.1.0

| 12:50 | Yet Another Twitter Client KeySnail 2.1.0 - きすねた(ん) を含むブックマーク はてなブックマーク - Yet Another Twitter Client KeySnail 2.1.0 - きすねた(ん)

昨日の今日でアレなのですが, 2.1.0 をリリースしました.

f:id:mooz:20100523125028p:image

no title

先日の 2.0.0 ではリストの未読件数などが分からなかったので, その辺りを修正. また, DM の未読件数をステータスバーに表示するよう変更しました.

リストのステータスが自動的に取得されるようになったので, これを抑制したい方は .keysnail.js の PRESERVE エリアへ次のような設定を挿入してください.

plugins.options["twitter_client.automatically_begin_list"] = false;

追記

bullshit なバグを発見したので 2.1.1 をリリース. おまけとして, リスト毎にステータスの更新間隔を設定出来るようにしてみました.

以下に, 設定例を示しておきます.

plugins.options["twitter_client.lists"]
    = ["stillpedant/tl", "stillpedant/js", "stillpedant/nlp-ml", "stillpedant/cg", "ussy00/keysnail"];

plugins.options["twitter_client.list_update_intervals"] = {
    "stillpedant/tl"     : 60 * 1000 * 2, // 2 分ごとに更新を確認
    "stillpedant/js"     : 60 * 1000 * 3,
    "stillpedant/nlp-ml" : 60 * 1000 * 20,
    "stillpedant/cg"     : 60 * 1000 * 40,
    "ussy00/keysnail"    : 60 * 1000 * 40
};

plugins.options["twitter_client.update_interval"]          = 60 * 1000 * 40; // リストがメインなので
plugins.options["twitter_client.mentions_update_interval"] = 60 * 1000 * 5;  // 5 分間隔
plugins.options["twitter_client.dm_update_interval"]       = 0;              // 初回のみ更新 (0 は一度だけを意味する)

2010-05-22

Yet Another Twitter Client KeySnail 2.0.0

| 01:37 | Yet Another Twitter Client KeySnail 2.0.0 - きすねた(ん) を含むブックマーク はてなブックマーク - Yet Another Twitter Client KeySnail 2.0.0 - きすねた(ん)

Yet Another Twitter Client KeySnail 2.0.0 をリリースしました.

f:id:mooz:20100523013709p:image

no title

新機能

  • リスト閲覧機能の強化
    • あらかじめ登録しておいたリストを簡単に閲覧可能
    • 自動更新 / キャッシュ機能が付いた点で今までのモノより優れる
  • DM (ダイレクトメッセージ) 機能
    • DM 閲覧機能
    • DM 送信機能
  • API を設定可能に
    • 頑張れば StatusNet にも対応可能?
    • plugins.options["twitter_client.twitter_api"]
    • plugins.options["twitter_client.oauth_info"]
    • 以上二つが変更可能

変更点

  • protected ユーザの発言を非公式 RT する際に警告を出すように
  • フィルタ機能 (ローカルなリスト機能のようなもの) を削除
    • そこそこ力を入れて作成した機能だが, いかんせん使いづらく, コードがちらかる原因となっていた

キーボードで選択

キーボードによる操作で各リスト, Home, Mentions などを選択することが可能となりました.

f:id:mooz:20100523013708p:image

ローカルアクション名は switch-to となっていますので, plugins.options["twitter_client.keymap"] にお好みで設定を追加すると良いでしょう. 参考として, 記事の最後に僕の設定を載せておきます.

リストの登録

リストの閲覧を行うためには .keysnail.js 内であらかじめ閲覧したいリストを登録しておく必要があります.

plugins.options["twitter_client.lists"] = ["stillpedant/js", "stillpedant/emacs"];

twitter_client.lists には "ユーザ名/リスト名" といった文字列からなる配列を指定します. このため, 自分の作成したリストだけでなく他のユーザの作成したリストを登録することも可能です.

リストは, ヘッダ部分のリスト一覧をクリックするか, 先ほど説明した switch-to を実行することで選択できます.

設定例

とりあえず, キーバインドの設定のみ. これは PRESERVE エリアへ貼り付けてください.

plugins.options["twitter_client.keymap"] = {
    "C-z"   : "prompt-toggle-edit-mode",
    "SPC"   : "prompt-next-page",
    "b"     : "prompt-previous-page",
    "j"     : "prompt-next-completion",
    "k"     : "prompt-previous-completion",
    "g"     : "prompt-beginning-of-candidates",
    "G"     : "prompt-end-of-candidates",
    "q"     : "prompt-cancel",
    // local
    "t"     : "tweet",
    "r"     : "reply",
    "R"     : "retweet",
    "D"     : "delete-tweet",
    "f"     : "add-to-favorite",
    "v"     : "display-entire-message",
    "V"     : "view-in-twitter",
    "c"     : "copy-tweet",
    "i"     : "copy-user-id",
    "*"     : "show-target-status",
    "@"     : "show-mentions",
    "/"     : "search-word",
    "o"     : "open-url,n",
    "d"     : "send-direct-message",
    "+"     : "show-conversations",
    "h"     : "refresh-or-back-to-timeline",
    "s"     : "switch-to"
};

2010-05-20

Hatebnail 1.2.5

| 23:18 | Hatebnail 1.2.5 - きすねた(ん) を含むブックマーク はてなブックマーク - Hatebnail 1.2.5 - きすねた(ん)

Hatebnail 1.2.5 をリリースしました.

はてなブックマーク Firefox 拡張を KeySnailインタフェース (prompt.reader, prompt.selector) から使用可能にさせてくれるプラグインです.

no title

新機能

修正

  • hateb-bookmark-this-page を呼んだ瞬間に表示されているページがブックマーク対象となるように
    • これまでは hateb-bookmark-this-page を呼んでタグを入力している間にタブを切り替えると, 切り替えた先のページがブックマーク対象となっていた

2010-05-16

スクロールバーを消そう! for KeySnail

| 15:52 | スクロールバーを消そう! for KeySnail - きすねた(ん) を含むブックマーク はてなブックマーク - スクロールバーを消そう! for KeySnail - きすねた(ん)

表示領域絶対主義. PRESERVE エリアへ以下のコードを.

style.register(<><![CDATA[
                        scrollbar scrollbarbutton,
                        scrollbar thumb {
                            display: none !important;
                        }
                    ]]></>, [style.XHTML, style.XUL].join(""), true);

もしくは以下.

(function () {
     const ns  = [style.XHTML, style.XUL].join("");
     const hsb = <><![CDATA[
                          scrollbar scrollbarbutton,
                          scrollbar thumb {
                              display: none !important;
                          }
                      ]]></>;

     function tsd() { style.toggle(hsb, ns, true); }

     ext.add("toggle-scrollbar-display", tsd);

     tsd();
})();

元ネタ

2010-05-12

KeySnail 1.5.7

| 02:33 | KeySnail 1.5.7 - きすねた(ん) を含むブックマーク はてなブックマーク - KeySnail 1.5.7 - きすねた(ん)

倦怠期が続いてました. 久々のアップデート.

新機能

コード補完

おなじみの Eval 機能がさらなる進化を. (Eval 何それ, という人は command.interpreter() という関数を適当なキーへ割り当てておくと良い. 全然インタプリタではないけれど……)

文字列を打ち込んで,

f:id:mooz:20100513023141p:image

TAB.

f:id:mooz:20100513023140p:image

打ち込んで,

f:id:mooz:20100513023139p:image

TAB.

f:id:mooz:20100513023138p:image

とまあこんな感じで, Math などの組み込みオブジェクトも補完できます.

追加された関数の使用例

util.coro() は上記の gist を参照のこと.

util.httpPost() は以下のようにして使う. 定義は function httpPost(url, params, callback) となっている.

util.httpPost("https://www.hatena.ne.jp/login", {
                  "name"     : username,
                  "password" : password
              },
              function (xhr) { /* foo */ });

Hatebnail に自動ログイン機能をつけよう, ということで追加した. util.httpGet() と合わせて使おう.

fanfan2010/05/15 10:20こんにちは、いつも大変便利にkeysnailを使用させて頂いており、ありがとうございます。不躾とは思いますが、要望はこちらに書かせて頂いてよろしかったでしょうか?
その内容はkeysnailの『設定ファイル』や『プラグイン』の読み込み元を相対パスでの指定も可能なように考えていただけないか、ということです。
私がFirefox portableも使用しておりますもので、相対パスも可能なようにしていただけると、Firefox portableを他PCに移動させる時などに一つのフォルダにまとめられますので管理が容易になるのではと考えております。
機会がおありでしたら検討していただければ幸いです。我が儘を書き綴らせていただき失礼しました。

moozmooz2010/05/23 01:42こんにちは. コメントありがとうございます (気づくのが遅れてしまいすみません).
要望はコメント欄でも Twitter でも, どこでも承っています ;)

相対パスですが, Firefox の実行ファイルから見たもの, という解釈でよろしいでしょうか.
少し調査してみますので, 結果が分かり次第このブログにでも報告をさせていただきたいと思います.

Shadow912Shadow9122010/06/07 00:38KeySnail (& for Thunderbird) で大変快適な環境を構築できました。すばらしい拡張を提供してくださって感謝しております。
ところで、ここ数日で一気にバージョン 1.5.9 ~ 1.6.1 に更新されていますが、リリースノートは出ないのでしょうか?

moozmooz2010/06/26 01:27すみません, またもやコメントに気づくのが遅れてしまいました.

リリースノート, サボっていたので簡単に書いておきます.