File: README

package info (click to toggle)
libxml-rss-feed-perl 2.212-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 312 kB
  • sloc: perl: 2,581; makefile: 2
file content (240 lines) | stat: -rw-r--r-- 7,152 bytes parent folder | download | duplicates (6)
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
NAME
    XML::RSS::Feed - Persistant XML RSS Encapsulation

VERSION
    2.212

SYNOPSIS
    A quick and dirty non-POE example that uses a blocking sleep. The magic
    is in the late_breaking_news method that returns only headlines it
    hasn't seen.

        use XML::RSS::Feed;
        use LWP::Simple qw(get);

        my $feed = XML::RSS::Feed->new(
            url    => "http://www.jbisbee.com/rdf/",
            name   => "jbisbee",
            delay  => 10,
            debug  => 1,
            tmpdir => "/tmp", # optional caching
        );

        while (1) {
            $feed->parse(get($feed->url));
            print $_->headline . "\n" for $feed->late_breaking_news;
            sleep($feed->delay); 
        }

    ATTENTION! - If you want a non-blocking way to watch multiple RSS
    sources with one process use POE::Component::RSSAggregator.

CONSTRUCTOR
  XML::RSS::Feed->new( url => $url, name => $name )
    Required Params

        * name
            Identifier and hash lookup key for the RSS feed.

        * url
            The URL of the RSS feed

    Optional Params

        * delay
            Number of seconds between updates (defaults to 600)

        * tmpdir
            Directory to keep a cached feed (using Storable) to keep
            persistance between instances.

        * debug
            Turn debuging on.

        * headline_as_id
            Boolean value to use the headline as the id when URL isn't
            unique within a feed.

        * hlobj
            A class name sublcassed from XML::RSS::Headline

        * max_headlines
            The max number of headlines to keep. (default is unlimited)

METHODS
  $feed->parse( $xml_string )
    Pass in a xml string to parse with XML::RSS and then call process to
    process the results.

  $feed->process( $items, $title, $link )
  $feed->process( $items, $title )
  $feed->process( $items )
    Calls pre_process, process_items, post_process, title, and link methods
    to process the parsed results of an RSS XML feed.

    * $items
        An array of hash refs which will eventually become
        XML::RSS::Headline objects. Look at XML::RSS::Headline->new() for
        acceptable arguments.

    * $title
        The title of the RSS feed.

    * $link
        The RSS channel link (normally a URL back to the homepage) of the
        RSS feed.

  $feed->pre_process
    Mark all headlines from previous run as seen.

  $feed->process_items( $items )
    Turn an array refs of hash refs into XML::RSS::Headline objects and
    added to the internal list of headlines.

  $feed->post_process
    Post process cleanup, cache headlines (if tmpdir), and debug messages.

  $feed->create_headline( %args)
    Create a new XML::RSS::Headline object and add it to the interal list.
    Check XML::RSS::Headline->new() for acceptable values for %args.

  $feed->num_headlines
    Returns the number of headlines for the feed.

  $feed->seen_headline( $id )
    Just a boolean test to see if we've seen a headline or not.

  $feed->headlines
    Returns an array or array reference (based on context) of
    XML::RSS::Headline objects

  $feed->late_breaking_news
    Returns an array or the number of elements (based on context) of the
    latest XML::RSS::Headline objects.

  $feed->cache
    If tmpdir is defined the rss info is cached.

  $feed->set_last_updated
  $feed->set_last_updated( Time::HiRes::time )
    Set the time of when the feed was last processed. If you pass in a value
    it will be used otherwise calls Time::HiRes::time.

  $feed->last_updated
    The time (in epoch seconds) of when the feed was last processed.

  $feed->last_updated_hires
    The time (in epoch seconds and milliseconds) of when the feed was last
    processed.

SET/GET ACCESSOR METHODS
  $feed->title
  $feed->title( $title )
    The title of the RSS feed.

  $feed->debug
  $feed->debug( $bool )
    Turn on debugging messages

  $feed->init
  $feed->init( $bool )
    init is used so that we just load the current headlines and don't return
    all headlines. in other words we initialize them. Takes a boolean
    argument.

  $feed->name
  $feed->name( $name )
    The identifier of an RSS feed.

  $feed->delay
  $feed->delay( $seconds )
    Number of seconds between updates.

  $feed->link
  $feed->link( $rss_channel_url )
    The url in the RSS feed with a link back to the site where the RSS feed
    came from.

  $feed->url
  $feed->url( $url )
    The url in the RSS feed with a link back to the site where the RSS feed
    came from.

  $feed->headline_as_id
  $feed->headline_as_id( $bool )
    Within some RSS feeds the URL may not always be unique, in these cases
    you can use the headline as the unique id. The id is used to check
    whether or not a feed is new or has already been seen.

  $feed->hlobj
  $feed->hlobj( $class )
    Ablity to use a subclass of XML::RSS::Headline. (See Perl Jobs example
    in XML::RSS::Headline::PerlJobs). This should just be the name of the
    subclass.

  $feed->tmpdir
  $feed->tmpdir( $tmpdir )
    Temporay directory to store cached RSS XML between instances for
    persistance.

  $feed->max_headlines
  $feed->max_headlines( $integer )
    The maximum number of headlines you'd like to keep track of. (0 means
    infinate)

DEPRECATED METHODS
  $feed->failed_to_fetch
    This should was deprecated because, the object shouldn't really know
    anything about fetching, it just processes the results. This method
    currently will always return false

  $feed->failed_to_parse
    This method was deprecated because, $feed->parse now returns a bool
    value. This method will always return false

AUTHOR
    Jeff Bisbee, "<jbisbee at cpan.org>"

BUGS
    Please report any bugs or feature requests to "bug-xml-rss-feed at
    rt.cpan.org", or through the web interface at
    <http://rt.cpan.org/NoAuth/ReportBug.html?Queue=XML-RSS-Feed>. I will be
    notified, and then you'll automatically be notified of progress on your
    bug as I make changes.

SUPPORT
    You can find documentation for this module with the perldoc command.

        perldoc XML::RSS::Feed

    You can also look for information at:

    * AnnoCPAN: Annotated CPAN documentation
        <http://annocpan.org/dist/XML-RSS-Feed>

    * CPAN Ratings
        <http://cpanratings.perl.org/d/XML-RSS-Feed>

    * RT: CPAN's request tracker
        <http://rt.cpan.org/NoAuth/Bugs.html?Dist=XML-RSS-Feed>

    * Search CPAN
        <http://search.cpan.org/dist/XML-RSS-Feed>

ACKNOWLEDGEMENTS
    Special thanks to Rocco Caputo, Martijn van Beers, Sean Burke, Prakash
    Kailasa and Randal Schwartz for their help, guidance, patience, and bug
    reports. Guys thanks for actually taking time to use the code and give
    good, honest feedback.

COPYRIGHT & LICENSE
    Copyright 2006 Jeff Bisbee, all rights reserved.

    This program is free software; you can redistribute it and/or modify it
    under the same terms as Perl itself.

SEE ALSO
    XML::RSS::Headline, XML::RSS::Headline::PerlJobs,
    XML::RSS::Headline::Fark, XML::RSS::Headline::UsePerlJournals,
    POE::Component::RSSAggregator