mobirc-irssi が実用に耐えうるようになりましたのでお知らせします

この間ちょっと紹介したirssiのプラグインスクリプトとしてmobircをつかうmobirc.plスクリプトですが、実用に耐えうる段階まできましたので再度紹介しておきます。

画面サンプルはこんな感じ。(スクリーンショットが取れるPSPでの画面です)

psp x mobirc x twirc

素のmobircはIRCクライアント機能と、HTTPD機能を両方持ち、tiarraなどのIRCプロクシにつなぐことで使用するものになっていますが、こちらのirssiプラグインではmobircのIRCクライアント機能はirssiプラグインとして実装していますので、irssiさえあれは利用することができます。

イメージ的にはirssiがHTTPDを立てている感じになってます。

またキーワード設定などもirssiのハイライト設定を使用していますので、別途mobirc側でキーワード設定をする必要がないのもちょっとうれしいところです。

実際の使い方(インストールの仕方)としては

  • mobirc.plをirssiのスクリプトディレクトリ (~/.irssi/scripts) にコピーor symlink

  • irssi起動時にmobircのlibパスを環境変数に入れとく

    PERL5LIB=/path/to/mobirc/lib irssi

    とか。同じ意味なら何でも。

  • irssi起動したらmobirc.plをロードする ( /script load mobirc )

    ここで Can't locate XXX.pm in @INC とか言われる場合モジュール足りないのでそれいれる。

  • ロードしたら config.yaml 自分用にいじって、そのパスをirssiで設定する

    /set mobirc_config_path /path/to/config.yaml

  • 設定完了したら /mobirc start すると HTTPD がたちあがる

  • mobirc started ってirssiコンソールに出てればOK。httpでつないで確認する。

とかでOK。

ほか機能としては、

  • /mobirc stop でhttpd停止。
  • /mobirc stop -> /mobirc start でyaml読み直してHTTPD再起
  • /set mobirc_auto_start on しておけば次回から /script load mobirc するだけでHTTPDたちあがる
  • /script load するのさえめんどいというひとはスクリプトを ~/.irssi/scripts におくかわりに ~/.irssi/scripts/autorun におけば irssi 起動時に自動起動する

という感じ。irssi使いには必須のスクリプトかと思います!

Enjoy!

by typester / at 2007-11-01T12:13:00 / perl · irssi / Comment

mobirc クールすぎる

mobirc 0.01 released - TokuLog 改め だまってコードを書けよハゲ

すばらしすぎる!

ソース見ると、IRCクライアント部分とHTTPD部分わかれてるから、IRCクライアント部分を丸々irssiプラグインで置き換えるのも簡単にできそう。

irssi使うようになってからtiarraみたいなプロクシを使わなくなったので、irssiプラグインだけでkeitairc見たいの作りたかったんだよなー。tokuhirom++

てわけで日本シリーズ見ながら作ってみた。

mobirc.pl

こんなんで一応動く。

irssiプラグイン内でPOEセッション(POE::Session::Irssi)作って、その中で Mobirc::HTTPD 動かしてる。

動くことは動くけど、設定決め打ちだし、unloadもできないのでプラグイン再起動イコールirssi再起動で、まだ実用には耐えない。

とりあえず動くことはわかったのであとは暇なときにでも。

by typester / at 2007-10-29T01:49:00 / perl · irssi / Comment

OSXのFileReference

FlashのFileReferenceでのファイルアップロードはFlashPlayerから直接ファイルがアップロードされるのだけど、WindowsだとIEからリクエストされてるのと同じ感じになって(おそらくWinInet APIをつかっているからだと思う)、アクセス先がBasic認証とかかかっていてもIEの認証がとおっていればちゃんとファイルアップロードできる。

でも、OSXの場合は完全にFlashPlayerが独立しているらしく、Basic認証がかかっているとファイルアップロードできないようだ><

それをしらなかったのでykskに無駄に苦労をさせてしまった。もうしわけない!

とりあえずIP認証で代用した。そんな罠があるとはな。。

by typester / at 2007-10-26T03:32:00 / flash / Comment

IRCで呼ばれたらIMで通知するirssiスクリプト

僕は以前からIRCでキーワード反応した時に GNU screen のステータスコードに通知を出すようにしている のだけど、ターミナル見てないときがつかないので、またまた im.kayac.com をつかって、IMに通知する irssi のスクリプトを書いてみた。

http://coderepos.org/share/browser/lang/perl/irssi/scripts/hilight2im.pl

使い方は

/set im_kayac_com_username ユーザー名

で自分のim.kayac.comユーザー名をセットするだけ!

あとはirssiで設定したキーワード(irssiではhilightという)を含んだメッセージを受信するとIMに通知される。

by typester / at 2007-10-20T15:30:00 / perl · irssi / Comment

元気玉メールをIMで通知する

弊社には元気玉という仕組みがあって、詳しくは代表のブログを参照、これに誰よりも速く返信するために元気玉という文字がメールの件名に含まれていた場合即座にIMに通知するような仕組みを作った。

うちで使用しているメール配信ソフトウェアは postfix+maildrop で、IMへの通知には im.kayac.com のAPIを使用。

非常に簡単にできた。まずmaildropのフィルタ ~/.mailfilter:

