#!/bin/bash # gets number(s) from saynoto0870 - run with -h for more info THIS=`basename $0` COLUMNS=$(stty size 2>/dev/null||echo 80); COLUMNS=${COLUMNS##* } VERSION="1.3 [25 Jan 2012]" if [ -z "$TEMP" ]; then for TEMP in /var/tmp /tmp $PWD; do [ -d "$TEMP" ] && break done fi DISALLOWED="z" OUTPUT=\"%s\","\$3\",\"\$2\",\"\$1\"\\n\"" while getopts ":cdhlnp1w" optname; do case "$optname" in "c") DISALLOWED="Unconfirmed";; "d") DEBUG="y";; "h") HELP="y";; "l") CHANGELOG="y";; "n") OUTPUT=\"%s\","\$3\" \"";; "p") PAUSE="y";; "w") COLUMNS=30000;; #suppress line-breaking "1") ONE=";q";; "?") echo "Unknown option $OPTARG">&2; exit 1;; ":") echo "No argument value for option $OPTARG">&2; exit 1;; *) # Should not occur echo "Unknown error processing options">&2; exit 1;; esac done shift $(($OPTIND-1)) if [ -n "$CHANGELOG" ]; then echo -e "\n$THIS v$VERSION by Dominic (try -h for help)\n${THIS//?/=} 1.3 [25 Jan 2012] - allow use of Windows clipboard for number (for Cygwin), \ various other fixes, show a period when pausing 1.2 [23 Jan 2012] - add pause option 1.1 [12 Jan 2012] - add many new options 1.0 [ 5 Jan 2012] - initial release"|fold -sw $COLUMNS [ -n "$PAUSE" ] && read exit elif [ -n "$HELP" ]; then echo -e "\n$THIS v$VERSION by Dominic\n${THIS//?/=} https://www.saynoto0870.com provides online access to a user-maintained \ database of alternative geographic numbers for UK non-geographic \ premium numbers usually beginning 084 or 087. $THIS is a GNU/Linux script \ which provides an automated look-up facility for saynoto0870.com. Supply a number on the command line and it checks with \ https://www.saynoto0870.com for alternative non-premium numbers. Normally \ it returns first any confirmed \ numbers and then any non-confirmed, this can be limited to confirmed numbers \ only with -n switch, or to one result only with -1 switch. If running under Cygwin with no number provided on the command line it \ will try to use the contents of the clipboard as the number; in this case \ it runs with pause automatically. Usage : $THIS [options] premiumnumber Example : $THIS -1 0870123456 Switches : -h show this help and exit -c show confirmed number(s) only -n instead of line-by-line 3-field output, output only space-delimited number(s) with trailing space -p pause at end and wait for user to press a key -l show changelog and exit -1 if more than one alternative number, return only the first Dependencies: bash, wget, grep, sed, awk, sort, uniq, fold, basename, stty License: Copyright © 2022 Dominic Raferd. Licensed under the Apache License, \ Version 2.0 (the \"License\"); you may not use this file except in compliance \ with the License. You may obtain a copy of the License at \ https://www.apache.org/licenses/LICENSE-2.0. Unless required by applicable \ law or agreed to in writing, software distributed under the License is \ distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY \ KIND, either express or implied. See the License for the specific language \ governing permissions and limitations under the License. "|fold -s -w $COLUMNS [ -n "$PAUSE" ] && read exit fi NUMBER=$1 [ -n "$1" ] && NUMBER="$1" || { NUMBER=`cat /dev/clipboard 2>&-`; PAUSE="y"; } [ -n "$DEBUG" ] && echo "NUMBER is '$NUMBER'" [ -z "$NUMBER" ] && { echo "No number supplied, aborting...">&2; exit 1; } [ -n "`echo "$NUMBER"|sed 's/[0-9 ]//g'`" ] && { echo "Invalid number supplied '$NUMBER', aborting...">&2; exit 2; } wget -q -O - --post-data="number=$NUMBER" https://www.saynoto0870.com/numbersearch.php|sed 's/,/ /g;s/FFFFCC>/>Confirmed,/;s/CCFFFF>/>Unconfirmed,/'|awk -F "(