#!/bin/sh # # Shynx v0.0 # # Shell script html formatter. # # please fix me. # # Nirva showimage() { ALT=`echo "$E" | sed 's/.*[aA][lL][tT]=\"\([^"]*\)\".*/\1/'` if [ "x$ALT" = "x$E" ]; then echo [IMAGE] else echo $ALT; fi } parsehtml() { local HTM while :; do E=`echo "$HTM" | sed 's/^\(<[^>]*>\).*/\1/'` if [ "x$E" != "x$HTM" ]; then TAG=`echo "$E" | sed 's/^<\([\/1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]*\)[^>]*>/\1/'` TAG=`echo "$TAG" | tr [A-Z] [a-z]` case "$TAG" in "head") ;; "p") echo;echo;; "html") ;; "/html") ;; "body") ;; "/body") ;; "p") echo;echo;; "br") echo;; "img") showimage;; "hr") echo;echo -----------------------------------------------------------------------------;; "title") echo -n "TITLE: "; printtitle ;; "/title") echo ;; "pre") echo; PRE=ON;; "/pre") echo; PRE=;; "h1") echo; H=ON;; "h2") echo; H=ON;; "h3") echo; H=ON;; "h4") echo; H=ON;; "h5") echo; H=ON;; "h6") echo; H=ON;; "h7") echo; H=ON;; "/h1") echo; H=;; "/h2") echo; H=;; "/h3") echo; H=;; "/h4") echo; H=;; "/h5") echo; H=;; "/h6") echo; H=;; "/h7") echo; H=;; "table") ;; "/table");; "tr") ;; "/tr") ;; "td") ;; "/td") ;; "i") ;; "/i") ;; "a") printlink;; "/a") ;; *) ;; esac HTM=`echo "$HTM" | sed 's/^<[^>]*>\(.*\)/\1/'` else E=`echo "$HTM" | sed 's/^\([^<]*\).*/\1/'` echo -n "$E"; HTM=`echo "$HTM" | sed 's/^[^<]*\(.*\)/\1/'` if [ "x$E" = "x" ]; then break; fi fi done } printtitle() { T=`echo "$HTM" | sed 's/<[^>]*>\([^<]*\)<[^>]*>\(.*\)/\1||\2/'` TITLE=`echo "$T" | sed 's/\([^|]*\)||.*/\1/'` echo -n "$TITLE" HTM=`echo "$T" | sed 's/[^|]*||\(.*\)/\1/'` TITLE= T= } printlink() { T=`echo "$HTM" | sed 's/<[^>]*>\([^<]*\)<[^>]*>\(.*\)/\1||\2/'` LINK=`echo "$T" | sed 's/\([^|]*\)||.*/\1/'` tput smso echo -n "$LINK" tput rmso HTM=`echo "$T" | sed 's/[^|]*||\(.*\)/\1/'` T= LINK= } if [ "x$1" = "x" ]; then echo Usage: $0 URL fi CURRENTHOST= CURRENTPORT= CURRENTURL= URL=$1; SYNTREE=`echo $URL | sed 's/http:\/\/\([^/]*\)\(.*\)/\1||\2/'` if [ "x$SYNTREE" = "x$URL" ]; then SYNTREE=`echo $URL | sed 's/\(.*\):\([0123456789]*\)/\1||\2/'` PORT=80 HOST=localhost DIR=$SYNTREE else HOST=`echo $SYNTREE | sed 's/\(.*\)||\(.*\)/\1/'` DIR=`echo $SYNTREE | sed 's/\(.*\)||\(.*\)/\2/'` SYNTREE=`echo $HOST | sed 's/\(.*\):\([0123456789]*\)/\1||\2/'` if [ "x$SYNTREE" = "x$HOST" ]; then PORT=80 else PORT=`echo $SYNTREE | sed 's/\(.*\)||\(.*\)/\2/'` HOST=`echo $SYNTREE | sed 's/\(.*\)||\(.*\)/\1/'` fi fi if [ "x$DIR" = "x" ]; then DIR=/ fi echo host: $HOST echo port: $PORT echo dir: $DIR echo Retriveing up http://$HOST:$PORT$DIR HTML="`echo GET $DIR | nc $HOST $PORT | tr -d \\\n`" #echo "$HTML" #echo ---------------------------------------------------------------------------------- if [ "x$HTML" = "x" ]; then break; fi HTM=$HTML; parsehtml; echo