Monday, August 16, 2010

Script for dictionary lookup

#!/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

No comments:

OK GOOGLE on Samsung Galaxy S7 doesn’t work

To make Ok Google detection work on Galaxy S7 (Galaxy series phones) we need to perform a couple of steps. 1. As long as Samsung S vo...