はてブのお気に入りを見つけるスクリプトを使ってみた

面白そうなスクリプトを見つけたので試してみた。 はてなブックマークのお気に入り候補を見つけるPerlスクリプト/楽

…が、途中でエラーになった。

1
2
Not Found
Can not parse [http://b.hatena.ne.jp/entry/rss/http://d.hatena.ne.jp/amatubu/20090322#p1].

ソースを見たら、XML::Feedでエラーになったら死ぬ事になっていたが、まあ、飛ばすだけでいいだろうと言うことで、適当に改造して使った。 結果はこんな感じ。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
001 : 017 :          otsune : http://b.hatena.ne.jp/otsune/
002 : 017 :         lapis25 : http://b.hatena.ne.jp/lapis25/
003 : 015 :       typewhite : http://b.hatena.ne.jp/typewhite/
004 : 013 :        charsbar : http://b.hatena.ne.jp/charsbar/
005 : 012 :        miyagawa : http://b.hatena.ne.jp/miyagawa/
006 : 011 :           naoya : http://b.hatena.ne.jp/naoya/
007 : 011 :          hide-K : http://b.hatena.ne.jp/hide-K/
008 : 010 :       jazzanova : http://b.hatena.ne.jp/jazzanova/
009 : 009 :     bayashi_net : http://b.hatena.ne.jp/bayashi_net/
010 : 009 :        tomisima : http://b.hatena.ne.jp/tomisima/

少し新しい世界が見えた気がします。

パッチは以下のとおり。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Index: early-hatena-bookmarkers.pl
===================================================================
--- early-hatena-bookmarkers.pl    (リビジョン 31631)
+++ early-hatena-bookmarkers.pl    (作業コピー)
@@ -68,8 +68,11 @@
my @my_bookmarks;
for my $rss_url (@my_rss) {
-        my $feed = XML::Feed->parse( URI->new($rss_url) )
-                    or die XML::Feed->errstr. "\nCan not parse [$rss_url].\n";
+        my $feed;
+        unless ($feed = XML::Feed->parse( URI->new($rss_url) ) ) {
+            warn XML::Feed->errstr. "\nCan not parse [$rss_url].\n";
+            next;
+        }
for my $item ($feed->entries) {
push @my_bookmarks, '<http://b.hatena.ne.jp/entry/rss/>'. $item->link;
@@ -90,8 +93,11 @@
my %users;
for my $url (@bookmarks) {
-        my $rss = XML::Feed->parse( URI->new($url) )
-                        or die XML::Feed->errstr. "\nCan not parse [$url].\n";
+        my $rss;
+        unless ( $rss = XML::Feed->parse( URI->new($url) ) ) {
+            warn XML::Feed->errstr. "\nCan not parse [$url].\n";
+            next;
+        }
my $me = 0;
for my $item ($rss->entries) {

Comments

comments powered by Disqus