annotate bin/chronicle-rss-importer @ 275:327943acc84b

Correctly sort comments by submission time.
author Steve Kemp <steve@steve.org.uk>
date Mon, 01 Sep 2008 20:36:29 +0100
parents 389f234d4111
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
222
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
1 #!/usr/bin/perl -w
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
2
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
3 use strict;
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
4 use warnings;
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
5
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
6 use Getopt::Long;
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
7 use HTML::Entities;
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
8 use LWP;
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
9 use XML::RSSLite;
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
10
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
11
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
12 #
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
13 # Configuration variables
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
14 #
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
15 my %CONFIG;
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
16
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
17
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
18 #
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
19 # Parse arguments.
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
20 #
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
21 parseCommandLineArguments();
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
22
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
23
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
24 #
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
25 # Validate any arguments.
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
26 #
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
27 validateCommandLineArguments();
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
28
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
29
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
30 #
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
31 # Fetch the feed.
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
32 #
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
33 my $content = fetchRSSFeed( $CONFIG{ 'feed' } );
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
34
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
35
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
36 #
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
37 # Parse the feed
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
38 #
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
39 my %rssHash;
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
40 parseRSS( \%rssHash, \$content );
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
41
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
42
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
43 #
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
44 # Now import
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
45 #
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
46 processEntries(%rssHash);
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
47
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
48
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
49 #
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
50 # All done.
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
51 #
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
52
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
53
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
54
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
55 =begin doc
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
56
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
57 Parse the command line arguments, if any.
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
58
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
59 =end doc
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
60
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
61 =cut
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
62
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
63 sub parseCommandLineArguments
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
64 {
257
389f234d4111 Failure to parse options should make the script exit
Steve Kemp <steve@steve.org.uk>
parents: 222
diff changeset
65 if (
389f234d4111 Failure to parse options should make the script exit
Steve Kemp <steve@steve.org.uk>
parents: 222
diff changeset
66 !GetOptions(
222
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
67
257
389f234d4111 Failure to parse options should make the script exit
Steve Kemp <steve@steve.org.uk>
parents: 222
diff changeset
68 "feed=s", \$CONFIG{ 'feed' },
389f234d4111 Failure to parse options should make the script exit
Steve Kemp <steve@steve.org.uk>
parents: 222
diff changeset
69 "output=s", \$CONFIG{ 'output' },
389f234d4111 Failure to parse options should make the script exit
Steve Kemp <steve@steve.org.uk>
parents: 222
diff changeset
70 "sequential", \$CONFIG{ 'sequential' },
389f234d4111 Failure to parse options should make the script exit
Steve Kemp <steve@steve.org.uk>
parents: 222
diff changeset
71 )
389f234d4111 Failure to parse options should make the script exit
Steve Kemp <steve@steve.org.uk>
parents: 222
diff changeset
72 )
389f234d4111 Failure to parse options should make the script exit
Steve Kemp <steve@steve.org.uk>
parents: 222
diff changeset
73 {
389f234d4111 Failure to parse options should make the script exit
Steve Kemp <steve@steve.org.uk>
parents: 222
diff changeset
74 exit;
389f234d4111 Failure to parse options should make the script exit
Steve Kemp <steve@steve.org.uk>
parents: 222
diff changeset
75 }
222
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
76 }
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
77
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
78
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
79
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
80 =begin doc
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
81
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
82 Ensure we received the arguments we need, and that
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
83 those arguments look OK.
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
84
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
85 =end doc
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
86
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
87 =cut
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
88
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
89 sub validateCommandLineArguments
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
90 {
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
91
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
92 #
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
93 # We need an output dir
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
94 #
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
95 if ( !$CONFIG{ 'output' } )
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
96 {
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
97 print "Output directory is mandatory.\n";
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
98 print "Please specificy via --output=...\n";
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
99 exit;
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
100 }
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
101 if ( !-d $CONFIG{ 'output' } )
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
102 {
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
103 print
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
104 "Specified output directory [$CONFIG{'output'}] is not a directory!\n";
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
105 exit;
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
106 }
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
107
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
108 #
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
109 # We need a feed
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
110 #
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
111 if ( !$CONFIG{ 'feed' } )
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
112 {
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
113 print "Please specify a feed to import, via --feed=http:/....\n";
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
114 exit;
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
115 }
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
116
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
117 }
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
118
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
119
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
120
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
121 =begin doc
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
122
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
123 Fetch the remote RSS feed.
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
124
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
125 =end doc
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
126
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
127 =cut
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
128
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
129 sub fetchRSSFeed
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
130 {
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
131 my ($uri) = (@_);
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
132
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
133 my $ua = LWP::UserAgent->new();
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
134 $ua->timeout(10);
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
135 $ua->agent('chronicle-importer');
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
136
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
137 my $response = $ua->get($uri);
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
138
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
139 if ( $response->is_success )
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
140 {
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
141 return ( $response->content() );
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
142 }
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
143 else
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
144 {
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
145 print "Failed to fetch feed: $uri\n";
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
146 print "\n";
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
147 print $response->message() . "\n";
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
148 exit;
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
149 }
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
150
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
151 }
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
152
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
153
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
154
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
155 =begin doc
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
156
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
157 Iterate over the items in our feed and write each one out to a
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
158 single file.
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
159
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
160 =end doc
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
161
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
162 =cut
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
163
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
164 sub processEntries
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
165 {
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
166 my (%entries) = (@_);
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
167
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
168 my $count = 1;
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
169
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
170 foreach my $item ( @{ $rssHash{ 'item' } } )
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
171 {
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
172
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
173 #
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
174 # Get details from the feed.
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
175 #
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
176 my $title = $item->{ 'title' } || "no title";
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
177 my $date = $item->{ 'pubDate' } || $item->{ 'dc:date' } || undef;
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
178 my $body =
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
179 $item->{ 'description' }
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
180 || $item->{ 'content:encoded' }
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
181 || undef;
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
182 my $filename;
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
183
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
184
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
185 #
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
186 # Build up a suitable filename.
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
187 #
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
188 if ( $CONFIG{ 'sequential' } )
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
189 {
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
190 $filename = $count . ".txt";
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
191 }
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
192 else
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
193 {
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
194 $filename = $title;
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
195 $filename =~ s/[^a-z0-9]/_/gi;
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
196 $filename .= ".txt";
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
197
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
198 }
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
199
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
200 #
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
201 # Naive expansion.
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
202 #
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
203 if ( $body =~ m/&lt;/ )
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
204 {
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
205 $body = decode_entities($body);
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
206 }
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
207 $filename = $CONFIG{ 'output' } . "/" . $filename;
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
208 open( OUTPUT, ">", $filename )
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
209 or die "Failed to write to $filename - $!";
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
210 print OUTPUT <<EOF;
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
211 Title: $title
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
212 Date: $date
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
213
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
214 $body
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
215 EOF
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
216 close(OUTPUT);
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
217 $count += 1;
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
218 }
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
219
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
220 }