* aggregate: Include copyright statements from rss feed as meta copyright
directives. * aggregate: Yet another state saving fix (sigh). * aggregate: Add hack to support feeds with invalidly escaped html entities.master
parent
4c1a4402f9
commit
86781fc43e
|
@ -129,6 +129,7 @@ sub delete (@) { #{{{
|
|||
my $state_loaded=0;
|
||||
sub loadstate () { #{{{
|
||||
return if $state_loaded;
|
||||
$state_loaded=1;
|
||||
if (-e "$config{wikistatedir}/aggregate") {
|
||||
open(IN, "$config{wikistatedir}/aggregate") ||
|
||||
die "$config{wikistatedir}/aggregate: $!";
|
||||
|
@ -159,8 +160,6 @@ sub loadstate () { #{{{
|
|||
}
|
||||
|
||||
close IN;
|
||||
|
||||
$state_loaded=1;
|
||||
}
|
||||
} #}}}
|
||||
|
||||
|
@ -302,6 +301,13 @@ sub aggregate () { #{{{
|
|||
$content=Encode::decode_utf8($content);
|
||||
$f=eval{XML::Feed->parse(\$content)};
|
||||
}
|
||||
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);
|
||||
$f=eval{XML::Feed->parse(\$content)};
|
||||
}
|
||||
if ($@) {
|
||||
$feed->{message}=gettext("feed crashed XML::Feed!")." ($@)";
|
||||
$feed->{error}=1;
|
||||
|
@ -318,6 +324,7 @@ sub aggregate () { #{{{
|
|||
foreach my $entry ($f->entries) {
|
||||
add_page(
|
||||
feed => $feed,
|
||||
copyright => $f->copyright,
|
||||
title => defined $entry->title ? decode_entities($entry->title) : "untitled",
|
||||
link => $entry->link,
|
||||
content => defined $entry->content->body ? $entry->content->body : "",
|
||||
|
@ -397,6 +404,8 @@ sub add_page (@) { #{{{
|
|||
$template->param(content => htmlescape(htmlabs($params{content}, $feed->{feedurl})));
|
||||
$template->param(name => $feed->{name});
|
||||
$template->param(url => $feed->{url});
|
||||
$template->param(copyright => $params{copyright})
|
||||
if defined $params{copyright} && length $params{copyright};
|
||||
$template->param(permalink => urlabs($params{link}, $feed->{feedurl}))
|
||||
if defined $params{link};
|
||||
if (ref $feed->{tags}) {
|
||||
|
|
|
@ -11,6 +11,10 @@ ikiwiki (2.19) UNRELEASED; urgency=low
|
|||
* Add a prereq on Data::Dumper 2.11 or better, needed to dump q// objects.
|
||||
* htmlscrubber: Further work around #365971 by adding tags for 'br/', 'hr/'
|
||||
and 'p/'.
|
||||
* aggregate: Include copyright statements from rss feed as meta copyright
|
||||
directives.
|
||||
* aggregate: Yet another state saving fix (sigh).
|
||||
* aggregate: Add hack to support feeds with invalidly escaped html entities.
|
||||
|
||||
-- Joey Hess <joeyh@debian.org> Mon, 07 Jan 2008 15:35:16 -0500
|
||||
|
||||
|
|
|
@ -8,5 +8,8 @@
|
|||
<TMPL_IF NAME="PERMALINK">
|
||||
[[meta permalink="<TMPL_VAR NAME="PERMALINK" ESCAPE=HTML>"]]
|
||||
</TMPL_IF>
|
||||
<TMPL_IF NAME="COPYRIGHT">
|
||||
[[meta copyright="<TMPL_VAR NAME="COPYRIGHT" ESCAPE=HTML>"]]
|
||||
</TMPL_IF>
|
||||
[[meta author="<TMPL_VAR NAME="NAME" ESCAPE=HTML>"]]
|
||||
[[meta authorurl="<TMPL_VAR NAME="URL" ESCAPE=HTML>"]]
|
||||
|
|
Loading…
Reference in New Issue