Growl連携 その2 (xyttr Advent Calendar 1日遅れの19日目)
この記事はxyttr Advent Calendar 2011の記事です。
MacOS用TwitterクライアントによくあるGrowlでの新着通知機能を作ってみます。
※ xl-growl ver.1.0.0にはnotify-with-socket-callbackにバグがあったのでNetInstallerより1.0.1をインストールしておいてください。
◆使い方
tweets-notifier.l は site-lisp等require可能な場所に置いて、下記のようなコードを.xyzzyか ~/.xyttr/config.l に書き込みます。
;;; xyzzy起動時に通知を開始するなら .xyzzy に ;;; xyttr起動時から通知を開始するなら ~/.xyttr/config.l に書く (require "tweets-notifier") ;; Mentionを通知 (xyttr:define-notifier mentions :apifunc #'xyttr:api-mentions-async ; timeline系API関数 (必ず非同期版を指定する事) :sticky t ; 通知ウィンドウをクリックorキー操作で閉じるまで表示し続ける :interval 300 ; 新着取得間隔 (秒) :callback (lambda (tweet) (user::xyttr-mentions))) ; クリック時に実行するコールバック関数 ;; "xyzzy -RT" の検索結果を通知 (xyttr:define-notifier search-xyzzy :apifunc #'xyttr:api-search-async :params (:lang "ja" :q "xyzzy -RT" :include_entities "true") ; apifuncに渡すパラメータ :sticky t :interval 300 :callback (lambda (tweet) (user::xyttr-search "xyzzy -RT"))) ;; 通知開始 (xyttr:start-notifier mentions) (xyttr:start-notifier search-xyzzy)
define-notiferマクロで通知設定を定義し、start-notifer(これもマクロ)で通知を開始します。
通知を開始すると初回に5件ツイートを表示し、以後指定した秒数ごとに新着ツイートを取得して表示します。
通知をクリックすると表示したツイートのデータを指定したコールバック関数に渡して実行します。
通知を止める時は (xyttr:stop-notifier name) もしくは xyttr:stop-all-notifiers を実行します。
以上Growlを使った新着表示の実装方法の紹介でした。