Changeset 510


Ignore:
Timestamp:
Sep 20, 2004, 10:38:51 PM (17 years ago)
Author:
kake
Message:

Fixed RSS macro.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Changes

    r509 r510  
    99          for details).
    1010        Added new macro - used as eg @INDEX_LIST [[Locale Fulham]]
     11        Also fixed the RSS reader macro - use this as eg
     12          @RSS http://london.openguides.org/?action=rss;username=Kake
    1113
    12140.40    18 September 2004
  • trunk/lib/OpenGuides/Utils.pm

    r509 r510  
    127127             sub {
    128128                   my ($wiki, $type, $value) = @_;
    129                    my @nodes = $wiki->list_nodes_by_metadata(
     129                   my @nodes = sort $wiki->list_nodes_by_metadata(
    130130                       metadata_type  => $type,
    131131                       metadata_value => $value,
     
    147147                   return $return;
    148148                 },
    149         qr/\@RSS\s+\[(.*?)\]/ => sub {
    150                                        my $wiki = shift;
    151                                       # Get the URL. It's already been formatted into a
    152                                       # hyperlink so we need to reverse that.
    153                                       my $url_raw = $_[0];
    154                                       $url_raw =~ />(.*?)</;
    155                                       my $url = $1;
    156 
    157                                       # Retrieve the RSS from the given URL.
    158                                       my $rss = CGI::Wiki::Plugin::RSS::Reader->new(url => $url);
    159                                       my @items = $rss->retrieve;
    160 
    161                                       # Ten items only at this till.
    162                                       $#items = 10 if $#items > 10;
    163 
    164                                       # Make an HTML list with them.
    165                                       my $list  = "<ul>\n";
    166                                       foreach (@items)
    167                                       {
    168                                         my $link  = $_->{link};
    169                                         my $title = $_->{title};
    170                                         $list .= qq{\t<li><a href="$link">$title</a></li>\n};
    171                                       }
    172                                       $list .= "</ul>\n";
    173                                     }
     149        qr/\@RSS\s+(.+)/ => sub {
     150                    my ($wiki, $url) = @_;
     151
     152                    # The URL will already have been processed as an inline
     153                    # link, so transform it back again.
     154                    if ( $url =~ m/href="([^"]+)/ ) {
     155                        $url = $1;
     156                    }
     157
     158                    my $rss = CGI::Wiki::Plugin::RSS::Reader->new(url => $url);
     159                    my @items = $rss->retrieve;
     160
     161                    # Ten items only at this till.
     162                    $#items = 10 if $#items > 10;
     163
     164                    # Make a UseMod-formatted list with them - macros are
     165                    # processed *before* UseMod formatting is applied but
     166                    # *after* inline links like [http://foo/ bar]
     167                    my $list = "\n";
     168                    foreach (@items) {
     169                        my $link  = $_->{link};
     170                        my $title = $_->{title};
     171                        $list .= qq{* <a href="$link">$title</a>\n};
     172                    }
     173                    $list .= "</ul>\n";
     174        },
    174175    );
    175176
Note: See TracChangeset for help on using the changeset viewer.