From 63a498e7814f9e999ac3082052518888360e3666 Mon Sep 17 00:00:00 2001 From: Jonas Smedegaard Date: Sun, 10 Jun 2007 10:12:24 +0000 Subject: New kannel helper app. --- localsmsapps | 156 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 156 insertions(+) create mode 100755 localsmsapps (limited to 'localsmsapps') 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()))."\n";' + echo "$1" | perl -e 'use URI::URL; print URI::URL->new()."\n";' +} + +phone="$1"; shift +set -- `echo "$@" | perl -e 'use URI::Escape; print lc(uri_unescape());' | 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 -- cgit v1.2.3