aboutsummaryrefslogtreecommitdiffstats
path: root/Bonus/goodict.cgi
blob: 5106c8907a70f6d40a8696efb797634cc0b882e1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/usr/bin/perl

# ~/.w3m/urimethodmap
# e:      file:/cgi-bin/goodict.cgi?%s
# w:      file:/cgi-bin/goodict.cgi?%s
# j:      file:/cgi-bin/goodict.cgi?%s

use Encode;
use Encode::Guess qw/euc-jp utf8/;
#$mode = 0; # substring
$mode = 1;  # perfect match
#$mode = 3; # search body text
$url = "http://dictionary.goo.ne.jp";
$_ = $ENV{"QUERY_STRING"};
if (/^e:/) {
    $kind = 'ej';
} elsif (/^w:/) {
    $kind = 'je';
} elsif (/^j:/) {
    $kind = 'jn';
}
s@^[ewjs]:@@ && s@^//@@ && s@/$@@;
if ($_) {
	s/\+/ /g;
	s/%([\da-f][\da-f])/pack('C', hex($1))/egi;
	$_ = encode("utf8", decode("Guess", $_));
	s/[\000-\040\+:#?&%<>"\177-\377]/sprintf('%%%02X', unpack('C', $&))/eg;
	$url .= "/search.php?MT=$_&kind=$kind&mode=$mode";
} else {
	$input = "w3m-control: GOTO_LINK";
}
print <<EOF;
w3m-control: GOTO $url
w3m-control: DELETE_PREVBUF
w3m-control: SEARCH \\[
w3m-control: MOVE_RIGHT
${input}

EOF