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 $newname = pagefile($data->{page});
+ my $newname = "$config{srcdir}/".htmlfn($data->{page});
debug "moving $oldname -> $newname";
if (-e $newname) {
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}) {
- unlink pagefile($guid->{page});
+ unlink "$config{srcdir}/".htmlfn($guid->{page});
delete $guid->{page};
delete $guid->{md5};
}
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;
}
foreach my $entry ($f->entries) {
- my $content=$content=$entry->content->body;
+ my $c=$entry->content;
# atom feeds may have no content, only a summary
- if (! defined $content && ref $entry->summary) {
- $content=$entry->summary->body;
+ if (! defined $c && ref $entry->summary) {
+ $c=$entry->summary;
}
add_page(
copyright => $f->copyright,
title => defined $entry->title ? decode_entities($entry->title) : "untitled",
link => $entry->link,
- content => defined $content ? $content : "",
+ content => defined $c ? $c->body : "",
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,
);
}
}
}
my $c="";
while (exists $IkiWiki::pagecase{lc $page.$c} ||
- -e pagefile($page.$c)) {
+ -e "$config{srcdir}/".htmlfn($page.$c)) {
$c++
}
$c="";
$page=$feed->{dir}."/item";
while (exists $IkiWiki::pagecase{lc $page.$c} ||
- -e pagefile($page.$c)) {
+ -e "$config{srcdir}/".htmlfn($page.$c)) {
$c++
}
}
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 => htmlescape(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})
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;
}
+ else {
+ # Dummy value for expiry code.
+ $IkiWiki::pagectime{$guid->{page}}=time;
+ }
} #}}}
sub htmlescape ($) { #{{{
return $ret;
} #}}}
-sub pagefile ($) { #{{{
- my $page=shift;
-
- return "$config{srcdir}/".htmlfn($page);
-} #}}}
-
sub htmlfn ($) { #{{{
return shift().".".($config{aggregateinternal} ? "_aggregated" : $config{htmlext});
} #}}}