Show
Ignore:
Timestamp:
05/11/08 17:04:41 (4 years ago)
Author:
dom
Message:

fix much tab/whitespace damage; no functional changes.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • wiki-toolkit/trunk/lib/Wiki/Toolkit/Feed/RSS.pm

    r425 r431  
    1414@ISA = qw( Wiki::Toolkit::Feed::Listing ); 
    1515 
    16 sub new 
    17 { 
     16sub new { 
    1817    my $class = shift; 
    1918    my $self  = {}; 
     
    2322    my $wiki = $args{wiki}; 
    2423 
    25     unless ($wiki && UNIVERSAL::isa($wiki, 'Wiki::Toolkit')) 
    26     { 
     24    unless ($wiki && UNIVERSAL::isa($wiki, 'Wiki::Toolkit')) { 
    2725        croak 'No Wiki::Toolkit object supplied'; 
    2826    } 
     
    3129   
    3230    # Mandatory arguments. 
    33     foreach my $arg (qw/site_name site_url make_node_url/) 
    34     { 
     31    foreach my $arg (qw/site_name site_url make_node_url/) { 
    3532        croak "No $arg supplied" unless $args{$arg}; 
    3633        $self->{$arg} = $args{$arg}; 
     
    4239   
    4340    # Optional arguments. 
    44     foreach my $arg (qw/site_description interwiki_identifier make_diff_url make_history_url encoding 
    45                         software_name software_version software_homepage/) 
    46     { 
     41    foreach my $arg (qw/site_description interwiki_identifier make_diff_url make_history_url encoding software_name software_version software_homepage/) { 
    4742        $self->{$arg} = $args{$arg} || ''; 
    4843    } 
     
    6863 
    6964sub build_feed_start { 
    70   my ($self,$feed_timestamp) = @_; 
    71  
    72   #"http://purl.org/rss/1.0/modules/wiki/" 
    73   return qq{<?xml version="1.0" encoding="}. $self->{encoding} .qq{"?> 
     65    my ($self,$feed_timestamp) = @_; 
     66 
     67    #"http://purl.org/rss/1.0/modules/wiki/" 
     68    return qq{<?xml version="1.0" encoding="}. $self->{encoding} .qq{"?> 
    7469 
    7570<rdf:RDF 
     
    9893    my $rss .= qq{<dc:publisher>} . $self->{site_url} . qq{</dc:publisher>\n}; 
    9994 
    100 if ($self->{software_name}) 
    101 { 
    102   $rss .= qq{<foaf:maker> 
    103   <doap:Project> 
    104     <doap:name>} . $self->{software_name} . qq{</doap:name>\n}; 
    105 } 
    106  
    107 if ($self->{software_name} && $self->{software_homepage}) 
    108 { 
    109   $rss .= qq{    <doap:homepage rdf:resource="} . $self->{software_homepage} . qq{" />\n}; 
    110 } 
    111  
    112 if ($self->{software_name} && $self->{software_version}) 
    113 { 
    114   $rss .= qq{    <doap:release> 
     95    if ($self->{software_name}) { 
     96        $rss .= qq{<foaf:maker> 
     97        <doap:Project> 
     98        <doap:name>} . $self->{software_name} . qq{</doap:name>\n}; 
     99    } 
     100 
     101    if ($self->{software_name} && $self->{software_homepage}) { 
     102        $rss .= qq{    <doap:homepage rdf:resource="} . $self->{software_homepage} . qq{" />\n}; 
     103    } 
     104 
     105    if ($self->{software_name} && $self->{software_version}) { 
     106        $rss .= qq{    <doap:release> 
    115107      <doap:Version> 
    116         <doap:revision>} . $self->{software_version} . qq{</doap:revision> 
     108      <doap:revision>} . $self->{software_version} . qq{</doap:revision> 
    117109      </doap:Version> 
    118110    </doap:release>\n}; 
    119 } 
    120  
    121 if ($self->{software_name}) 
    122 { 
    123   $rss .= qq{  </doap:Project> 
     111    } 
     112 
     113    if ($self->{software_name}) { 
     114        $rss .= qq{  </doap:Project> 
    124115</foaf:maker>\n}; 
    125 } 
    126  
    127 $feed_timestamp ||= ''; 
    128  
    129 $rss .= qq{<title>}   . $self->{site_name}             . qq{</title> 
     116    } 
     117 
     118    $feed_timestamp ||= ''; 
     119 
     120    $rss .= qq{<title>}   . $self->{site_name}             . qq{</title> 
    130121<link>}               . $self->{html_equiv_link}       . qq{</link> 
    131122<description>}        . $self->{site_description}      . qq{</description> 
     
    156147 
    157148sub generate_node_list_feed { 
    158   my ($self,$feed_timestamp,@nodes) = @_; 
    159  
    160   # Start our feed 
    161   my $rss = $self->build_feed_start($feed_timestamp); 
    162   $rss .= qq{ 
     149    my ($self,$feed_timestamp,@nodes) = @_; 
     150 
     151    # Start our feed 
     152    my $rss = $self->build_feed_start($feed_timestamp); 
     153    $rss .= qq{ 
    163154 
    164155<channel rdf:about=""> 
    165156 
    166157}; 
    167   $rss .= $self->build_feed_mid($feed_timestamp); 
    168  
    169   # Generate the items list, and the individiual item entries 
    170   my (@urls, @items); 
    171   foreach my $node (@nodes) 
    172   { 
    173     my $node_name = $node->{name}; 
    174  
    175     my $timestamp = $node->{last_modified}; 
     158    $rss .= $self->build_feed_mid($feed_timestamp); 
     159 
     160    # Generate the items list, and the individiual item entries 
     161    my (@urls, @items); 
     162    foreach my $node (@nodes) { 
     163        my $node_name = $node->{name}; 
     164 
     165        my $timestamp = $node->{last_modified}; 
    176166     
    177     # Make a Time::Piece object. 
    178     my $time = Time::Piece->strptime($timestamp, $self->{timestamp_fmt}); 
    179  
    180     my $utc_offset = $self->{utc_offset}; 
     167        # Make a Time::Piece object. 
     168        my $time = Time::Piece->strptime($timestamp, $self->{timestamp_fmt}); 
     169 
     170        my $utc_offset = $self->{utc_offset}; 
    181171     
    182     $timestamp = $time->strftime( "%Y-%m-%dT%H:%M:%S$utc_offset" ); 
    183  
    184     my $author      = $node->{metadata}{username}[0] || $node->{metadata}{host}[0] || ''; 
    185     my $description = $node->{metadata}{comment}[0]  || ''; 
    186  
    187     $description .= " [$author]" if $author; 
    188  
    189     my $version = $node->{version}; 
    190     my $status  = (1 == $version) ? 'new' : 'updated'; 
    191  
    192     my $major_change = $node->{metadata}{major_change}[0]; 
    193        $major_change = 1 unless defined $major_change; 
    194     my $importance = $major_change ? 'major' : 'minor'; 
    195  
    196     my $url = $self->{make_node_url}->($node_name, $version); 
    197  
    198     push @urls, qq{    <rdf:li rdf:resource="$url" />\n}; 
    199  
    200     my $diff_url = ''; 
     172        $timestamp = $time->strftime( "%Y-%m-%dT%H:%M:%S$utc_offset" ); 
     173 
     174        my $author      = $node->{metadata}{username}[0] || $node->{metadata}{host}[0] || ''; 
     175        my $description = $node->{metadata}{comment}[0]  || ''; 
     176 
     177        $description .= " [$author]" if $author; 
     178 
     179        my $version = $node->{version}; 
     180        my $status  = (1 == $version) ? 'new' : 'updated'; 
     181 
     182        my $major_change = $node->{metadata}{major_change}[0]; 
     183        $major_change = 1 unless defined $major_change; 
     184        my $importance = $major_change ? 'major' : 'minor'; 
     185 
     186        my $url = $self->{make_node_url}->($node_name, $version); 
     187 
     188        push @urls, qq{    <rdf:li rdf:resource="$url" />\n}; 
     189 
     190        my $diff_url = ''; 
    201191     
    202     if ($self->{make_diff_url}) 
    203     { 
    204             $diff_url = $self->{make_diff_url}->($node_name); 
    205     } 
    206  
    207     my $history_url = ''; 
     192        if ($self->{make_diff_url}) { 
     193            $diff_url = $self->{make_diff_url}->($node_name); 
     194        } 
     195 
     196        my $history_url = ''; 
    208197     
    209     if ($self->{make_history_url}) 
    210     { 
    211       $history_url = $self->{make_history_url}->($node_name); 
    212     } 
    213  
    214     my $node_url = $self->{make_node_url}->($node_name); 
    215  
    216     my $rdf_url =  $node_url; 
    217        $rdf_url =~ s/\?/\?id=/; 
    218        $rdf_url .= ';format=rdf'; 
    219  
    220     # make XML-clean 
    221     my $title =  $node_name; 
    222        $title =~ s/&/&amp;/g; 
    223        $title =~ s/</&lt;/g; 
    224        $title =~ s/>/&gt;/g; 
    225  
    226     # Pop the categories into dublin core subject elements 
    227     #  (http://dublincore.org/usage/terms/history/#subject-004) 
    228     # TODO: Decide if we should include the "all categories listing" url 
    229     #        as the scheme (URI) attribute? 
    230     my $category_rss = ""; 
    231     if($node->{metadata}->{category}) { 
    232         foreach my $cat (@{ $node->{metadata}->{category} }) { 
    233             $category_rss .= "  <dc:subject>$cat</dc:subject>\n"; 
     198        if ($self->{make_history_url}) { 
     199            $history_url = $self->{make_history_url}->($node_name); 
    234200        } 
    235     } 
    236  
    237     # Include geospacial data, if we have it 
    238     my $geo_rss = $self->format_geo($node->{metadata}); 
    239  
    240     push @items, qq{ 
     201 
     202        my $node_url = $self->{make_node_url}->($node_name); 
     203 
     204        my $rdf_url =  $node_url; 
     205        $rdf_url =~ s/\?/\?id=/; 
     206        $rdf_url .= ';format=rdf'; 
     207 
     208        # make XML-clean 
     209        my $title =  $node_name; 
     210        $title =~ s/&/&amp;/g; 
     211        $title =~ s/</&lt;/g; 
     212        $title =~ s/>/&gt;/g; 
     213 
     214        # Pop the categories into dublin core subject elements 
     215        #  (http://dublincore.org/usage/terms/history/#subject-004) 
     216        # TODO: Decide if we should include the "all categories listing" url 
     217        #        as the scheme (URI) attribute? 
     218        my $category_rss = ""; 
     219        if($node->{metadata}->{category}) { 
     220            foreach my $cat (@{ $node->{metadata}->{category} }) { 
     221                $category_rss .= "  <dc:subject>$cat</dc:subject>\n"; 
     222            } 
     223        } 
     224 
     225        # Include geospacial data, if we have it 
     226        my $geo_rss = $self->format_geo($node->{metadata}); 
     227 
     228        push @items, qq{ 
    241229<item rdf:about="$url"> 
    242230  <title>$title</title> 
     
    255243</item> 
    256244}; 
    257   } 
     245    } 
    258246   
    259   # Output the items list 
    260   $rss .= qq{ 
     247    # Output the items list 
     248    $rss .= qq{ 
    261249 
    262250<items> 
     
    268256}; 
    269257 
    270   # Output the individual item entries 
    271   $rss .= join('', @items) . "\n"; 
    272  
    273   # Finish up 
    274   $rss .= $self->build_feed_end($feed_timestamp); 
     258    # Output the individual item entries 
     259    $rss .= join('', @items) . "\n"; 
     260 
     261    # Finish up 
     262    $rss .= $self->build_feed_end($feed_timestamp); 
    275263  
    276   return $rss;    
     264    return $rss;    
    277265} 
    278266 
     
    288276 
    289277sub generate_node_name_distance_feed { 
    290   my ($self,$feed_timestamp,@nodes) = @_; 
    291  
    292   # Start our feed 
    293   my $rss = $self->build_feed_start($feed_timestamp); 
    294   $rss .= qq{ 
     278    my ($self,$feed_timestamp,@nodes) = @_; 
     279 
     280    # Start our feed 
     281    my $rss = $self->build_feed_start($feed_timestamp); 
     282    $rss .= qq{ 
    295283 
    296284<channel rdf:about=""> 
    297285 
    298286}; 
    299   $rss .= $self->build_feed_mid($feed_timestamp); 
    300  
    301   # Generate the items list, and the individiual item entries 
    302   my (@urls, @items); 
    303   foreach my $node (@nodes) 
    304   { 
    305     my $node_name = $node->{name}; 
    306  
    307     my $url = $self->{make_node_url}->($node_name); 
    308  
    309     push @urls, qq{    <rdf:li rdf:resource="$url" />\n}; 
    310  
    311     my $rdf_url =  $url; 
    312        $rdf_url =~ s/\?/\?id=/; 
    313        $rdf_url .= ';format=rdf'; 
    314  
    315     # make XML-clean 
    316     my $title =  $node_name; 
    317        $title =~ s/&/&amp;/g; 
    318        $title =~ s/</&lt;/g; 
    319        $title =~ s/>/&gt;/g; 
    320  
    321     # What location stuff do we have? 
    322     my $geo_rss = $self->format_geo($node); 
    323  
    324     push @items, qq{ 
     287    $rss .= $self->build_feed_mid($feed_timestamp); 
     288 
     289    # Generate the items list, and the individiual item entries 
     290    my (@urls, @items); 
     291    foreach my $node (@nodes) { 
     292        my $node_name = $node->{name}; 
     293 
     294        my $url = $self->{make_node_url}->($node_name); 
     295 
     296        push @urls, qq{    <rdf:li rdf:resource="$url" />\n}; 
     297 
     298        my $rdf_url =  $url; 
     299        $rdf_url =~ s/\?/\?id=/; 
     300        $rdf_url .= ';format=rdf'; 
     301 
     302        # make XML-clean 
     303        my $title =  $node_name; 
     304        $title =~ s/&/&amp;/g; 
     305        $title =~ s/</&lt;/g; 
     306        $title =~ s/>/&gt;/g; 
     307 
     308        # What location stuff do we have? 
     309        my $geo_rss = $self->format_geo($node); 
     310 
     311        push @items, qq{ 
    325312<item rdf:about="$url"> 
    326313  <title>$title</title> 
     
    330317</item> 
    331318}; 
    332   } 
     319    } 
    333320   
    334   # Output the items list 
    335   $rss .= qq{ 
     321    # Output the items list 
     322    $rss .= qq{ 
    336323 
    337324<items> 
     
    343330}; 
    344331 
    345   # Output the individual item entries 
    346   $rss .= join('', @items) . "\n"; 
    347  
    348   # Finish up 
    349   $rss .= $self->build_feed_end($feed_timestamp); 
     332    # Output the individual item entries 
     333    $rss .= join('', @items) . "\n"; 
     334 
     335    # Finish up 
     336    $rss .= $self->build_feed_end($feed_timestamp); 
    350337  
    351   return $rss;    
     338    return $rss;    
    352339} 
    353340 
     
    363350 
    364351    my $time; 
    365     if ($newest_node->{last_modified}) 
    366     { 
     352    if ($newest_node->{last_modified}) { 
    367353        $time = Time::Piece->strptime( $newest_node->{last_modified}, $self->{timestamp_fmt} ); 
    368354    } else { 
     
    522508                     'About This Wiki', 
    523509                     'blah blah blah', 
    524                                  $checksum, 
    525                            { 
    526                        comment  => 'Stub page, please update!', 
    527                                    username => 'Fred', 
    528                      } 
     510                         $checksum, 
     511                         { 
     512                           comment  => 'Stub page, please update!', 
     513                           username => 'Fred', 
     514                         } 
    529515  ); 
    530516