diff options
| author | EUcancER <root@euer.krebsco.de> | 2011-09-05 01:43:30 +0200 | 
|---|---|---|
| committer | EUcancER <root@euer.krebsco.de> | 2011-09-05 01:43:30 +0200 | 
| commit | 2cf53c89ee1027ef5629a71b3ca98c90a8801a17 (patch) | |
| tree | 5a030f03fa85bc0e78129f959319ba32d17a278c | |
| parent | 19289a7161d0f2cf2e210bdfe4cd702f6d71928c (diff) | |
| parent | 761db6a8b30f254b5349395c939111dedd8cf16b (diff) | |
Merge branch 'master' of github.com:krebscode/painload
| -rw-r--r-- | .gitmodules | 3 | ||||
| -rw-r--r-- | cholerab/AGENDA | 3 | ||||
| -rw-r--r-- | cholerab/news/Candidate | 12 | ||||
| -rwxr-xr-x | god/licht | 115 | ||||
| -rwxr-xr-x | meinsack/index | 85 | ||||
| -rwxr-xr-x | query/jquery/index | 19 | ||||
| -rw-r--r-- | shack/Eselkalk/index.js | 57 | ||||
| -rwxr-xr-x | shack/meinsack/index | 8 | ||||
| -rw-r--r-- | streams/stream.db | 1 | 
9 files changed, 290 insertions, 13 deletions
diff --git a/.gitmodules b/.gitmodules index cbc61522..3677b710 100644 --- a/.gitmodules +++ b/.gitmodules @@ -13,9 +13,6 @@  [submodule "submodules/github/tautologistics/node-htmlparser"]  	path = submodules/github/tautologistics/node-htmlparser  	url = https://github.com/tautologistics/node-htmlparser -[submodule "krebsbeam/c-beam"] -	path = krebsbeam/c-beam -	url = git://dev.c-base.org/c-beam/c-beam.git  [submodule "submodules/github/makefu/dpfhack_display"]  	path = submodules/github/makefu/dpfhack_display  	url = https://github.com/makefu/dpfhack_pearl diff --git a/cholerab/AGENDA b/cholerab/AGENDA index 8c80be0d..d2c1ae1f 100644 --- a/cholerab/AGENDA +++ b/cholerab/AGENDA @@ -107,3 +107,6 @@    - //Schnabeltasse    - wgrep + +  - generated code must be created outside of the //-hierarchy, so killing +    a local repository and recloning it is easier diff --git a/cholerab/news/Candidate b/cholerab/news/Candidate index 8abc0b00..1b52abe4 100644 --- a/cholerab/news/Candidate +++ b/cholerab/news/Candidate @@ -46,4 +46,14 @@ gewaehrleisten sollen verwendet werden.  [1.1] : https://github.com/krebscode/painload/tree/master/retiolum/bin/get-tinc-dir -## 2. KNUT - Die Krebs Notification Utility Toolchain +## 2. Krebs MPD + http stream + +KM momo hat sich heute (01.09.2011) gegen die streams gewehrt und auf der filebitch einen mpd Server eingerichtet. +Der MPD streamt jetzt via http(vorbis) auf http://filebitch.shack:8000.  +Eine Integration in //streams ist bereits vorgenommen.  +Der MPD lauert auf filebitch.shack:6600 auf MPD Clients die ihn bedienen.  +Ein Webinterface ist noch nicht geplant.  + +Die Musiksammlung kann in incoming/Musik auf der Filebitch erweitert werden. + +## 3. KNUT - Die Krebs Notification Utility Toolchain @@ -1,20 +1,117 @@  #!/bin/bash -case "$1" in -  (--help) echo "Toggle the lights";; -  (*) -  LAMPE=`echo $1 | sed -n '/^[1-2]*[0-9]*[0-9]$/p' | xargs echo "obase=16;" | bc`  -  TOGGLE=`echo $2 | sed -n '/^[0-1]/p'`  +# +#SYNOPSIS +#   //god/licht [options] [0/1] +#OPTIONS +#   all         -    toggles all lights +#   links       -    toggles all lights on the left hand side while looking towards the Auditorium +#   rechts      -    toggles all lights on the right hand side while looking towards the Auditorium +#   kuschel     -    toggles the lights in the pwnie corner +#   software    -    toggles the software corner +#   tische      -    toggles the lights on the window side of the long table +#   porsche     -    toggles the lights on the window side where the porsche cockpit is +#   ghetto      -    toggles the lights in the hallway +#   0-7         -    toggles individual lights + +toggle() { +  LAMPE=`echo "$1" | sed -n '/^[1-2]*[0-9]*[0-9]$/p' | xargs echo "obase=16;" | bc`  +  TOGGLE=`echo "$2" | sed -n '/^[0-1]/p'`     if ! [ "$LAMPE" -a "$TOGGLE" ];then      echo "you are made of stupid"     exit 1    fi -  STRING="\xA5\x5A\x$LAMPE\x$TOGGLE" +  STRING="\\xA5\\x5A\\x$LAMPE\\x$TOGGLE"    if [ $# != 2 ]    then -     echo -ne "Usage: licht <lampe> <0/1>" +     echo "Usage: licht <lampe> <0/1>"    else      echo "Toggle light $LAMPE ($TOGGLE)"  -     echo -ne "$STRING" | nc -u -w1 licht.shack 1337 +     printf "$STRING" | nc -u -w1 licht.shack 1337    fi -  ;; +} + +toggle_all() { +    for i in `seq 0 7` +    do +        printf "\\xA5\\x5A\\x$i\\x$TOGGLE" | nc -u -w1 licht.shack 1337 & +    done +    wait +} + +kuschel(){ +    for i in 0 2 +    do +        printf "\\xA5\\x5A\\x$i\\x$TOGGLE" | nc -u -w1 licht.shack 1337 & +    done +    wait +} + +software(){ +    for i in 1 3 +    do +        printf "\\xA5\\x5A\\x$i\\x$TOGGLE" | nc -u -w1 licht.shack 1337 & +    done +    wait +} + +tische(){ +    for i in 4 6  +    do +        printf "\\xA5\\x5A\\x$i\\x$TOGGLE" | nc -u -w1 licht.shack 1337 & +    done +    wait +} + +ghetto(){ +    printf "\\xA5\\x5A\\x7\\x$TOGGLE" | nc -u -w1 licht.shack 1337  +} + +porsche(){ +    printf "\\xA5\\x5A\\x5\\x$TOGGLE" | nc -u -w1 licht.shack 1337  +} + +case "$1" in +  --help)  +      echo "Toggle the lights" +      echo "Usage: lich <lampe> <0/1>" +      ;; +  all)  +      TOGGLE=$2 +      toggle_all +      ;; +  kuschel) +      TOGGLE=$2 +      kuschel +      ;; +  software) +      TOGGLE=$2 +      software +      ;; +  links) +      TOGGLE=$2 +      kuschel +      software +      ;; +  rechts) +      TOGGLE=$2 +      tische +      porsche +      ghetto +      ;; +  tische) +      TOGGLE=$2 +      tische +      ;; +  porsche) +      TOGGLE=$2 +      porsche +      ;; +  ghetto) +      TOGGLE=$2 +      ghetto +      ;; +  *) +      toggle "$@" +      ;;  esac + diff --git a/meinsack/index b/meinsack/index new file mode 100755 index 00000000..7046d78c --- /dev/null +++ b/meinsack/index @@ -0,0 +1,85 @@ +#! /bin/sh +# +# //meinsack +# +# export plz +# export str +# export anr +# export ort +# +set -euf +cd $(dirname $(readlink -f $0))/.. # cd // + +plz=${plz+"&plz=$plz"} +str=${str+"&str=$str"} +anr=${anr+"&anr=$anr"} + +url="http://www.sita-deutschland.de/sita/ywbase_Abfallkalender_Stuttgart.nsf/frmSelect?ReadForm$plz$str$anr" + +# echo $url + +html="$(curl -fsS "$url" | iconv -f latin1 -t utf8)" + +if echo "$html" | fgrep -q 'Ihre Eingabe war nicht eindeutig'; then +  { +    echo "Error: multiple locations found" +    echo "$html" | +    query/jquery/index 'table.tab:nth-child(2n) .bordertop > .text' | +    sed ' +      s/[[:space:]]\+/ /g +      s/'"`printf '\xc2\xa0'`"'//g;# kill unicode non-breaking space +    ' | +    while read plz && +          read str && +          read ort && +          read bes1 && +          read bes2 && +          read anr; do +      str=$(echo "$str"|sed 's/<[^>]*>//g') +      echo "export anr=$anr if you meant \"$ort\"" +    done | sort | uniq +  } >&2 +  exit 2 +elif test $(echo "$html" | grep -c 'Abfallkalender für') -gt 1 && +     test -z "${ort-}"; then +  { +    echo "Error: multiple locations found" +    echo "$html" | +    query/jquery/index '.tab span.text,.subheadline' | +    sed -n ' +      s/[[:space:]]\+/ /g +      s/'"`printf '\xc2\xa0'`"'//g;# kill unicode non-breaking space +      s/^Abfallkalender.*[^0-9]\([0-9]\+\)[^(]*(\(.*\))/export ort=\2/p +    ' | sort | uniq +  } >&2 +  exit 3 +else +  result="$(echo "$html" | +  query/jquery/index '.tab span.text,.subheadline' | { +    if test -n "${ort-}"; then +      sed -n " +        /($ort)/,/^Abfallkalender/{p;b} +        /($ort)/,\${p;b} +      " +    else +      cat +    fi +  } | { +    grep -v Abfallkalender | +    sed ' +      s/'"`printf '\xc2\xa0'`"'//g;# kill unicode non-breaking space +      s/^[A-Z][a-z]\.\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)$/\3-\2-\1/ +      s/^[0-9].*/  "&T00:00:00.000Z"/ +      $!s/$/,/ +      1s/^/[\n/ +      $s/$/\n]/ +    ' +  })" +  if ! echo "$result" | grep .; then +    { +      echo "Error: your query had no effect" +      echo "url=\"$url\"" +    } >&2 +    exit 4 +  fi +fi diff --git a/query/jquery/index b/query/jquery/index new file mode 100755 index 00000000..3c49dac9 --- /dev/null +++ b/query/jquery/index @@ -0,0 +1,19 @@ +#! /bin/sh +set -euf + +# cd // +cd $(dirname $(readlink -f $0))/../.. + +for x in \ +    github/tmpvar         \ +    github/mikeal         \ +    github/NV             \ +    github/tautologistics \ +; do +  export NODE_PATH="$(readlink -f submodules/$x)${NODE_PATH+:$NODE_PATH}" +done + +# ensure query is ready +#git submodule update --init + +exec node submodules/github/visionmedia/query "$@" diff --git a/shack/Eselkalk/index.js b/shack/Eselkalk/index.js new file mode 100644 index 00000000..f64e0605 --- /dev/null +++ b/shack/Eselkalk/index.js @@ -0,0 +1,57 @@ +// +// node //shack/Eselkalk DATE +// +// where DATE ∈ [YYYY[-MM]], defaulting to the current YYYY-MM +// + +range = process.argv[2] || +    JSON.parse(JSON.stringify(new Date())).slice(0, '....-..'.length) + +function dates(date) { +  var year = date.getFullYear() +  var month = date.getMonth() + +  var i = new Date([year, (month < 9 ? '0' : '') + (month + 1)].join('-')) + +  var days = [] +  var next_day = 4; +  for ( +      ; i.getMonth() === month +      ; i = new Date(+i + 24 * 60 * 60 * 1000)) { +    if (i.getDay() === next_day) { +      next_day = next_day === 3 ? 4 : 3 +      if (next_day === 3) { +        var next_4day = new Date(+i + 7 * 24 * 60 * 60 * 1000) +        if (next_4day.getMonth() !== month) { +          i = new Date(+i - 24 * 60 * 60 * 1000) +          next_4day = 4 +        } +      } +      days.push(new Date(+i + (20 * 60 + i.getTimezoneOffset()) * 60 * 1000)) +      while (i.getDay() !== 0) { +        i = new Date(+i + 24 * 60 * 60 * 1000) +      } +    } +  } + +  return days +} + + +result = [] + +// TODO if (/^....-..-..$/.test(range)) { ... } +if (/^....-..$/.test(range)) { +  result = dates(new Date(range)) +} +else if (/^....$/.test(range)) { +  ['01','02','03','04','05','06','07','08','09','10','11','12' +  ].forEach(function (i) { +    result = result.concat(dates(new Date([range, i].join('-')))) +  }) +} +else { +  throw new Error('You are made of stupid! ' + range) +} + +console.log(JSON.stringify(result, null, 2)) diff --git a/shack/meinsack/index b/shack/meinsack/index new file mode 100755 index 00000000..7d7147b2 --- /dev/null +++ b/shack/meinsack/index @@ -0,0 +1,8 @@ +#! /bin/sh +set -euf +cd $(dirname $(readlink -f $0))/../.. # cd // + +export plz=70327 +export str=Ulmer +export ort=Wangen +exec meinsack/index diff --git a/streams/stream.db b/streams/stream.db index 5efeb9ea..47ccf7b5 100644 --- a/streams/stream.db +++ b/streams/stream.db @@ -6,3 +6,4 @@ http://somafm.com/illstreet.pls illstreet  http://localhost:8000/stream.ogg icecast  http://stream2.jungletrain.net:8000 jungletrain  http://playlist.tormentedradio.com/tormentedradio.pls tormented +http://filebitch.shack:8000 mpd  | 
