/[Grep]/lib/Grep/Action/Fetch.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /lib/Grep/Action/Fetch.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 5 by dpavlin, Sat Feb 17 18:06:42 2007 UTC revision 7 by dpavlin, Sat Feb 17 21:22:17 2007 UTC
# Line 24  use Jifty::Action schema { Line 24  use Jifty::Action schema {
24    
25          param feed =>          param feed =>
26                  label is 'From feed',                  label is 'From feed',
27                  render as 'combobox',                  render as 'select',
28                  available are defer {                  available are defer {
29                          my $feeds = Grep::Model::FeedCollection->new;                          my $feeds = Grep::Model::FeedCollection->new;
30                          $feeds->order_by({ column => 'title', order => 'ASC' });                          $feeds->order_by({ column => 'title', order => 'ASC' });
# Line 63  sub take_action { Line 63  sub take_action {
63                  return 0;                  return 0;
64          }          }
65    
66          Jifty->log->info("Fetching ", $feed->title, " from ", $feed->uri);          my $uri = $feed->uri;
67            if ($uri =~ m/%s/) {
68                    $uri = sprintf( $uri, $self->argument_value('q') );
69                    Jifty->log->info("Searching ", $feed->title, " at $uri");
70            } else {
71                    Jifty->log->info("Fetching ", $feed->title, " at $uri");
72            }
73    
74          my $xml_feed = XML::Feed->parse( URI->new( $feed->uri ) )          my $xml_feed = XML::Feed->parse( URI->new($uri) )
75                  or die XML::Feed->errstr;                  or die XML::Feed->errstr;
76    
77          warn "fetching ", $xml_feed->title, "\n";          warn "fetching ", $xml_feed->title, "\n";
78    
79            my @results;
80    
81          for my $entry ($xml_feed->entries) {          for my $entry ($xml_feed->entries) {
82                  my $i = Grep::Model::Item->new();                  my $i = Grep::Model::Item->new();
83    
# Line 84  sub take_action { Line 93  sub take_action {
93                          modified => $entry->modified ? $entry->modified->strftime("%Y-%m-%d %H:%M:%S %z") : undef,                          modified => $entry->modified ? $entry->modified->strftime("%Y-%m-%d %H:%M:%S %z") : undef,
94                  );                  );
95    
96                  Jifty->log->debug("entry = ",dump( $entry ) );                  die "can't create item from entry ", dump( $entry ) unless ( $i->id );
97    
98                    push @results, $i->id;
99    
100                    Jifty->log->debug("item ", $i->id, " = ",dump( $entry ) );
101          }          }
102    
103      $self->result->message('Success') if not $self->result->failure;          if ( @results ) {
104        
105      return 1;                  $self->result->message( $self->argument_value('q') . ' => ' .
106                            $xml_feed->entries . ' items: ' . join(",", @results)
107                    );
108    
109                    $self->result->content( results => \@results );
110                    return 1;
111    
112            } else {
113    
114                    $self->result->message( 'No results for ' . $self->argument_value('q') );
115                    return 0;
116            }
117  }  }
118    
119  1;  1;

Legend:
Removed from v.5  
changed lines
  Added in v.7

  ViewVC Help
Powered by ViewVC 1.1.26