add dictionary and speller
This commit is contained in:
		
							parent
							
								
									66f81cf5eb
								
							
						
					
					
						commit
						04153c29be
					
				@ -74,16 +74,10 @@ function cecho(){
 | 
			
		||||
    On_ICyan='\033[0;106m'    # Cyan
 | 
			
		||||
    On_IWhite='\033[0;107m'   # White
 | 
			
		||||
 | 
			
		||||
    #RED="\033[0;31m"
 | 
			
		||||
    #GREEN="\033[0;32m"  # <-- [0 means not bold
 | 
			
		||||
    #YELLOW="\033[1;33m" # <-- [1 means bold
 | 
			
		||||
    #CYAN="\033[1;36m"
 | 
			
		||||
    # ... Add more colors if you like
 | 
			
		||||
 | 
			
		||||
    NC="\033[0m" # No Color
 | 
			
		||||
 | 
			
		||||
    # printf "${(P)1}${2} ${NC}\n" # <-- zsh
 | 
			
		||||
    printf "${!1}${!2}${3} ${NC}\n" # <-- bash
 | 
			
		||||
    printf "${!1}${!2}${3}${NC}\n" # <-- bash
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
if [ -z "$1" ] 
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										24
									
								
								scripts/dictionary
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										24
									
								
								scripts/dictionary
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,24 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
 | 
			
		||||
mkdir -p "${HOME}"/.local/tmp
 | 
			
		||||
 | 
			
		||||
searchterm=$(zenity --entry --text "Enter word to define" --title "Dictionary" 2> /dev/null);
 | 
			
		||||
dict -h localhost -d gcide "${searchterm}" > "${HOME}"/.local/tmp/"${searchterm}".txt 2>&1
 | 
			
		||||
 | 
			
		||||
content=$(cat "${HOME}"/.local/tmp/"${searchterm}".txt);
 | 
			
		||||
 | 
			
		||||
if [[ "${content}" == *"No definitions found"* ]]; then
 | 
			
		||||
    icon=""${HOME}"/.local/bin/img/caution-48.png"
 | 
			
		||||
else
 | 
			
		||||
    icon=""${HOME}"/.local/bin/img/checkmark-32.png"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
zenity --text-info \
 | 
			
		||||
    --window-icon="${icon}" \
 | 
			
		||||
    --filename="${HOME}"/.local/tmp/"${searchterm}".txt \
 | 
			
		||||
    --font="IBM Plex Mono Medium 11" \
 | 
			
		||||
    --width=750 \
 | 
			
		||||
    --height=600 2> /dev/null
 | 
			
		||||
 | 
			
		||||
sleep 0.5
 | 
			
		||||
rm -rf "${HOME}"/.local/tmp/"${searchterm}".txt
 | 
			
		||||
							
								
								
									
										35
									
								
								scripts/spchk
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										35
									
								
								scripts/spchk
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,35 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
 | 
			
		||||
function parseResults() {
 | 
			
		||||
    oIFS=$IFS
 | 
			
		||||
    IFS=":"
 | 
			
		||||
    declare -a fields=($1)
 | 
			
		||||
 | 
			
		||||
    export QUERYTERM=$(echo "${fields[0]}"|awk '{print $1}');
 | 
			
		||||
    export LISTCOUNT=$(echo "${fields[0]}"|awk '{print $2}');
 | 
			
		||||
    export WORDLIST=$(echo "${fields[1]}"|sed 's/^\s*\|\s*$//g');
 | 
			
		||||
 | 
			
		||||
    IFS=$oIFS
 | 
			
		||||
    unset oIFS
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
if [ $# -eq 0 ]; then
 | 
			
		||||
    >&2 echo "Please provide a word for spell checking. Include quotes."
 | 
			
		||||
    exit 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [[ "$1" =~ ^[0-9]+$ ]]; then
 | 
			
		||||
    cecho IWhite On_IRed "ERROR. Only Words Please. No Numbers!"
 | 
			
		||||
    exit 1;
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
export RESULT=$(echo "$@"|aspell -a|sed "1 d"); # Deletes the header line
 | 
			
		||||
export FIXED="${RESULT/& }" # Removes ampersand causing parsing errors.
 | 
			
		||||
 | 
			
		||||
if [[ "${FIXED}" == *"*"* ]]; then
 | 
			
		||||
    cecho IBlack On_IGreen "CORRECT!"
 | 
			
		||||
else
 | 
			
		||||
    parseResults "${FIXED}"
 | 
			
		||||
    cecho IBlack On_IRed "INCORRECT!"
 | 
			
		||||
    cecho Black On_Yellow "There are ${LISTCOUNT} suggested corrections for '${QUERYTERM}': ${WORDLIST}. " 
 | 
			
		||||
fi
 | 
			
		||||
							
								
								
									
										47
									
								
								scripts/speller
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										47
									
								
								scripts/speller
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,47 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
 | 
			
		||||
function parseResults() {
 | 
			
		||||
    oIFS=$IFS
 | 
			
		||||
    IFS=":"
 | 
			
		||||
    declare -a fields=($1)
 | 
			
		||||
 | 
			
		||||
    export QUERYTERM=$(echo "${fields[0]}"|awk '{print $1}');
 | 
			
		||||
    export LISTCOUNT=$(echo "${fields[0]}"|awk '{print $2}');
 | 
			
		||||
    export WORDLIST=$(echo "${fields[1]}"|sed 's/^\s*\|\s*$//g');
 | 
			
		||||
 | 
			
		||||
    IFS=$oIFS
 | 
			
		||||
    unset oIFS
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
searchterm=$(zenity --entry --text="Enter search term:" --title="Speller" --width=300 --height=40 2> /dev/null);
 | 
			
		||||
 | 
			
		||||
if [ -z "${searchterm}" ] | [ "${searchterm}" == " " ]; then
 | 
			
		||||
    zenity --info --text="<b>ERROR</b> No search term provided!"\
 | 
			
		||||
        --icon-name=error \
 | 
			
		||||
        --window-icon="${HOME}/.local/bin/img/xmark.png" 2> /dev/null
 | 
			
		||||
    exit 1;
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [[ "${searchterm}" =~ ^[0-9]+$ ]]; then
 | 
			
		||||
    zenity --info --text="<b>ERROR</b> only words, please!"\
 | 
			
		||||
        --icon-name=error \
 | 
			
		||||
        --window-icon="${HOME}/.local/bin/img/xmark.png" 2> /dev/null
 | 
			
		||||
    exit 1;
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
export RESULT=$(echo "$searchterm"|aspell -a|sed "1 d"); # Deletes the header line
 | 
			
		||||
export FIXED="${RESULT/& }" # Removes ampersand causing parsing errors.
 | 
			
		||||
 | 
			
		||||
if [[ "${FIXED}" == *"*"* ]]; then
 | 
			
		||||
    zenity --info --text="<b>CORRECT!</b> " \
 | 
			
		||||
        --icon-name=info \
 | 
			
		||||
        --window-icon="${HOME}/.local/bin/img/check-mark-11-16.png" 2> /dev/null
 | 
			
		||||
 | 
			
		||||
else
 | 
			
		||||
    parseResults "${FIXED}"
 | 
			
		||||
    message="<b>There are ${LISTCOUNT} suggested corrections for '${QUERYTERM}':</b> ${WORDLIST}" 
 | 
			
		||||
    zenity --info --text="${message}"\
 | 
			
		||||
        --icon-name=warning \
 | 
			
		||||
        --window-icon="${HOME}/.local/bin/img/caution-48.png" 2> /dev/null
 | 
			
		||||
 | 
			
		||||
fi
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user