Changeset 294
- Timestamp:
- 05/18/06 16:44:39 (6 years ago)
- Location:
- wiki-toolkit/trunk/lib/Wiki/Toolkit/Feed
- Files:
-
- 2 modified
Legend:
- Unmodified
- Added
- Removed
-
wiki-toolkit/trunk/lib/Wiki/Toolkit/Feed/Atom.pm
r292 r294 55 55 56 56 my $wiki = $self->{wiki}; 57 58 my %criteria = ( 59 ignore_case => 1, 60 ); 61 62 # If we're not passed any parameters to limit the items returned, default to 15. 63 $args{days} ? $criteria{days} = $args{days} 64 : $criteria{last_n_changes} = $args{items} || 15; 65 66 $criteria{metadata_wasnt} = { major_change => 0 } if $args{ignore_minor_edits}; 67 $criteria{metadata_was} = $args{filter_on_metadata} if $args{filter_on_metadata}; 68 69 my @changes = $wiki->list_recent_changes(%criteria); 70 my $atom_timestamp = $self->feed_timestamp(%args); 71 72 return $self->generate_node_list_feed($atom_timestamp, @changes); 73 } 74 75 =item <generate_node_list_feed> 76 77 Generate and return an Atom feed for a list of nodes 78 79 =cut 80 sub generate_node_list_feed { 81 my ($self,$atom_timestamp,@nodes) = @_; 57 82 58 83 my $generator = ''; … … 67 92 } 68 93 69 my %criteria = (70 ignore_case => 1,71 );72 73 # If we're not passed any parameters to limit the items returned, default to 15.74 $args{days} ? $criteria{days} = $args{days}75 : $criteria{last_n_changes} = $args{items} || 15;76 77 $criteria{metadata_wasnt} = { major_change => 0 } if $args{ignore_minor_edits};78 $criteria{metadata_was} = $args{filter_on_metadata} if $args{filter_on_metadata};79 80 my @changes = $wiki->list_recent_changes(%criteria);81 82 94 my $subtitle = $self->{site_description} 83 95 ? '<subtitle>' . $self->{site_description} . "</subtitle>\n" … … 88 100 <feed xmlns="http://www.w3.org/2005/Atom"> 89 101 90 <link href="} . $self->{site_url} . qq{" />91 <title>} . $self->{site_name} . qq{</title>92 <link rel="self" href="} . $self->{atom_link} . qq{" />93 <updated>} . $ self->feed_timestamp(%args). qq{</updated>94 <id>} . $self->{site_url} . qq{</id>102 <link href="} . $self->{site_url} . qq{" /> 103 <title>} . $self->{site_name} . qq{</title> 104 <link rel="self" href="} . $self->{atom_link} . qq{" /> 105 <updated>} . $atom_timestamp . qq{</updated> 106 <id>} . $self->{site_url} . qq{</id> 95 107 $subtitle}; 96 108 97 109 my (@urls, @items); 98 110 99 foreach my $ change (@changes)100 { 101 my $node_name = $ change->{name};102 103 my $item_timestamp = $ change->{last_modified};111 foreach my $node (@nodes) 112 { 113 my $node_name = $node->{name}; 114 115 my $item_timestamp = $node->{last_modified}; 104 116 105 117 # Make a Time::Piece object. … … 110 122 $item_timestamp = $time->strftime( "%Y-%m-%dT%H:%M:%S$utc_offset" ); 111 123 112 my $author = $ change->{metadata}{username}[0] || $change->{metadata}{host}[0] || 'Anonymous';113 my $description = $ change->{metadata}{comment}[0] || 'No description given for change';124 my $author = $node->{metadata}{username}[0] || $node->{metadata}{host}[0] || 'Anonymous'; 125 my $description = $node->{metadata}{comment}[0] || 'No description given for node'; 114 126 115 127 $description .= " [$author]" if $author; 116 128 117 my $version = $ change->{version};129 my $version = $node->{version}; 118 130 my $status = (1 == $version) ? 'new' : 'updated'; 119 131 120 my $major_change = $ change->{metadata}{major_change}[0];132 my $major_change = $node->{metadata}{major_change}[0]; 121 133 $major_change = 1 unless defined $major_change; 122 134 my $importance = $major_change ? 'major' : 'minor'; … … 182 194 =head1 NAME 183 195 184 Wiki::Toolkit::Feed::Atom - A Wiki::Toolkit plugin to output RecentChanges RSS.196 Wiki::Toolkit::Feed::Atom - A Wiki::Toolkit plugin to output RecentChanges Atom. 185 197 186 198 =head1 DESCRIPTION -
wiki-toolkit/trunk/lib/Wiki/Toolkit/Feed/RSS.pm
r293 r294 154 154 my (@urls, @items); 155 155 156 foreach my $ change (@nodes)157 { 158 my $node_name = $ change->{name};159 160 my $timestamp = $ change->{last_modified};156 foreach my $node (@nodes) 157 { 158 my $node_name = $node->{name}; 159 160 my $timestamp = $node->{last_modified}; 161 161 162 162 # Make a Time::Piece object. … … 167 167 $timestamp = $time->strftime( "%Y-%m-%dT%H:%M:%S$utc_offset" ); 168 168 169 my $author = $ change->{metadata}{username}[0] || $change->{metadata}{host}[0] || '';170 my $description = $ change->{metadata}{comment}[0] || '';169 my $author = $node->{metadata}{username}[0] || $node->{metadata}{host}[0] || ''; 170 my $description = $node->{metadata}{comment}[0] || ''; 171 171 172 172 $description .= " [$author]" if $author; 173 173 174 my $version = $ change->{version};174 my $version = $node->{version}; 175 175 my $status = (1 == $version) ? 'new' : 'updated'; 176 176 177 my $major_change = $ change->{metadata}{major_change}[0];177 my $major_change = $node->{metadata}{major_change}[0]; 178 178 $major_change = 1 unless defined $major_change; 179 179 my $importance = $major_change ? 'major' : 'minor'; … … 239 239 } 240 240 241 =item B<rss_timestamp> 242 243 Generate the timestamp for the RSS, by figuring out the age range of 244 the source data for the feed 245 246 =cut 241 247 sub rss_timestamp 242 248 {
