Changeset 232 for server


Ignore:
Timestamp:
12/30/10 11:16:52 (13 years ago)
Author:
nanardon
Message:
  • resurect Chat 'q' command
Location:
server/trunk/web
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • server/trunk/web/lib/Sophie/Controller/Chat/Cmd.pm

    r208 r232  
    163163} 
    164164 
     165=head2 q REGEXP 
     166 
     167Search rpm name matching C<REGEXP>. 
     168 
     169NB: C<.>, C<*>, C<+> have special meaning 
     170and have to be escaped. 
     171 
     172=cut 
     173 
     174sub q : XMLRPC { 
     175    my ($self, $c, $reqspec, @args) = @_; 
     176 
     177    $reqspec->{src} = 0; 
     178 
     179    @args = @{ $c->forward('_getopt', [ 
     180        { 
     181            'd=s' => \$reqspec->{distribution}, 
     182            'v=s' => \$reqspec->{release}, 
     183            'a=s' => \$reqspec->{arch}, 
     184            's'   => sub { $reqspec->{src} = 1 }, 
     185        }, @args ]) }; 
     186 
     187    my $res = $c->forward('/search/tags/name_regexp', $reqspec, $args[0]); 
     188    if (!@{ $res }) { 
     189        return $c->stash->{xmlrpc} = { 
     190            message => [ 'Nothing match `' . $args[0] . '\'' ] 
     191        }; 
     192    } else { 
     193        my @message = 'rpm name matching `' . $args[0] . '\':'; 
     194        while (@{ $res }) { 
     195            my $str = ''; 
     196            do { 
     197                my $item = shift(@{ $res }) or last; 
     198                $str .= ', ' if ($str); 
     199                $str .= $item->{name}; 
     200            } while (length($str) < 70); 
     201            push(@message, $str); 
     202        } 
     203        return $c->stash->{xmlrpc} = { 
     204            message => \@message, 
     205        }; 
     206    } 
     207} 
     208 
    165209=head2 version [-s] NAME 
    166210 
  • server/trunk/web/lib/Sophie/Controller/Search/Rpm.pm

    r148 r232  
    143143} 
    144144 
    145 sub fuzzy : XMLRPCPath('fuzzy') { 
     145sub fuzzy : Private { 
    146146    my ($self, $c, $searchspec, $name) = @_; 
    147     $searchspec ||= {}; 
    148  
    149     my $deprs = $c->model('Base')->resultset('Deps')->search( 
    150         { deptype => 'P', depname => { '~*' => $name } } 
    151     )->get_column('pkgid'); 
     147    $c->forward('fuzzy_rpc', [ $searchspec, $name ]); 
     148    $c->stash->{xmlrpc} =  
     149        [ $c->stash->{rs}->get_column('pkgid')->all ]; 
     150} 
     151 
     152sub fuzzy_rpc : XMLRPCPath('fuzzy') { 
     153    my ($self, $c, $searchspec, $name) = @_; 
     154    $searchspec ||= {}; 
     155 
     156    # my $deprs = $c->model('Base')->resultset('Deps')->search( 
     157    #    { deptype => 'P', depname => { '~*' => $name } } 
     158    # )->get_column('pkgid'); 
    152159    my $distrs = $c->forward('/search/distrib_search', [ $searchspec, 1 ]); 
    153160 
  • server/trunk/web/t/controller_Search-Rpms.t

    r149 r232  
    66BEGIN { use_ok 'Sophie::Controller::Search::Rpms' } 
    77 
    8 # ok( request('/search/rpms')->is_success, 'Request should succeed' ); 
    98done_testing(); 
Note: See TracChangeset for help on using the changeset viewer.