例えば、はてなブックマークのフィードからShibuya.pmタグが付いてる物のOPMLを作るとか?(自身無さげ)
でもこれ、MIMEパターンをconfig.yamlに上手くめり込ませる方法ってないのかな...
指定する場合、「このURLに対しては変則的なxxxなMIMEで取りたい」って使いたいんだよね。
Index: lib/Plagger/Plugin/Subscription/Feed.pm
===================================================================
--- lib/Plagger/Plugin/Subscription/Feed.pm (revision 1959)
+++ lib/Plagger/Plugin/Subscription/Feed.pm (working copy)
@@ -17,7 +17,6 @@
sub load {
my ( $self, $context ) = @_;
- # TODO: Auto-Discovery, XML::Liberal
my $uri = URI->new( $self->conf->{url} )
or $context->error("config 'url' is missing");
@@ -30,6 +29,20 @@
my $content = Plagger::Util::load_uri($uri);
my $feed = eval { Plagger::FeedParser->parse(\$content) };
+ if unless($feed) {
+ use HTML::TokeParser;
+ my $parser = HTML::TokeParser->new(\$content);
+ while (my $token = $parser->get_tag("link")) {
+ my $attr = $token->[1];
+ if ($attr->{rel} eq 'alternate'
+ && ($attr->{type} eq 'application/rss+xml'
+ or $attr->{type} eq 'application/atom+xml') {
+ $uri = $attr->{href};
+ $feed = eval { Plagger::FeedParser->parse(\$content) };
+ last;
+ }
+ }
+ }
unless ($feed) {
$context->log( error => "Error loading feed $uri: $@" );
return;