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


App-SocialSKK documentation Contained in the App-SocialSKK distribution.

Index


Code Index:

NAME

Top

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

SYNOPSIS

Top

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

DESCRIPTION

Top

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

SEE ALSO

Top

* Wikipedia

http://ja.wikipedia.org/

AUTHOR

Top

Kentaro Kuribayashi <kentaro@cpan.org>


App-SocialSKK documentation Contained in the App-SocialSKK distribution.

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__