#!/usr/local/bin/perl # # $Id: yjhits.cgi,v 0.1 2009/02/27 13:53:34 dankogai Exp dankogai $ # use strict; use warnings; use CGI; use CGI qw/fatalsToBrowser/; use URI; use LWP::UserAgent; use JSON::Syck; my $appid = 'dankogai.api'; my $apiroot = 'http://api.search.yahoo.co.jp/WebSearchService/V1/webSearch'; my $q = CGI->new; die $ENV{SCRIPT_NAME} . '?c=callback&s=ja.utf-8(&s=...)' if !$q->param('s'); my $ua = LWP::UserAgent->new(); my $uri = URI->new($apiroot); my $callback = $q->param('c') || 'yjhits'; my %query = (); for my $str ($q->param('s')){ next if exists $query{$str}; # avoid dupes $uri->query_form( appid => $appid, results => 1, query => $str, ); my $res = $ua->get($uri); die $res->status_line if !$res->is_success; my ($tra) = ($res->content =~ m{totalResultsAvailable="(\d+)"}o); $query{$str} = $tra || 0; } print $q->header( -type => 'application/x-javascript; charset=utf-8', ), $callback, "(", JSON::Syck::Dump(\%query), ");\n";