=encoding utf-8 =head1 NAME =begin original Feed::Find - Syndication feed auto-discovery =end original Feed::Find - 配信フィードの自動検出 =head1 SYNOPSIS use Feed::Find; my @feeds = Feed::Find->find('http://example.com/'); =head1 DESCRIPTION =begin original I implements feed auto-discovery for finding syndication feeds, given a URI. It (currently) passes all of the auto-discovery tests at I. I will discover the following feed formats: =over 4 =item * RSS 0.91 =item * RSS 1.0 =item * RSS 2.0 =item * Atom =back =end original Iは与えられた URIの, 配信フィードの自動検出するための機能を実装しています. (現在)Iにある 自動検出のためのテストをすべてパスしています. Iは以下のフィードフォーマットを検出することができます. =over 4 =item * RSS 0.91 =item * RSS 1.0 =item * RSS 2.0 =item * Atom =back =head1 USAGE =begin original =head2 Feed::Find->find($uri) Given a URI I<$uri>, use a variety of techniques to find the feeds associated with that page. If I<$uri> itself points to a feed (i.e., if the I of the response is a recognized feed type), returns I<$uri>. Returns a list of feed URIs. The following techniques are used: =over 4 =item 1. IlinkE> tag auto-discovery If the page contains any IlinkE> tags in the IheadE> section, these tags are examined for recognized feed content types. The following content types are treated as feeds: I, I, I, I, I, and I. =item 2. Scanning IaE> tags If the page does not contain any known IlinkE> tags, the page is then scanned for IaE> tags for links to URIs with certain file extensions. The following extensions are treated as feeds: F<.rss>, F<.xml>, and F<.rdf>. Note that this technique is employed B if the first technique returns no results. =back =head2 Feed::Find->find_in_html(\$html [, $base_uri ]) Given a reference to a string I<$html> containing an HTML page, uses the same techniques as described above in I to find the feeds associated with that page. If you know the URI of the page, you should provide it in I<$base_uri>, so that relative links can be properly made absolute. I will attempt to determine the correct base URI, but unless that URI is specified in the HTML itself (in a CmetaE> tag), you'll need to supply it yourself. Returns a list of feed URIs. =end original =head2 Feed::Find->find($uri) 与えられた URI I<$uri>に, そのページに関連するフィードを検出するための様々な 手法を用います. もし I<$uri>自身がフィードを示しているのであれば, (すなわち レスポンスのIがフィードと認識された場合) I<$uri>が戻り値となります. フィードの URIのリストが戻り値となります. 以下のテクニックが使用されます. =over 4 =item 1. IlinkE>タグ自動検出 ページがIheadE>セクションにIlinkE>タグを含んでいれば, これらのタグから type属性がフィードと認識できるかについて調べます. 次の type属性をフィードとして扱います: I, I, I, I, I, 及びI. =item 2. IaE>タグのスキャン ページがIlinkE>タグを含んでいなければ, IaE>タグのリンクから 特定の拡張子を探します. フィードと扱う拡張子は次のとおりです: F<.rss>, F<.xml>, 及び F<.rdf>. 一つ目の方法で何も戻り値がない場合のみ, この方法が適用されます. =back =head2 Feed::Find->find_in_html(\$html [, $base_uri ]) HTMLページを含む文字列のリファレンスI<$html>を与えます. 上記で述べたIと 同じ手法を用いてページと関連するフィードを見つけ出します. ページの URLを知っているのであれば, 相対リンクを適切な絶対リンクにすることが できるので I<$base_uri>を渡すべきでしょう. Iは正しいベース URIを 決定しようとしますが, HTML自身(CmetaE>タグ内)で特定することができない のであれば, あなた自身が提供する必要があります. 戻り値はフィードの URIのリストです. Returns a list of feed URIs. =head1 LICENSE I is free software; you may redistribute it and/or modify it under the same terms as Perl itself. =head1 AUTHOR & COPYRIGHT Except where otherwise noted, I is Copyright 2004 Benjamin Trott, ben+cpan@stupidfool.org. All rights reserved. =cut