annotate bin/chronicle-rss-importer @ 254:2b67eb6c74eb

Sync with the debian sid reelasse
author Steve Kemp <steve@steve.org.uk>
date Sun, 25 May 2008 15:24:45 +0100
parents fdbbc1bb5d7c
children 389f234d4111
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 {
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
65 GetOptions(
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
66
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
67 # Help options
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
68 "feed=s", \$CONFIG{ 'feed' },
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
69 "output=s", \$CONFIG{ 'output' },
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
70 "sequential", \$CONFIG{ 'sequential' },
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
71 );
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
72 }
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
73
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
74
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
75
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
76 =begin doc
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 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
79 those arguments look OK.
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
80
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
81 =end doc
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
82
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
83 =cut
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 sub validateCommandLineArguments
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
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 # We need an output dir
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 if ( !$CONFIG{ 'output' } )
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 print "Output directory is mandatory.\n";
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
94 print "Please specificy via --output=...\n";
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
95 exit;
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 if ( !-d $CONFIG{ 'output' } )
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
98 {
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
99 print
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
100 "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
101 exit;
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
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
104 #
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
105 # We need a feed
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 if ( !$CONFIG{ 'feed' } )
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 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
110 exit;
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
111 }
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 }
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
114
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 =begin doc
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 Fetch the remote RSS feed.
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 =end 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 =cut
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 sub fetchRSSFeed
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 my ($uri) = (@_);
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 my $ua = LWP::UserAgent->new();
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
130 $ua->timeout(10);
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
131 $ua->agent('chronicle-importer');
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 $response = $ua->get($uri);
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
134
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
135 if ( $response->is_success )
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 return ( $response->content() );
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 else
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 print "Failed to fetch feed: $uri\n";
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
142 print "\n";
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
143 print $response->message() . "\n";
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
144 exit;
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
145 }
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
146
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
147 }
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
148
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 =begin doc
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 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
154 single file.
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
155
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
156 =end doc
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
157
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
158 =cut
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 sub processEntries
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 my (%entries) = (@_);
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 my $count = 1;
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 foreach my $item ( @{ $rssHash{ 'item' } } )
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
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 # Get details from the feed.
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 my $title = $item->{ 'title' } || "no title";
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
173 my $date = $item->{ 'pubDate' } || $item->{ 'dc:date' } || undef;
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
174 my $body =
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
175 $item->{ 'description' }
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
176 || $item->{ 'content:encoded' }
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
177 || undef;
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
178 my $filename;
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
179
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
180
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
181 #
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
182 # Build up a suitable 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 if ( $CONFIG{ 'sequential' } )
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 $filename = $count . ".txt";
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 else
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 = $title;
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
191 $filename =~ s/[^a-z0-9]/_/gi;
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
192 $filename .= ".txt";
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 }
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
195
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
196 #
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
197 # Naive expansion.
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 if ( $body =~ m/&lt;/ )
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 $body = decode_entities($body);
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 $filename = $CONFIG{ 'output' } . "/" . $filename;
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
204 open( OUTPUT, ">", $filename )
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
205 or die "Failed to write to $filename - $!";
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
206 print OUTPUT <<EOF;
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
207 Title: $title
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
208 Date: $date
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
209
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
210 $body
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
211 EOF
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
212 close(OUTPUT);
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
213 $count += 1;
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
214 }
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
215
fdbbc1bb5d7c Add the stub migration script + readme
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
216 }