悩む

ShopOptionsカタログと見積がきた。けど高いので悩み中です。(´・ω・`)
« 2008年02月 | メイン | 2008年04月 »

ShopOptionsカタログと見積がきた。けど高いので悩み中です。(´・ω・`)

悩んでいたらマイナーチェンジされたので実車を見てきました。後ろから見るとほとんど変わらない感じ。
Apache2.2に対応したmod_layoutはportsにないみたいなのでソースから。
# wget http://download.tangent.org/mod_layout-5.1.tar.gz
# tar zxvf mod_layout-5.1.tar.gz
# cd mod_layout-5.1
# make
# make install
# vim /usr/local/etc/apache22/httpd.conf
<Virtualhost www.geek.com>
AddOutputFilterByType LAYOUT text/html
LayoutFooter "<P> This is the tail end of things</P>"
LayoutHeader "<P> This is the beginning of things</P>"
LayoutIgnoreURI */mt.cgi
</virtualhost>
# apachectl configtest
# apachectl restart
なぜかMTの管理画面を破壊してくれるのでmt.cgiを除外指定しました。微妙なモジュールなのかも。。。
参考
昔は2chというものを毛嫌いしていたのに、気がつくと2chのスレッドを常にチェックしている毎日。
新たな書き込みの有無を確認するのが段々面倒になってきたのでGrowlに通知するスクリプトを書いてみました。似たようなものが多分あるのだろうけど、探すのが面倒だった。
#!/usr/local/bin/perl
use strict;
use URI;
use Web::Scraper;
use Data::Dumper;
use Encode;
use Mac::Growl ':all';
use vars qw($url $chkwords $interval $threads $last);
$url = 'http://hobby10.2ch.net/auto/subback.html';
$chkwords = 'rx-8';
$interval = 300;
if( $ARGV[0] eq 'init' ){
RegisterNotifications(
"2chChecker", # 登録するアプリケーション名
['alert', 'note', 'info'], # 登録したアプリケーションで使用する通知の種類。
['note'] # デフォルトで使用する通知の種類
);
}
while(1){
$threads = get_threads();
for(keys %$threads){
my $update;
if( $last and $threads->{$_}->{res} > $last->{$_}->{res} ){
$update = $threads->{$_}->{res} - $last->{$_}->{res};
my $msg = "新しいレスがありました。($update)";
Encode::from_to($msg, 'MacRoman', 'utf8'); # 10.4では不要
my $title = $threads->{$_}->{title};
Encode::from_to($title, 'MacRoman', 'utf8'); # 10.4では不要
PostNotification(
"2chChecker",
'note',
$msg,
$title,
);
};
}
$last = $threads;
sleep($interval);
}
sub get_threads{
my $hash;
my $details = scraper {
process 'a','data' => 'TEXT';
process 'a','href' => '@href';
result 'data', 'href';
};
my $list = scraper {
process 'small#trad a','lists[]' => $details;
result 'lists';
};
my $res = $list->scrape( URI->new( $url ) );
for( @$res ){
my $data = encode_utf8( $_->{data} );
$data =~ m/^(\d+)\:\s{1}(.*)\s{1}\((\d+)\)$/;
my $url = $_->{href};
$url =~ s/\/150$//;
$hash->{$url} = {
'title' => $2,
'res' => $3,
};
delete $hash->{$url} if $chkwords and $2 !~ /$chkwords/i;
}
return $hash;
}
動作環境はMacOSX 10.x。
準備として、Growlと必要なPerlモジュールをインストールしておく。Growlの1.1.2はMac::Growlが対応していなかったので0.7.6をいれます。
# ./growl.pl init
スクリプトをGrowlにアプリケーションとして登録する必要があるので、初回は上記のように引数付きで実行します。上記例ではアプリケーション名を「2chChecker」にしてあります。
$urlに、板のスレッド一覧URLを指定。(↑これ。)
$chkwordsにチェックしたいスレッドのタイトルに含まれるキーワードを入力して実行すると、スレッドが更新された際にデスクトップにこのような通知を出すことができます。
※上記の例では、車種・メーカースレの「rx-8」が含まれるスレッドの新着をチェックしています。(((;・∀・)
whileで回す処理はあんまりだとかPOEとかデータをDBにいれた方がいいとかそれplaとかもうちょっと汎用性があったほうがいいとか2ch全体のスレ検索ができたほうがいいとか、いろいろ拡張すると楽しそうではあるけど、スレの巡回チェック作業をやめるという当初の目的は果たしたので終了、と。
参考
前回の続き。少しいじって更新分のレスもGrowlに表示されるようにしました。
「システム環境設定」-「Growl」-「表示選択」の表示時間を長くし、「ラインを2-5行に制限する」のチェックを外しておくと読みやすいです。
ソースはこんな感じ。適当。
こんな感じで表示されます。上記例は、市況2板の「ドル」というキーワードが入っているスレを監視しています。
これで通知はできますが、起動しやすいようについでにAutomatorでアプリ化しておきました。
手順は、アプリケーション→Automator.app→カスタム→ユーティリティ→シェルスクリプトを実行、をダブルクリック。右ウィンドウにスクリプトのパスを記述して保存、と。これでDockに格納することができるようになります。アプリケーションを閉じてもPerlのプロセスが切れないのが問題だけど・・・・。
以上の拡張で、スレッドを見に行く必要がなくなりました。頻繁に更新されるスレを確認するには結構便利なものです。満足満足。

カメラを持参するのを忘れたので携帯で。今年はカメラを買おうと心に決めました。