otsune's SnakeOil RSSフィード

python -c "print''.join([chr(x) for x in 111&1101,110+~-~11,10^11*11,110+~-~11,-~101,-~11^11*11,~-110,111&11*11,11+11+10,11|~-0110,1-~11^11*11,10^11*11,-~11^11*11,110,101])"

2007-10-21

channel2json.cgiの正規表現をqr{...}oでいちいちコンパイルしないようにした

| channel2json.cgiの正規表現をqr{...}oでいちいちコンパイルしないようにした - otsune's SnakeOil  を含むブックマーク はてなブックマーク - channel2json.cgiの正規表現をqr{...}oでいちいちコンパイルしないようにした - otsune's SnakeOil  channel2json.cgiの正規表現をqr{...}oでいちいちコンパイルしないようにした - otsune's SnakeOil  のブックマークコメント

最初からhashにqr{...}oで正規表現を入れておけば良いんじゃね? と思って。

no title

--- /websites/ustreamer/channel2json.cgi (revision 568)
+++ /websites/ustreamer/channel2json.cgi (revision 591)
@@ -25,6 +25,6 @@
 
 my %scraper = (
-    'usc' => 'src="http://ustream.tv/([^"]*?).usc"',
-    'irc' => 'name="channel" value="(\#[^,]*?)"',
+    'usc' => qr{src="http://ustream\.tv/([^"]*?)\.usc"}o,
+    'irc' => qr{name="channel" value="(\#[^,]*?)"}o,
 );
 
@@ -40,5 +40,5 @@
     $_ => channel2any($_, $mode) 
 } map {
-    $_ =~ s{http://www.ustream.tv/channel/}{}; $_ 
+    $_ =~ s{http://(?:www\.)?ustream.tv/channel/}{}; $_ 
 } @channels;
 
@@ -48,5 +48,5 @@
     my ($channel, $mode) = @_;
     my $content = channel_fetch($channel);
-    $content =~ m{ $scraper{$mode} };
+    $content =~ $scraper{$mode};
     return $1 ? $1 : undef;
 }

20や30channelぐらいのhtmlを比較するだけだから負荷は誤差みたいなもんだけど。

トラックバック - http://subtech.g.hatena.ne.jp/otsune/20071021