DECODED_SUBJECT = ""
if ( /^Subject:\s*(.*)$/ )
{
        MATCH1 = escape($MATCH1)
        DECODED_SUBJECT = `echo $MATCH1 |/home/typester/bin/subjectdecoder.pl`
}

if ( $DECODED_SUBJECT =~ /元気玉/ )
{
        cc "|/home/typester/bin/mail2im.pl"
}

二つのスクリプトを読んでます。subjectdecoder は単にMIMEエンコードされてる件名をutf-8にして戻してあげるだけのもので、mail2im.plが実際にIMメッセージを送るスクリプト。以下がその中身。

subjectdecoder.pl:

#!/usr/bin/env perl

use strict;
use warnings;

use Encode;

my $subject = do { local $/; <STDIN> };
$subject =~ s/\\(.)/$1/gs;

print encode('utf-8', decode('MIME-Header', $subject));

mail2im.pl:

#!/usr/bin/env perl

use strict;
use warnings;

my $mail = do { local $/; <STDIN> };

use Encode;
use Email::MIME;
use Mail::Address;

my $msg = Email::MIME->new($mail);

my $subject = encode('utf-8', $msg->header('Subject'));
my ($from)  = Mail::Address->parse( $msg->header('From') );

exit unless $subject && $from;

use LWP::UserAgent;
use HTTP::Request::Common;

my $res = LWP::UserAgent->new->request(
    POST "http://im.kayac.com/api/post/typester",
    [ message => "[E-Mail] $subject (@{[$from->address]})" ]
);

件名デコードしないとmaildropで日本語の件名のマッチングができないのが面倒だけど(これってなんとかならんのかな)、それでも簡単にできた! im.kayac.com++ (自画自賛

by typester / at 2007-10-18T17:22:00 / life · mail · im / Comment

こうだったらいいのに auto-save-buffers

開いてるファイルが svn(k) の copath だったらON、それ以外だったらOFFって自動でなるといいのになー。

今は

(run-with-idle-timer 0.5 t 'auto-save-buffers "^/home/typester/dev/" "^$")

とかしてるけれど、その領域でもたまにsvn管理じゃないファイルつかったりするし、それで自動保存されると困るし。

by typester / at 2007-10-18T13:32:00 / emacs / Comment

bm.el

(global-set-key "\M-1" 'bm-toggle) (global-set-key "\M-3" 'bm-next) (global-set-key "\M-2" 'bm-previous)

とかで設定してるけどまったく使ってない。

by typester / at 2007-10-17T10:42:00 / emacs / Comment

Module::Install

Clouder::Blogger: Module::Installを使ったプロジェクトのincディレクトリについて

CodeReposとかみると、あんまりModule::Installを使ってる人がいないので、あんまりModule::Installって使われてないのかな?

えーー。

$ grep 'inc::Module::Install' lang/perl/**/Makefile.PL
lang/perl/Gopper/trunk/Makefile.PL:use inc::Module::Install;
lang/perl/JSONRPC-Transport-TCP/trunk/Makefile.PL:use inc::Module::Install;
lang/perl/KGopherd/Makefile.PL:use inc::Module::Install;
lang/perl/Mozilla-Screenshot/trunk/Makefile.PL:use inc::Module::Install;
lang/perl/Mozilla-UserPreferences/trunk/Makefile.PL:use inc::Module::Install;
lang/perl/POE-Component-Server-JSONRPC/trunk/Makefile.PL:use inc::Module::Install;
lang/perl/PlPy/trunk/PlPy/Makefile.PL:use inc::Module::Install;
lang/perl/Senna-Storage/trunk/Makefile.PL:use inc::Module::Install;
lang/perl/Text-Nyarlax/trunk/Makefile.PL:use inc::Module::Install;
lang/perl/URI-KeywordExtract/trunk/Makefile.PL:use inc::Module::Install;
lang/perl/WWW-LivedoorPICS/trunk/Makefile.PL:use inc::Module::Install;
lang/perl/WWW-Various-Scrapers/trunk/Makefile.PL:use inc::Module::Install;
lang/perl/WebService-Coneco/trunk/Makefile.PL:use inc::Module::Install;
lang/perl/WebService-Veoh/trunk/Makefile.PL:use inc::Module::Install;
lang/perl/WebService-YouTube/tags/WebService-YouTube-1.0.2/Makefile.PL:use inc::Module::Install;
lang/perl/WebService-YouTube/tags/WebService-YouTube-v1.0.1/Makefile.PL:use inc::Module::Install;
lang/perl/WebService-YouTube/trunk/Makefile.PL:use inc::Module::Install;

けっこうあるじゃん!

Module::Starterはあんまりつかってるひといないかもね。

miyagawaさんのpmsetupがシンプルでいい感じです。

by typester / at 2007-10-12T08:07:00 / life / Comment

できた

(remove-hook 'kill-buffer-query-functions 'server-kill-buffer-query-function)

by typester / at 2007-10-05T16:46:00 / emacs / Comment

emacsclient で開いたバッファを閉じるときに

Buffer `svk-commitvP9pW.tmp' still has clients; kill it? (yes or no)

などといわれるのをなくしたいのだが、どうすればいいのか! 強制yesでいいんだけど。

それとも C-x # 的なもので保存せずに閉じるものあるのかな。

by typester / at 2007-10-05T16:19:00 / life · emacs / Comment

26 27 28 29 30 31 32 33 34 35

(Page 30 of 203)