Group
Extension

App-SocialSKK/lib/App/SocialSKK/Plugin/Wikipedia.pm

package App::SocialSKK::Plugin::Wikipedia;
use strict;
use warnings;
use URI;
use URI::QueryParam;
use URI::Escape;
use JSON::Syck;
use Jcode;
use Encode::JavaScript::UCS;
use base qw(App::SocialSKK::Plugin);

sub get_candidates {
    my ($self, $text) = @_;
    return if ($text || '') eq '';

    $text = Jcode->new($text, 'euc')->utf8;
    my $uri  = URI->new('http://ja.wikipedia.org/w/api.php');
       $uri->query_param(action    => 'opensearch');
       $uri->query_param(namespace => 0);
       $uri->query_param(search    => $text);
    my $res = $self->ua->get($uri);
    if ($res->is_success) {
        my $array = JSON::Syck::Load($res->content);
        map {
            my $text = Encode::JavaScript::UCS::decode('JavaScript-UCS', $_);
               $text = Jcode->new($text, 'utf8')->euc;
        } @{$array->[-1]};
    }
}

1;

__END__

=head1 NAME

App::SocialSKK::Plugin::Wikipedia - Retrieves Candidates from
Wikipedia

=head1 SYNOPSIS

  # Add a line like below into your .socialskk:
  plugins:
    - name: Wikipedia

=head1 DESCRIPTION

App::SocialSKK::Plugin::Wikipedia performs retrieval of candidates
from Wikipedia suggest API.

=head1 SEE ALSO

=over 4

=item * Wikipedia

http://ja.wikipedia.org/

=back

=head1 AUTHOR

Kentaro Kuribayashi E<lt>kentaro@cpan.orgE<gt>


Powered by Groonga
Maintained by Kenichi Ishigaki <ishigaki@cpan.org>. If you find anything, submit it on GitHub.