Add w3mdict.cgi to use a dictd dictionary query
Bug-Debian: https://github.com/tats/w3m/issues/30
This commit is contained in:
committed by
Tatsuya Kinoshita
parent
065461d949
commit
d831d7dcb2
56
scripts/w3mdict.cgi
Executable file
56
scripts/w3mdict.cgi
Executable file
@@ -0,0 +1,56 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# w3mdict.cgi - A dictd dictionary query cgi for w3m
|
||||||
|
#
|
||||||
|
# REQUIREMENTS:
|
||||||
|
# + dict client software
|
||||||
|
# + an address of a dict server, for variable ${DICT_SERVER}
|
||||||
|
# + a name of a favorite database on that server, for variable
|
||||||
|
# ${FAVORITE_DATABASE}
|
||||||
|
# OPTIONALLY:
|
||||||
|
# + locally install a dict server (eg. dictd) and a collection
|
||||||
|
# of dict databases (eg. wordnet, aka "wn")
|
||||||
|
|
||||||
|
DICT_SERVER="localhost"
|
||||||
|
FAVORITE_DATABASE="wn"
|
||||||
|
RETURN_MESSAGE="\n\nPress 'B' to return to the previous page."
|
||||||
|
printf "Content-type: text/plain\n"
|
||||||
|
type dict \
|
||||||
|
|| {
|
||||||
|
# Originally, we inconsiderately failed silently ...
|
||||||
|
# printf "W3m-control: BACK\n\n"
|
||||||
|
printf "\n\nERROR: dict client software not found${RETURN_MESSAGE}"
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
# First, we check only our best and favorite database. This is most
|
||||||
|
# likely to give us a best defintion, and avoids displaying a long and
|
||||||
|
# cluttered page with entries from many databases.
|
||||||
|
dict --host "${DICT_SERVER}" \
|
||||||
|
--database "${FAVORITE_DATABASE}" \
|
||||||
|
"${QUERY_STRING}" 2>&1 \
|
||||||
|
&& {
|
||||||
|
printf "${RETURN_MESSAGE}"
|
||||||
|
} \
|
||||||
|
|| {
|
||||||
|
# The initial attempt failed, so let's search ALL databases
|
||||||
|
# available on the server.
|
||||||
|
dict --host "${DICT_SERVER}" \
|
||||||
|
"${QUERY_STRING}" 2>&1 \
|
||||||
|
&& {
|
||||||
|
printf "${RETURN_MESSAGE}"
|
||||||
|
} \
|
||||||
|
|| {
|
||||||
|
# No defintions were found in any of the server's databases, so
|
||||||
|
# let's return to the favorite database in order to retrieve its
|
||||||
|
# guess of what we meant to type. Originally, for this case, we
|
||||||
|
# pushed the user's default action to be entering another word for
|
||||||
|
# a dict defintion, so the print command was:
|
||||||
|
# printf "W3m-control: DICT_WORD\n\n"
|
||||||
|
# Now, we need only print a blank line to separate the cgi header
|
||||||
|
# from the page content.
|
||||||
|
printf "\n"
|
||||||
|
dict --host "${DICT_SERVER}" \
|
||||||
|
--database "${FAVORITE_DATABASE}" \
|
||||||
|
"${QUERY_STRING}" 2>&1
|
||||||
|
printf "${RETURN_MESSAGE}"
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user