Photos
Blog
Projects
vanrenterghem.biz
projects
/
git.ikiwiki.info.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
htmlbalance: don't compact whitespace, and set misc other options
[git.ikiwiki.info.git]
/
IkiWiki
/
Plugin
/
aggregate.pm
diff --git
a/IkiWiki/Plugin/aggregate.pm
b/IkiWiki/Plugin/aggregate.pm
index f47dc58b3f67e598843ace5d1d429e71c2e76ae8..adaa619ab1a255d5904c71bc100c52c2fb10b414 100644
(file)
--- a/
IkiWiki/Plugin/aggregate.pm
+++ b/
IkiWiki/Plugin/aggregate.pm
@@
-158,11
+158,11
@@
sub migrate_to_internal { #{{{
next if $data->{expired};
$config{aggregateinternal} = 0;
next if $data->{expired};
$config{aggregateinternal} = 0;
- my $oldname =
pagefile
($data->{page});
+ my $oldname =
"$config{srcdir}/".htmlfn
($data->{page});
my $oldoutput = $config{destdir}."/".IkiWiki::htmlpage($data->{page});
$config{aggregateinternal} = 1;
my $oldoutput = $config{destdir}."/".IkiWiki::htmlpage($data->{page});
$config{aggregateinternal} = 1;
- my $newname =
pagefile
($data->{page});
+ my $newname =
"$config{srcdir}/".htmlfn
($data->{page});
debug "moving $oldname -> $newname";
if (-e $newname) {
debug "moving $oldname -> $newname";
if (-e $newname) {
@@
-228,7
+228,7
@@
sub preprocess (@) { #{{{
$feed->{name}=$name;
$feed->{sourcepage}=$params{page};
$feed->{url}=$params{url};
$feed->{name}=$name;
$feed->{sourcepage}=$params{page};
$feed->{url}=$params{url};
- my $dir=exists $params{dir} ? $params{dir} : $params{page}."/".
IkiWiki::
titlepage($params{name});
+ my $dir=exists $params{dir} ? $params{dir} : $params{page}."/".titlepage($params{name});
$dir=~s/^\/+//;
($dir)=$dir=~/$config{wiki_file_regexp}/;
$feed->{dir}=$dir;
$dir=~s/^\/+//;
($dir)=$dir=~/$config{wiki_file_regexp}/;
$feed->{dir}=$dir;
@@
-364,13
+364,13
@@
sub garbage_collect () { #{{{
foreach my $guid (values %guids) {
# any guid whose feed is gone should be removed
if (! exists $feeds{$guid->{feed}}) {
foreach my $guid (values %guids) {
# any guid whose feed is gone should be removed
if (! exists $feeds{$guid->{feed}}) {
- unlink
pagefile
($guid->{page})
+ unlink
"$config{srcdir}/".htmlfn
($guid->{page})
if exists $guid->{page};
delete $guids{$guid->{guid}};
}
# handle expired guids
elsif ($guid->{expired} && exists $guid->{page}) {
if exists $guid->{page};
delete $guids{$guid->{guid}};
}
# handle expired guids
elsif ($guid->{expired} && exists $guid->{page}) {
- unlink
pagefile
($guid->{page});
+ unlink
"$config{srcdir}/".htmlfn
($guid->{page});
delete $guid->{page};
delete $guid->{md5};
}
delete $guid->{page};
delete $guid->{md5};
}
@@
-420,11
+420,11
@@
sub expire () { #{{{
next unless $feed->{expireage} || $feed->{expirecount};
my $count=0;
my %seen;
next unless $feed->{expireage} || $feed->{expirecount};
my $count=0;
my %seen;
- foreach my $item (sort {
$IkiWiki::pagectime{$b->{page}} <=> $IkiWiki::pagectime{$a->{page}}
}
+ foreach my $item (sort {
($IkiWiki::pagectime{$b->{page}} || 0) <=> ($IkiWiki::pagectime{$a->{page}} || 0)
}
grep { exists $_->{page} && $_->{feed} eq $feed->{name} }
values %guids) {
if ($feed->{expireage}) {
grep { exists $_->{page} && $_->{feed} eq $feed->{name} }
values %guids) {
if ($feed->{expireage}) {
- my $days_old = (time -
$IkiWiki::pagectime{$item->{page}}
) / 60 / 60 / 24;
+ my $days_old = (time -
($IkiWiki::pagectime{$item->{page}} || 0)
) / 60 / 60 / 24;
if ($days_old > $feed->{expireage}) {
debug(sprintf(gettext("expiring %s (%s days old)"),
$item->{page}, int($days_old)));
if ($days_old > $feed->{expireage}) {
debug(sprintf(gettext("expiring %s (%s days old)"),
$item->{page}, int($days_old)));
@@
-460,7
+460,7
@@
sub aggregate (@) { #{{{
foreach my $feed (@_) {
$feed->{lastupdate}=time;
$feed->{newposts}=0;
foreach my $feed (@_) {
$feed->{lastupdate}=time;
$feed->{newposts}=0;
- $feed->{message}=sprintf(gettext("
processed ok at
%s"),
+ $feed->{message}=sprintf(gettext("
last checked
%s"),
displaytime($feed->{lastupdate}));
$feed->{error}=0;
displaytime($feed->{lastupdate}));
$feed->{error}=0;
@@
-496,15
+496,19
@@
sub aggregate (@) { #{{{
# that contains invalid UTF-8 sequences. Convert
# feed to ascii to try to work around.
$feed->{message}.=" ".sprintf(gettext("(invalid UTF-8 stripped from feed)"));
# that contains invalid UTF-8 sequences. Convert
# feed to ascii to try to work around.
$feed->{message}.=" ".sprintf(gettext("(invalid UTF-8 stripped from feed)"));
- $content=Encode::decode_utf8($content, 0);
- $f=eval{XML::Feed->parse(\$content)};
+ $f=eval {
+ $content=Encode::decode_utf8($content, 0);
+ XML::Feed->parse(\$content)
+ };
}
if ($@) {
# Another possibility is badly escaped entities.
$feed->{message}.=" ".sprintf(gettext("(feed entities escaped)"));
$content=~s/\&(?!amp)(\w+);/&$1;/g;
}
if ($@) {
# Another possibility is badly escaped entities.
$feed->{message}.=" ".sprintf(gettext("(feed entities escaped)"));
$content=~s/\&(?!amp)(\w+);/&$1;/g;
- $content=Encode::decode_utf8($content, 0);
- $f=eval{XML::Feed->parse(\$content)};
+ $f=eval {
+ $content=Encode::decode_utf8($content, 0);
+ XML::Feed->parse(\$content)
+ };
}
if ($@) {
$feed->{message}=gettext("feed crashed XML::Feed!")." ($@)";
}
if ($@) {
$feed->{message}=gettext("feed crashed XML::Feed!")." ($@)";
@@
-520,10
+524,10
@@
sub aggregate (@) { #{{{
}
foreach my $entry ($f->entries) {
}
foreach my $entry ($f->entries) {
- my $c
ontent=$content
=$entry->content;
+ my $c=$entry->content;
# atom feeds may have no content, only a summary
# atom feeds may have no content, only a summary
- if (! defined $c
ontent
) {
- $c
ontent
=$entry->summary;
+ if (! defined $c
&& ref $entry->summary
) {
+ $c=$entry->summary;
}
add_page(
}
add_page(
@@
-531,9
+535,10
@@
sub aggregate (@) { #{{{
copyright => $f->copyright,
title => defined $entry->title ? decode_entities($entry->title) : "untitled",
link => $entry->link,
copyright => $f->copyright,
title => defined $entry->title ? decode_entities($entry->title) : "untitled",
link => $entry->link,
- content =>
defined $content ? $content
->body : "",
+ content =>
(defined $c && defined $c->body) ? $c
->body : "",
guid => defined $entry->id ? $entry->id : time."_".$feed->{name},
ctime => $entry->issued ? ($entry->issued->epoch || time) : time,
guid => defined $entry->id ? $entry->id : time."_".$feed->{name},
ctime => $entry->issued ? ($entry->issued->epoch || time) : time,
+ base => (defined $c && $c->can("base")) ? $c->base : undef,
);
}
}
);
}
}
@@
-559,7
+564,7
@@
sub add_page (@) { #{{{
$feed->{newposts}++;
# assign it an unused page
$feed->{newposts}++;
# assign it an unused page
- my $page=
IkiWiki::
titlepage($params{title});
+ my $page=titlepage($params{title});
# escape slashes and periods in title so it doesn't specify
# directory name or trigger ".." disallowing code.
$page=~s!([/.])!"__".ord($1)."__"!eg;
# escape slashes and periods in title so it doesn't specify
# directory name or trigger ".." disallowing code.
$page=~s!([/.])!"__".ord($1)."__"!eg;
@@
-570,7
+575,7
@@
sub add_page (@) { #{{{
}
my $c="";
while (exists $IkiWiki::pagecase{lc $page.$c} ||
}
my $c="";
while (exists $IkiWiki::pagecase{lc $page.$c} ||
- -e
pagefile
($page.$c)) {
+ -e
"$config{srcdir}/".htmlfn
($page.$c)) {
$c++
}
$c++
}
@@
-581,7
+586,7
@@
sub add_page (@) { #{{{
$c="";
$page=$feed->{dir}."/item";
while (exists $IkiWiki::pagecase{lc $page.$c} ||
$c="";
$page=$feed->{dir}."/item";
while (exists $IkiWiki::pagecase{lc $page.$c} ||
- -e
pagefile
($page.$c)) {
+ -e
"$config{srcdir}/".htmlfn
($page.$c)) {
$c++
}
}
$c++
}
}
@@
-605,7
+610,8
@@
sub add_page (@) { #{{{
my $template=template($feed->{template}, blind_cache => 1);
$template->param(title => $params{title})
if defined $params{title} && length($params{title});
my $template=template($feed->{template}, blind_cache => 1);
$template->param(title => $params{title})
if defined $params{title} && length($params{title});
- $template->param(content => htmlescape(htmlabs($params{content}, $feed->{feedurl})));
+ $template->param(content => wikiescape(htmlabs($params{content},
+ defined $params{base} ? $params{base} : $feed->{feedurl})));
$template->param(name => $feed->{name});
$template->param(url => $feed->{url});
$template->param(copyright => $params{copyright})
$template->param(name => $feed->{name});
$template->param(url => $feed->{url});
$template->param(copyright => $params{copyright})
@@
-621,17
+627,19
@@
sub add_page (@) { #{{{
if (defined $mtime && $mtime <= time) {
# Set the mtime, this lets the build process get the right
# creation time on record for the new page.
if (defined $mtime && $mtime <= time) {
# Set the mtime, this lets the build process get the right
# creation time on record for the new page.
- utime $mtime, $mtime,
pagefile
($guid->{page});
+ utime $mtime, $mtime,
"$config{srcdir}/".htmlfn
($guid->{page});
# Store it in pagectime for expiry code to use also.
$IkiWiki::pagectime{$guid->{page}}=$mtime;
}
# Store it in pagectime for expiry code to use also.
$IkiWiki::pagectime{$guid->{page}}=$mtime;
}
+ else {
+ # Dummy value for expiry code.
+ $IkiWiki::pagectime{$guid->{page}}=time;
+ }
} #}}}
} #}}}
-sub
html
escape ($) { #{{{
+sub
wiki
escape ($) { #{{{
# escape accidental wikilinks and preprocessor stuff
# escape accidental wikilinks and preprocessor stuff
- my $html=shift;
- $html=~s/(?<!\\)\[\[/\\\[\[/g;
- return $html;
+ return encode_entities(shift, '\[\]');
} #}}}
sub urlabs ($$) { #{{{
} #}}}
sub urlabs ($$) { #{{{
@@
-679,12
+687,6
@@
sub htmlabs ($$) { #{{{
return $ret;
} #}}}
return $ret;
} #}}}
-sub pagefile ($) { #{{{
- my $page=shift;
-
- return "$config{srcdir}/".htmlfn($page);
-} #}}}
-
sub htmlfn ($) { #{{{
return shift().".".($config{aggregateinternal} ? "_aggregated" : $config{htmlext});
} #}}}
sub htmlfn ($) { #{{{
return shift().".".($config{aggregateinternal} ? "_aggregated" : $config{htmlext});
} #}}}