#!/bin/bash
# dictionary v1.5.5 - to dump dictionary outputs from the web. Uses the google dictionary but can be used for any other online dictionary.
# Needs lynx to work.
# by JOnes ( August 16, 2010 )
# ANSI Color -- use these variables to easily have different color
# and format output. Make sure to output the reset sequence after
# colors (f = foreground, b = background), and use the 'off'
# feature for anything you turn on.
initializeANSI()
{
esc=" "
blackf="${esc}[30m"; redf="${esc}[31m"; greenf="${esc}[32m"
yellowf="${esc}[33m" bluef="${esc}[34m"; purplef="${esc}[35m"
cyanf="${esc}[36m"; whitef="${esc}[37m"
blackb="${esc}[40m"; redb="${esc}[41m"; greenb="${esc}[42m"
yellowb="${esc}[43m" blueb="${esc}[44m"; purpleb="${esc}[45m"
cyanb="${esc}[46m"; whiteb="${esc}[47m"
boldon="${esc}[1m"; boldoff="${esc}[22m"
italicson="${esc}[3m"; italicsoff="${esc}[23m"
ulon="${esc}[4m"; uloff="${esc}[24m"
invon="${esc}[7m"; invoff="${esc}[27m"
reset="${esc}[0m"
}
# note in this first use that switching colors doesn't require a reset
# first - the new color overrides the old one.
initializeANSI
echo -e "\n dictionary v1.5.5 - to dump dictionary outputs from the web. Uses the google dictionary but can be used for any other online dictionary.\n by JOnes ( August 16, 2010 )"
# check if lynx is installed
if [ `which lynx` == "" ] ; then
echo -e " Install for this script to work.\n\n Exiting ......\n"
exit 1
fi
# check if user supplied the word
if [ "$1" == "" ] ; then
echo -e "\n ${redf}${boldon}ERROR : Did not supply a word. ${boldoff}${reset}\n\n ${greenf}Usage: dictionary-lookup ${reset}\n\n Exiting ......\n"
exit 1
else
word=$1
fi
# check if user provided filename otherwise use default
if [ "$2" == "" ] ; then
echo -e "\n ${redf}${boldon}Did not supply a file name. \n Using default : dictionary-wordlist${boldoff}${reset}\n\n ${greenf}Usage: dictionary-lookup ${reset}\n"
filename1="dictionary-wordlist"
else
filename1=$2
fi
# check if the word meaning is already present in the file
existingword=`cat $filename1 | grep $word`
if [ "$existingword" == "" ] ; then
lynx -dump "http://www.google.com/dictionary?aq=f&langpair=en|en&q=$word&hl=en" > .tmp-dic1
word1="|"$word"|"
cat .tmp1 | awk "/Dictionary/,/©2009/" | grep -v "Search Dictionary" | grep -v "Google Home" | sed 's/listen//' | sed 's/...]//' > .tmp-dic2
# check if there are no dictionary definitions were found.
crapword=`cat .tmp2 | grep "No dictionary definitions were found"`
if [ "$crapword" == "" ] ; then
echo $word1 >> $filename1
cat .tmp2 >> $filename1
echo -e "\n Output written to default output file : dictionary-wordlist\n"
else
echo -e "\n ${cyanb}${boldon} $crapword ${boldoff}${reset}\n"
fi
else
echo -e " Word exists in the file ..."
fi
# if temporary files exist then remove them
if [ -f .tmp-dic1 ];
then
rm .tmp-dic1
fi
if [ -f .tmp-dic2 ];
then
rm .tmp-dic2
fi
# dictionary v1.5.5 - to dump dictionary outputs from the web. Uses the google dictionary but can be used for any other online dictionary.
# Needs lynx to work.
# by JOnes ( August 16, 2010 )
# ANSI Color -- use these variables to easily have different color
# and format output. Make sure to output the reset sequence after
# colors (f = foreground, b = background), and use the 'off'
# feature for anything you turn on.
initializeANSI()
{
esc=" "
blackf="${esc}[30m"; redf="${esc}[31m"; greenf="${esc}[32m"
yellowf="${esc}[33m" bluef="${esc}[34m"; purplef="${esc}[35m"
cyanf="${esc}[36m"; whitef="${esc}[37m"
blackb="${esc}[40m"; redb="${esc}[41m"; greenb="${esc}[42m"
yellowb="${esc}[43m" blueb="${esc}[44m"; purpleb="${esc}[45m"
cyanb="${esc}[46m"; whiteb="${esc}[47m"
boldon="${esc}[1m"; boldoff="${esc}[22m"
italicson="${esc}[3m"; italicsoff="${esc}[23m"
ulon="${esc}[4m"; uloff="${esc}[24m"
invon="${esc}[7m"; invoff="${esc}[27m"
reset="${esc}[0m"
}
# note in this first use that switching colors doesn't require a reset
# first - the new color overrides the old one.
initializeANSI
echo -e "\n dictionary v1.5.5 - to dump dictionary outputs from the web. Uses the google dictionary but can be used for any other online dictionary.\n by JOnes ( August 16, 2010 )"
# check if lynx is installed
if [ `which lynx` == "" ] ; then
echo -e " Install
exit 1
fi
# check if user supplied the word
if [ "$1" == "" ] ; then
echo -e "\n ${redf}${boldon}ERROR : Did not supply a word. ${boldoff}${reset}\n\n ${greenf}Usage: dictionary-lookup
exit 1
else
word=$1
fi
# check if user provided filename otherwise use default
if [ "$2" == "" ] ; then
echo -e "\n ${redf}${boldon}Did not supply a file name. \n Using default : dictionary-wordlist${boldoff}${reset}\n\n ${greenf}Usage: dictionary-lookup
filename1="dictionary-wordlist"
else
filename1=$2
fi
# check if the word meaning is already present in the file
existingword=`cat $filename1 | grep $word`
if [ "$existingword" == "" ] ; then
lynx -dump "http://www.google.com/dictionary?aq=f&langpair=en|en&q=$word&hl=en" > .tmp-dic1
word1="|"$word"|"
cat .tmp1 | awk "/Dictionary/,/©2009/" | grep -v "Search Dictionary" | grep -v "Google Home" | sed 's/listen//' | sed 's/...]//' > .tmp-dic2
# check if there are no dictionary definitions were found.
crapword=`cat .tmp2 | grep "No dictionary definitions were found"`
if [ "$crapword" == "" ] ; then
echo $word1 >> $filename1
cat .tmp2 >> $filename1
echo -e "\n Output written to default output file : dictionary-wordlist\n"
else
echo -e "\n ${cyanb}${boldon} $crapword ${boldoff}${reset}\n"
fi
else
echo -e " Word exists in the file ..."
fi
# if temporary files exist then remove them
if [ -f .tmp-dic1 ];
then
rm .tmp-dic1
fi
if [ -f .tmp-dic2 ];
then
rm .tmp-dic2
fi
Comments