Hogwarts Wand Docs: ../sw/showtimes

File: ../sw/showtimes

#!/bin/bash
#
# showtimes - cgi-bin script to check wspell_info.inc and wspell_str.inc files
#
# Copyright (C) 2006  Nathan (Acorn) Pooley
# 
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# version 2 as published by the Free Software Foundation.
# 
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License (gpl.txt) for more details. 
# 
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
# 
# You can contact the author, Nathan (Acorn) Pooley, by writing
# to Nathan (Acorn) Pooley, 949 Buckeye Drive, Sunnyvale, CA  94086, USA
# or through the form at http://www.rawbw.com/~acorn/wand/feedback.html
# 

echo "Content-type: text/html"
echo ""

echo "<html>"
echo "<body>"


echo "HELLO"
echo "</body>"
echo "</html>"
exit 0

fn_t=../../hog/wspell_tmp.upload
fn_s=../../hog/wspell_str.inc.upload
fn_i=../../hog/wspell_info.inc.upload

echo "FOOBA" > $fn_t
cat >> $fn_t


str="$fn_s"
info="$fn_i"

tmp=tmp_showtimes_$$
str2=${tmp}_str2
info2=${tmp}_info2
err=${tmp}_err

\rm -f $err

_err() {
    echo "ERROR: $*" >&2
    echo "ERROR: $*" >> $err
}

_get_str() {
    typeset line
    typeset label=""
    typeset text=""
    while read line
    do
        if [[ $line = @A* ]] ; then
            if [[ -n $label ]] ; then
                _err "label with no text: '$label'"
            fi
            label="${line#@A}"
        elif [[ $line = @B* ]] ; then
            text="${line#@B}"
            if [[ -z $label ]] ; then
                _err "text with no label: '$text'"
            fi
            echo "$label$text"
            label=""
            text=""
        else
            _err "Bad line in $str: '$line'"
        fi
    done
    if [[ -n $label ]] ; then
        _err "label with no text: '$label'"
    fi
}

cat $str | \
    sed \
        -e 's|[^!-~]| |g' \
        -e 's|[     ][  ]*| |g' \
        -e 's|^w_str.*:|@A&|' \
        -e 's| db "\([^"]*\).0"|@B&|' | \
    _get_str > $str2


_get_info() {
    
    typeset cur=""
    typeset t0=""
    typeset t
    typeset h
    typeset m
    typeset a
    typeset b
    typeset c
    typeset d
    echo "<ul>"
    while read a b c d
    do
        if [[ $a = @C ]] ; then
            if [[ -n $cur ]] ; then
                _err "Spell $cur is not terminated!!"
            fi
            echo "</ul>"
            echo "<h2>Spell $b</h2>"
            echo "<ul>"
            cur="$b"
        elif [[ $a = @D ]] ; then
            :
        elif [[ $a = @E ]] ; then
            if [[ -z $cur ]] ; then
                _err "Info is not in a spell: $a $b $c $d"
            fi
            if (( c & 0x80 )) ; then
                cur=""
            fi
            (( h = b + 0 ))
            (( m = c & 0x3f ))
            if (( m < 10 )) ; then
                m="0$m"
            fi
            if (( h < 24+6 )) ; then
                t="BEFORE GAME BEGINS"
            elif (( h < 24+12 )) ; then
                (( h = h - 24 ))
                t="$h:$m am Saturday"
            elif (( h < 24+13 )) ; then
                (( h = h - 24 ))
                t="$h:$m noon Saturday"
            elif (( h < 24+24 )) ; then
                (( h = h - 24 - 12 ))
                t="$h:$m pm Saturday"
            elif (( h < 24+25 )) ; then
                (( h = h - 24 - 12 ))
                t="$h:$m minight Saturday/Sunday"
            elif (( h < 24+24+12 )) ; then
                (( h = h - 24 - 24 ))
                t="$h:$m am Sunday"
            elif (( h < 24+24+13 )) ; then
                (( h = h - 24 - 24 ))
                t="$h:$m noon Sunday"
            elif (( h < 24+24+24 )) ; then
                (( h = h - 24 - 24 - 12 ))
                t="$h:$m pm Sunday"
            elif (( h == 255 )) ; then
                t=""
            else 
                t=""
            fi

            if [[   -z $t0 && -z $t ]] ; then
                echo "<li>ALWAYS:"
            elif [[ -n $t0 && -z $t ]] ; then
                echo "<li>After $t0:"
            elif [[ -z $t0 && -n $t ]] ; then
                echo "<li>Before $t:"
            else
                echo "<li>After  $t0<br>"
                echo "Before $t:"
            fi

            echo -n "<pre>                "
            grep "^$d:" $str2
            echo -n "</pre>"
        else
            _err "Bad line in $info: '$a $b $c $d'"
        fi
    done
    echo "</ul>"
}

cat $info | \
    sed \
        -e 's|[^!-~]| |g' \
        -e 's|[     ][  ]*| |g' \
        -e 's|^w_spellinfo_\([^:]*\)1:|@C \1|' \
        -e 's|^w_spellinfo.*equ.*|@D|' \
        -e 's| *;.*|@D|' \
        -e 's|^ db \(0x[0-9a-fA-F]*\) *, *\(0x[0-9a-fA-F]*\) *, *HIGH \(w_str_[^ ,]*\) *,.*|@E \1 \2 \3|' | \
    _get_info > $info2



len=`wc -l $fn_t`
if (( len > 10 )) ; then
    fn="xxxx"
    echo "Uploaded $len line file $fn"
    echo "<pre>"
    head -10 $fn_t
    echo "</pre>"
fi



echo "<h1>Upload new wspell_info.inc file</h1>"


    echo "<form method=\"post\" enctype=\"multipart/form-data\" action=showtimes>"
    echo "File:<input type=file id=\"upfile\" name=\"upfile\">"
    echo "<input type=submit>"
    echo "</form>"
    echo "</p>"
    echo "<p>NOTE: After clicking 'Submit' please wait until you see the 'Success' screen and confirm the file length.  "
    echo "(Do NOT repeatedly click the 'Submit' button.)</p>"


echo "<h1>Upload new wspell_str.inc file</h1>"

    echo "<form method=\"post\" enctype=\"multipart/form-data\" action=showtimes>"
    echo "File:<input type=file id=\"upfile\" name=\"upfile\">"
    echo "<input type=submit>"
    echo "</form>"
    echo "</p>"
    echo "<p>NOTE: After clicking 'Submit' please wait until you see the 'Success' screen and confirm the file length.  "
    echo "(Do NOT repeatedly click the 'Submit' button.)</p>"








if [[ -s $err ]] ; then
    echo "<h1>Errors Occurred</h1>"
    cat $err
else
    echo "<p>(No errors)</p>"
fi
echo "<h1>Results</h1>"
cat $info2

echo "</body>"
echo "</html>"

\rm -f $str2 $info2

This file Copyright (C) 2006 by Nathan (Acorn) Pooley
Go to TOP Wand page
Go to Acorn's personal webpage
Go to Hogwarts website: www.gotohogwarts.com
Snout: www.snout.org/game
Gadgets of Justice Unlimited
Snout GC (Wiki)
Snout Wiki
File created by do_doc at Wed May 30 03:23:52 PDT 2007