directives.
* aggregate: Yet another state saving fix (sigh).
* aggregate: Add hack to support feeds with invalidly escaped html entities.
my $state_loaded=0;
sub loadstate () { #{{{
return if $state_loaded;
my $state_loaded=0;
sub loadstate () { #{{{
return if $state_loaded;
if (-e "$config{wikistatedir}/aggregate") {
open(IN, "$config{wikistatedir}/aggregate") ||
die "$config{wikistatedir}/aggregate: $!";
if (-e "$config{wikistatedir}/aggregate") {
open(IN, "$config{wikistatedir}/aggregate") ||
die "$config{wikistatedir}/aggregate: $!";
$content=Encode::decode_utf8($content);
$f=eval{XML::Feed->parse(\$content)};
}
$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;
if ($@) {
$feed->{message}=gettext("feed crashed XML::Feed!")." ($@)";
$feed->{error}=1;
foreach my $entry ($f->entries) {
add_page(
feed => $feed,
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 : "",
title => defined $entry->title ? decode_entities($entry->title) : "untitled",
link => $entry->link,
content => defined $entry->content->body ? $entry->content->body : "",
$template->param(content => htmlescape(htmlabs($params{content}, $feed->{feedurl})));
$template->param(name => $feed->{name});
$template->param(url => $feed->{url});
$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}) {
$template->param(permalink => urlabs($params{link}, $feed->{feedurl}))
if defined $params{link};
if (ref $feed->{tags}) {
* 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/'.
* 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
-- Joey Hess <joeyh@debian.org> Mon, 07 Jan 2008 15:35:16 -0500
<TMPL_IF NAME="PERMALINK">
[[meta permalink="<TMPL_VAR NAME="PERMALINK" ESCAPE=HTML>"]]
</TMPL_IF>
<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>"]]
[[meta author="<TMPL_VAR NAME="NAME" ESCAPE=HTML>"]]
[[meta authorurl="<TMPL_VAR NAME="URL" ESCAPE=HTML>"]]