書いてみました。curlでサービスにアクセス、awkやsedでパース、w3mで出力しています。
件のサービスは例文が豊富で愛用しています。
・辞書データーを買うほどヘビーに使わない
・WEBブラウザーを開く手間が惜しい
そんなニッチ用途に。
※2009年9月に、UserAgentが空(curl -A '' )だとALCが無条件に「現在アクセスが集中しております。」と返答する仕様に変わったようです。UserAgentを指定するようにコードを変えました。(2009-10-2)
eijiro
#!/bin/sh
## prog
PROG=`basename $0`
## check cmd
LIST="mktemp curl w3m"
for CMD in $LIST ;do
TEST_CMD=`which $CMD`
if [ -z "$TEST_CMD" ] ;then
echo "$PROG: Error: we need command \"$CMD\"" >&2
exit 1
fi
done
## usage
function my_usage {
echo "usage: $PROG <word>"
exit 1
}
## init
### arg
if [ -z "$1" ] ;then
my_usage
fi
KEY=`echo "$1" |sed 's/ /+/g'`
### dir and file
DIR_TMP=`mktemp -d /tmp/$PROG.XXXXXXXXXX`
FILE_SRC=$DIR_TMP/src
FILE_CUT=$DIR_TMP/cut
FILE_MOD=$DIR_TMP/mod
DIR_HOME="$HOME"/.$PROG
if [ ! -d "$DIR_HOME" ] ;then
mkdir "$DIR_HOME"
fi
FILE_CACHE="$DIR_HOME"/"$KEY"
### function
function my_exit {
#echo $DIR_TMP ## debug
rm -r $DIR_TMP
exit $1
}
### environment
export LANG=ja_JP.UTF-8
## body
if [ -r "$FILE_CACHE" ] ;then
echo "Warning: cache file exists for \"$KEY\". don't use curl" >&2
echo "---" >&2
cat "$FILE_CACHE"
my_exit 0
fi
UA='Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)'
URL=http://eow.alc.co.jp/"$KEY"/UTF-8/
curl -Ss -m 10 --compressed -A "$UA" "$URL" -o $FILE_SRC
TEST_SRC=$?
if [ $TEST_SRC -ne 0 ] ;then
echo "$PROG: Error: can't get source $URL" >&2
my_exit 1
fi
NUMS=(`grep -n '<\/\?li>' $FILE_SRC |awk -F: '{print $1}'`)
awk "NR >= ${NUMS[0]} && NR <= ${NUMS[${#NUMS[*]} - 1]}" $FILE_SRC >$FILE_CUT
sed -e 's/<span class="midashi">/* /g' -e 's/<ol>/<br>/g' -e 's/<\/ol>//g' -e 's/<\/div>/<\/div><br>/g' $FILE_CUT >$FILE_MOD
w3m -dump -T text/html -cols 100 $FILE_MOD |tee "$FILE_CACHE"
## end
my_exit 0
$ eijiro '英和・和英したい言葉'
と実行して使ってます。
このスクリプトを、さらに以下のスクリプト経由で別のターミナル(xterm)に表示して使っています。
x-eijiro
#!/bin/sh
xterm -geometry 100x64+0+0 -bg grey90 -T eijiro -e "eval eijiro \'$@\' 2>&1 |less -m"
スクリーンショット
「置き去り」を和英したときのスクリーンショットです。
$ x-eijiro '置き去り'
と実行しています。改めて思うに"置きざり"はすごくネガティブワードです…
他情報
英辞郎を利用するFirefoxの機能拡張や検索pluginをつくってる方がいらっしゃるみたい。
機能拡張
Mouseover Dictionary
http://maru.bonyari.jp/mouseoverdictionary/
英辞郎ローカル辞書データー(2,000円)が必要になるようです。
検索plugin
KOMOREBI || blog
http://www.freesia.org/archives/2006/01/firefox.html
アルク社の規約で制限されているため公開を取りやめられたようです。
環境
OS: Linux
debian-lenny