@@ -14,30 +14,24 @@ my %feeds;
14
14
my %guids ;
15
15
16
16
sub import { # {{{
17
- IkiWiki::hook(type => " getopt" , id => " aggregate" ,
18
- call => \&getopt);
19
- IkiWiki::hook(type => " checkconfig" , id => " aggregate" ,
20
- call => \&checkconfig);
21
- IkiWiki::hook(type => " filter" , id => " aggregate" ,
22
- call => \&filter);
23
- IkiWiki::hook(type => " preprocess" , id => " aggregate" ,
24
- call => \&preprocess);
25
- IkiWiki::hook(type => " delete" , id => " aggregate" ,
26
- call => \&delete );
27
- IkiWiki::hook(type => " savestate" , id => " aggregate" ,
28
- call => \&savestate);
17
+ hook(type => " getopt" , id => " aggregate" , call => \&getopt);
18
+ hook(type => " checkconfig" , id => " aggregate" , call => \&checkconfig);
19
+ hook(type => " filter" , id => " aggregate" , call => \&filter);
20
+ hook(type => " preprocess" , id => " aggregate" , call => \&preprocess);
21
+ hook(type => " delete" , id => " aggregate" , call => \&delete );
22
+ hook(type => " savestate" , id => " aggregate" , call => \&savestate);
29
23
} # }}}
30
24
31
25
sub getopt () { # {{{
32
26
eval q{ use Getopt::Long} ;
33
27
Getopt::Long::Configure(' pass_through' );
34
- GetOptions(" aggregate" => \$IkiWiki:: config {aggregate });
28
+ GetOptions(" aggregate" => \$config {aggregate });
35
29
} # }}}
36
30
37
31
sub checkconfig () { # {{{
38
32
IkiWiki::lockwiki();
39
33
loadstate();
40
- if ($IkiWiki:: config {aggregate }) {
34
+ if ($config {aggregate }) {
41
35
IkiWiki::loadindex();
42
36
aggregate();
43
37
savestate();
@@ -78,7 +72,7 @@ sub preprocess (@) { #{{{
78
72
$feed -> {url }=$params {url };
79
73
my $dir =exists $params {dir } ? $params {dir } : $params {page }." /" .IkiWiki::titlepage($params {name });
80
74
$dir =~s / ^\/ +// ;
81
- ($dir )=$dir =~/ $IkiWiki:: config {wiki_file_regexp}/ ;
75
+ ($dir )=$dir =~/ $config {wiki_file_regexp}/ ;
82
76
$feed -> {dir }=$dir ;
83
77
$feed -> {feedurl }=defined $params {feedurl } ? $params {feedurl } : " " ;
84
78
$feed -> {updateinterval }=defined $params {updateinterval } ? $params {updateinterval } * 60 : 15 * 60;
@@ -109,15 +103,15 @@ sub delete (@) { #{{{
109
103
110
104
# Remove feed data for removed pages.
111
105
foreach my $file (@files ) {
112
- my $page =IkiWiki:: pagename($file );
106
+ my $page =pagename($file );
113
107
remove_feeds($page );
114
108
}
115
109
} # }}}
116
110
117
111
sub loadstate () { # {{{
118
- if (-e " $IkiWiki:: config {wikistatedir}/aggregate" ) {
119
- open (IN, " $IkiWiki:: config {wikistatedir}/aggregate" ||
120
- die " $IkiWiki:: config {wikistatedir}/aggregate: $! " );
112
+ if (-e " $config {wikistatedir}/aggregate" ) {
113
+ open (IN, " $config {wikistatedir}/aggregate" ||
114
+ die " $config {wikistatedir}/aggregate: $! " );
121
115
while (<IN>) {
122
116
$_ =IkiWiki::possibly_foolish_untaint($_ );
123
117
chomp ;
@@ -151,8 +145,8 @@ sub loadstate () { #{{{
151
145
sub savestate () { # {{{
152
146
eval q{ use HTML::Entities} ;
153
147
die $@ if $@ ;
154
- open (OUT, " >$IkiWiki:: config {wikistatedir}/aggregate" ||
155
- die " $IkiWiki:: config {wikistatedir}/aggregate: $! " );
148
+ open (OUT, " >$config {wikistatedir}/aggregate" ||
149
+ die " $config {wikistatedir}/aggregate: $! " );
156
150
foreach my $data (values %feeds , values %guids ) {
157
151
if ($data -> {remove }) {
158
152
if ($data -> {name }) {
@@ -193,32 +187,32 @@ sub aggregate () { #{{{
193
187
die $@ if $@ ;
194
188
195
189
foreach my $feed (values %feeds ) {
196
- next unless $IkiWiki:: config {rebuild } ||
190
+ next unless $config {rebuild } ||
197
191
time - $feed -> {lastupdate } >= $feed -> {updateinterval };
198
192
$feed -> {lastupdate }=time ;
199
193
$feed -> {newposts }=0;
200
194
$IkiWiki::forcerebuild {$feed -> {sourcepage }}=1;
201
195
202
- IkiWiki:: debug(" checking feed " .$feed -> {name }." ..." );
196
+ debug(" checking feed " .$feed -> {name }." ..." );
203
197
204
198
if (! length $feed -> {feedurl }) {
205
199
my @urls =XML::Feed-> find_feeds($feed -> {url });
206
200
if (! @urls ) {
207
201
$feed -> {message }=" could not find feed at " .$feed -> {feedurl };
208
- IkiWiki:: debug($feed -> {message });
202
+ debug($feed -> {message });
209
203
next ;
210
204
}
211
205
$feed -> {feedurl }=pop @urls ;
212
206
}
213
207
my $f =eval {XML::Feed-> parse(URI-> new($feed -> {feedurl }))};
214
208
if ($@ ) {
215
209
$feed -> {message }=" feed crashed XML::Feed! $@ " ;
216
- IkiWiki:: debug($feed -> {message });
210
+ debug($feed -> {message });
217
211
next ;
218
212
}
219
213
if (! $f ) {
220
214
$feed -> {message }=XML::Feed-> errstr;
221
- IkiWiki:: debug($feed -> {message });
215
+ debug($feed -> {message });
222
216
next ;
223
217
}
224
218
@@ -234,7 +228,7 @@ sub aggregate () { #{{{
234
228
}
235
229
236
230
$feed -> {message }=" processed ok at " .
237
- IkiWiki:: displaytime($feed -> {lastupdate });
231
+ displaytime($feed -> {lastupdate });
238
232
}
239
233
240
234
# TODO: expiry
@@ -264,7 +258,7 @@ sub add_page (@) { #{{{
264
258
# directory name or trigger ".." disallowing code.
265
259
$page =~s ! ([/.])! "__".ord($1 )."__"! eg ;
266
260
$page =$feed -> {dir }." /" .$page ;
267
- ($page )=$page =~/ $IkiWiki:: config {wiki_file_regexp}/ ;
261
+ ($page )=$page =~/ $config {wiki_file_regexp}/ ;
268
262
if (! defined $page || ! length $page ) {
269
263
$page =$feed -> {dir }." /item" ;
270
264
}
@@ -274,7 +268,7 @@ sub add_page (@) { #{{{
274
268
$c ++
275
269
}
276
270
$guid -> {page }=$page ;
277
- IkiWiki:: debug(" creating new page $page " );
271
+ debug(" creating new page $page " );
278
272
}
279
273
$guid -> {feed }=$feed -> {name };
280
274
@@ -284,11 +278,11 @@ sub add_page (@) { #{{{
284
278
eval q{ use Digest::MD5 'md5_hex'} ;
285
279
require Encode;
286
280
my $digest =md5_hex(Encode::encode_utf8($params {content }));
287
- return unless ! exists $guid -> {md5 } || $guid -> {md5 } ne $digest || $IkiWiki:: config {rebuild };
281
+ return unless ! exists $guid -> {md5 } || $guid -> {md5 } ne $digest || $config {rebuild };
288
282
$guid -> {md5 }=$digest ;
289
283
290
284
# Create the page.
291
- my $template =IkiWiki:: template(" aggregatepost.tmpl" , blind_cache => 1);
285
+ my $template =template(" aggregatepost.tmpl" , blind_cache => 1);
292
286
$template -> param(title => $params {title })
293
287
if defined $params {title } && length ($params {title });
294
288
$template -> param(content => htmlescape(htmlabs($params {content }, $feed -> {feedurl })));
@@ -299,7 +293,7 @@ sub add_page (@) { #{{{
299
293
if (ref $feed -> {tags }) {
300
294
$template -> param(tags => [map { tag => $_ }, @{$feed -> {tags }}]);
301
295
}
302
- IkiWiki:: writefile(IkiWiki:: htmlpage($guid -> {page }), $IkiWiki:: config {srcdir },
296
+ writefile(htmlpage($guid -> {page }), $config {srcdir },
303
297
$template -> output);
304
298
305
299
# Set the mtime, this lets the build process get the right creation
@@ -374,7 +368,7 @@ sub remove_feeds () { #{{{
374
368
sub pagefile ($) { # {{{
375
369
my $page =shift ;
376
370
377
- return " $IkiWiki:: config {srcdir}/" .IkiWiki:: htmlpage($page );
371
+ return " $config {srcdir}/" .htmlpage($page );
378
372
} # }}}
379
373
380
374
1
0 commit comments