summaryrefslogtreecommitdiff
path: root/localsmsapps
diff options
context:
space:
mode:
authorJonas Smedegaard <dr@jones.dk>2007-06-10 10:12:24 +0000
committerJonas Smedegaard <dr@jones.dk>2007-06-10 10:12:24 +0000
commit63a498e7814f9e999ac3082052518888360e3666 (patch)
tree2f5a86447d92eacf9dde56c8c4e75d0730023e14 /localsmsapps
parent6893fe134ffa011cff5dd286756335f55c215605 (diff)
New kannel helper app.
Diffstat (limited to 'localsmsapps')
-rwxr-xr-xlocalsmsapps156
1 files changed, 156 insertions, 0 deletions
diff --git a/localsmsapps b/localsmsapps
new file mode 100755
index 0000000..0938820
--- /dev/null
+++ b/localsmsapps
@@ -0,0 +1,156 @@
+#!/bin/sh
+
+set -e
+
+simpleword() {
+ echo "$1" | tr '[A-Z]' '[a-z]' | egrep '^[a-z][a-z0-9-]+$' || exit 1
+}
+
+urlencode() {
+# echo "$1" | perl -e 'use Encode; use URI::Escape; use URI::URL; print URI::URL->new(Encode::decode("utf8", uri_unescape(<STDIN>)))."\n";'
+ echo "$1" | perl -e 'use URI::URL; print URI::URL->new(<STDIN>)."\n";'
+}
+
+phone="$1"; shift
+set -- `echo "$@" | perl -e 'use URI::Escape; print lc(uri_unescape(<STDIN>));' | sed -e 's/\+/ /g'`
+app=`simpleword "$1"`; shift
+
+case "$app" in
+ bruger|brugere)
+ users=`finger -s "$@" | awk '{print $1}' | tail -n +2`
+ usercount=`echo $users | grep -qc .`
+ if [ "$usercount" = "1" ]; then
+ finger -mp "$users" | egrep -v -e '^(Directory|Last)'
+ else
+ localuserinfo --mail --custom='%username%: %fullname% <%mailaddress%>' $users
+ fi
+ ;;
+ adresse|adr|nummer|nr|krak|kraks|dgs|gulesider|degulesider)
+ buffer=
+ for word in "$@"; do
+ if [ -n "$word" ]; then
+ buffer="${buffer:+$buffer+}$word"
+ fi
+ done
+ query="$(urlencode "$buffer")"
+ wget -q -O- "http://www.krak.dk/Person/Resultat.aspx?Who=$query&WhoOnlySearch=false&Sort=Name" \
+ | html2text -nobs -width 9999 \
+ | egrep '^(\*\*.*\*\*|[^[:space:]]+_[^[:space:]]+|[[:space:]]+\* (Tlf|Mobil): .*)$' \
+ | sed -e 's/^\*\*\*\*\* \(.*\) \*\*\*\*\*$/Person: \1/' -e 's/_/ /g' -e 's/ \+\* \(Tlf\|Mobil\): \+//' \
+ | egrep -v '^(\*|Flere s|Udvid s)' \
+ || true
+ wget -q -O- "http://www.krak.dk/Firma/Resultat.aspx?Query=$query" \
+ | html2text -nobs -width 9999 \
+ | egrep '^(\*\*.*\*\*|[^[:space:]]+_[^[:space:]]+|[[:space:]]+\* (Tlf|Mobil): .*)$' \
+ | sed -e 's/^\*\*\*\*\* \(.*\) \*\*\*\*\*$/Firma: \1/' -e 's/_/ /g' -e 's/ \+\* \(Tlf\|Mobil\): \+//' \
+ | egrep -v '^(\*|Flere s|Vis kun resultater|Se resultater|\[Se firmaprofil for|Se alle webresultater)' \
+ || true
+ ;;
+ tog|togrejse)
+ buffer=
+ viacount=0
+ for word in "$@"; do
+ case "$word" in
+ fra)
+ buffer="from"
+ eval $buffer=
+ ;;
+ til)
+ buffer="to"
+ eval $buffer=
+ ;;
+ via)
+ if [ $viacount -gt 0 ]; then
+ eval lastviabuffer=\"\${$word$viacount}\"
+ if [ -z "$lastviabuffer" ]; then
+ echo >&2 "ERROR: Empty via directive."
+ exit 1
+ fi
+ fi
+ viacount="$(($viacount+1))"
+ buffer="$word$viacount"
+ eval $buffer=
+ ;;
+ rejse|st|st.|station)
+ ;;
+ *)
+ case "$buffer" in
+ from|to|via[123])
+ eval $buffer=\"\${$buffer:+\$$buffer+}$word\"
+ ;;
+ *)
+ if [ -z "$from" ]; then
+ from="$word"
+ elif [ -z "$to" ]; then
+ to="$word"
+ else
+ echo >&2 "ERROR: More than 2 cities mentioned or missing from/to/via directive."
+ exit 1
+ fi
+ esac
+ ;;
+ esac
+ done
+# FIXME: Handle more than a single via directive
+ if [ -n "$from" ] && [ -n "$to" ] && [ $viacount -gt 0 ]; then
+ url="http://www.rejseplanen.dk/bin/query.exe/mn?queryPageDisplayed=yes&S=$from+station&SBHF=2&Z=$to+station&ZBHF=2&V1=$via1+station&wai=yes&start=Find+rejse&start=Find+rejse"
+ elif [ -n "$from" ] && [ -n "$to" ]; then
+ url="http://www.rejseplanen.dk/bin/query.exe/mn?queryPageDisplayed=yes&S=$from+station&SBHF=2&Z=$to+station&ZBHF=2&wai=yes&start=Find+rejse&start=Find+rejse"
+ else
+ echo >&2 "ERROR: Too few cities, or missing from/to/via directive."
+ exit 1
+ fi
+ wget -O- "$(urlencode "$url")" \
+ | html2text -nobs -width 9999 \
+ | grep '^Din afrejse' | sed -e 's/Din afrejse fra/Afr./' -e 's/Din ankomst til/Ank./' -e 's/ er \(den [0-9.]\+ \)\?kl. / kl. /' -e 's/ er i spor / spor /'
+ ;;
+ benzin|benzinpris|diesel|dieselpris)
+ # Set defaults based on app name
+ case "$app" in
+ diesel*) flavor="diesel";;
+ fyr*|olie) flavor="olie";;
+ *) flavor="95";;
+ esac
+ # Resolve options
+ for word in "$@"; do
+ case "$word" in
+ 92|95|98|diesel|olie|fyringsolie) flavor="$word";;
+ [[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]]) site="$word";;
+ for|i|oktan|pris|amt) ;;
+ *) county="$word";;
+ esac
+ shift
+ done
+ case "$flavor" in
+ 92) flavorid=1;;
+ 95) flavorid=2;;
+ 98) flavorid=3;;
+ diesel) flavorid=6;;
+ olie|fyringsolie) flavorid=7;;
+ esac
+ case "$county" in
+ bornh*) countyid=1;;
+ frederiksborg) countyid=3;;
+ fyn) countyid=4;;
+ nordj*) countyid=6;;
+ ribe) countyid=7;;
+ ringk*) countyid=8;;
+ rosk*) countyid=9;;
+ k?benh*|stork*) countyid=5;;
+ storstr*) countyid=10;;
+ s?nderj*) countyid=11;;
+ vejle) countyid=12;;
+ vestsj*) countyid=13;;
+ viborg) countyid=14;;
+ ?rhus|aarhus) countyid=15;;
+ esac
+ # Lookup and compress results
+ if [ -n "$site" ]; then
+ wget -O- "http://www.fdmbenzinpriser.dk/wap/ShowStation.aspx?StationID=$site" | html2text -nobs -width 9999
+ elif [ -n "$countyid" ]; then
+ wget -O- "http://www.fdmbenzinpriser.dk/wap/AmtpriserPriceList.aspx?OctaneID=$flavorid&AmtID=$countyid" | html2text -nobs -width 9999
+ else
+ wget -O- "http://www.fdmbenzinpriser.dk/wap/Landspriser.aspx?ID=$flavorid" | html2text -nobs -width 9999
+ fi
+ ;;
+esac