mobirc 1.99_01 ― 2009年01月06日
mobirc 1.99_01 をなんとか etch (i386) 用で動かした。extlib/ は使わず、必要モジュールもすべて deb 化した上で利用。端末は FOMA (P903i) で確認。
http://dev.tkusano.jp/perl/debian/
にあります。
はまったところ
App::Mobirc::Util の DEBUG
ワイド文字がなんたらという文句が出るので、STDERR を :utf8 にした。
is_foma が無いというエラーが出る
詳しいエラーは忘れたけど、HTTP::MobileAttribute::Agent のに is_foma メソッドが無いと怒られた。HTTP::MobileAttribute::Plugin::IS::DoCoMo で定義されてるみたいだけど、どうやったら使用されるのだろう??適当にごまかした。
日本語が表示されない
数値文字参照を P903i がハンドリングできず、真っ白に。
--- mobirc-1.99_01.orig/lib/App/Mobirc.pm 2008-12-24 17:34:34.000000000 +0900 +++ libmobirc-perl-1.99-01/lib/App/Mobirc.pm 2009-01-05 20:24:40.311752418 +0900 @@ -12,6 +12,13 @@ use App::Mobirc::Types 'Config'; use Text::MicroTemplate::File; use App::Mobirc::Web::Template; +use HTML::Entities (); + +BEGIN { + no strict 'refs'; + no warnings 'redefine'; + *{'HTML::Entities::num_entity'} = sub { $_[0] }; +} our $VERSION = '1.99_01';
で逃げられるけど、危険だ。
デフォルトの assets や 設定ファイルの位置
デフォルトのパスを、FindBin 使って動的に決定してるのを /usr/share/mobirc/assets や /etc/mobirc/config.ini に固定した。
プラグインをどうやって追加するのか
config.ini に
[HTMLFilter::DoCoMoCSS] [IRCCommand::TiarraLog]
などと書いていけばよいのか。
TODO
- マルチユーザ化したい (複数の端末IDを登録し、端末ごとにいろいろ入力を加工したい)
Net::CIDR::MobileJP ― 2008年12月06日
Net::CIDR::MobileJP の deb を作ってみて、
#! /usr/bin/perl use strict; use File::ShareDir; use Net::CIDR::MobileJP; use Perl6::Say; say File::ShareDir::module_dir('Net::CIDR::MobileJP');
という中身の /tmp/test.pl を実行してみたら、
% perl /tmp/test.pl Directory '/usr/share/perl5/auto/Net/CIDR/MobileJP', does not exist at /tmp/test.pl line 8
というエラーが出た。
install_share;
を
install_share module=>'Net::CIDR::MobileJP', 'share';
と変更したらokになたけど、これでいいのだろうか。
CPANモジュールを黙らせる ― 2008年12月01日
CPANモジュールをプログラムから呼び出すと、CPAN::Config->load の際に、
CPAN: Storable loaded ok Going to read /home/fugahoge/.cpan/Metadata Database was generated on Sun, 30 Nov 2008 04:26:50 GMT
などと標準出力に出てきてうるさい。
{ no warnings 'redefine'; *CPAN::Shell::myprint = sub {}; CPAN::Config->load; }
で黙らせることができたけど、これでいいのだろうか。
最近のコメント