#!/bin/sh -

URLVIEW=${WD_URLVIEW-${URLVIEW-'webrowse -uw'}};	sleepv='; sleep 4' #3
URLTAB=${URLTAB-'webrowse -ut'};			sleept='; sleep 2' #1
case "$HOST" in
athanor*)	sleepv='; sleep 8'; sleept='; sleep 6';;
esac

srcfile=$HOME/etc/work.html
weeklyday=Mon
outfile=$HOME/l/me/daily.html
outdayfile=$HOME/l/me/daily-DAY.html
abortfile=$HOME/.cache/webdaily-abort

icmd='xdo key Pause'	# iconify in my *twm environment
#allcmd=':; slashdot 4; hmrccal -w 4; $0 ${1+"$@"}; mebrowse $MAILHOST'
allcmd=':; slashdot 4; $0 ${1+"$@"}; '"$icmd; csh -c browsembox$sleepv; $icmd"
allcmdl='echo http://classic.slashdot.org/; $0 -l ${1+"$@"}'
#allcmdl='echo http://m.slashdot.org/; $0 -l ${1+"$@"}'

# NOTE: pop-up blockers will generally prevent this from working, so enable
#	pop-ups for kinzler.com.  On Android Firefox, one must about:config
#	-> dom.disable_open_during_load=false for all sites.

# assuming no "@"s in text here, see below:
#jQuery_url='//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js'
#jQuery_url='https://kinzler.com/js/jquery-1.11.1.min.js'
jQuery_url='https://kinzler.com/js/jquery.min.js'
jQuery="<script src=\"$jQuery_url\" type=\"text/javascript\"></script>"
button="<button type=\"button\" style=\"float: right;\"
  ><font size=\"+3\">Open All</font></button>
  <script type=\"text/javascript\">
    \$('button').click(function() {
      \$('.all').each(function() { window.open(\$(this).attr('href')); });
    });
  </script>

`date +'%a %d %b %Y'`
[ <a href=\"daily-Mon.html\">Mon</a> |
  <a href=\"daily-Tue.html\">Tue</a> |
  <a href=\"daily-Wed.html\">Wed</a> |
  <a href=\"daily-Thu.html\">Thu</a> |
  <a href=\"daily-Fri.html\">Fri</a> |
  <a href=\"daily-Sat.html\">Sat</a> |
  <a href=\"daily-Sun.html\">Sun</a> ]<br><br><br>"
base='https://kinzler.com/me/'

# webdaily - personalized daily web page invoker
# Steve Kinzler, steve@kinzler.com, Jul 01/Mar 08/Jan 09/Mar 11/Jul 14/Jul 15
# https://kinzler.com/me/home.html#web

case "$abortfile" in
?*)	sleepv="; $0 -X && exit$sleepv"
	sleept="; $0 -X && exit$sleept";;
esac

list=
case "$1" in
-h)	echo "usage: $0 [ -l | -L ] [ Day | ALL ] [ sh opts ]" 1>&2; exit 1;;
-l)	list="$1"; shift; URLVIEW=cat; URLTAB="perl -pe 's,^,\t,'"
	sleepv=; sleept=; icmd=; allcmd="$allcmdl";;
-L)	shift
	$0 -l ${1+"$@"} | webrowse -mnok 0 | perl -pe "
		BEGIN { \$jQuery = q@$jQuery@; \$button = q@$button@; }
		s|<A |$&CLASS=\"all\" TARGET=\"_blank\" |; s|</A>|$&<BR>|;
		s|<TITLE>.*<|<TITLE>dailypages for `date +'%a %d %b %Y'`<|;
		s|<BASE HREF[^>]*>\s*|<BASE HREF=$base>|;
		s|</HEAD>|\n\$jQuery\n$&|; s|<BODY>|$&\n\$button|" |
	case "$outfile" in
	?*)	cat > "$outfile"
		case "$outdayfile" in
		?*)	DAY="`date +'%a'`"
			cp "$outfile" `echo "$outdayfile" |
				       sed "s/DAY/$DAY/"`;;
		esac;;
	*)	cat;;
	esac
	exit;;
-X)	test -f "$abortfile" && { rm -f "$abortfile"; exit 0; }
	exit 1;;
esac

case "$1" in
ALL)	shift
	case "$icmd" in
	?*)	WD_URLVIEW="($icmd; $URLVIEW)"; export WD_URLVIEW;;
	esac
	case "$allcmd" in
	:\;*)	allcmd=`eval "$allcmd"`; exec sh -c "$allcmd";;
	*)	eval "$allcmd"; exit;;
	esac;;
[MTWFS][ouehra][neduit]*)	day=$1; shift;;
*)				day="`date`";;
esac

flag=${WEBDAILYFLAG-'DAILY'}

perl -ne "s#.*href="'"([^"]*).*#'"echo '\1' | $URLTAB$sleept#,  print
		if /<!-- *$flag TAB/;
	  s#.*href="'"([^"]*).*#'"echo '\1' | $URLVIEW$sleepv#, print
		if /<!-- *$flag/;" "$srcfile" | sh ${1+"$@"}

case "$flag" in
DAILY)	case "$day" in
	Mon*|Tue*|Wed*|Thu*|Fri*)
			WEBDAILYFLAG=WEEKDAY;	export WEBDAILYFLAG
			$0 $list "$day" ${1+"$@"};;
	esac
	case "$day" in
	Mon*|Wed*|Fri*)	WEBDAILYFLAG=MONWEDFRI;	export WEBDAILYFLAG
			$0 $list "$day" ${1+"$@"};;
	esac
	case "$day" in
	Tue*|Thu*|Sat*)	WEBDAILYFLAG=TUETHUSAT;	export WEBDAILYFLAG
			$0 $list "$day" ${1+"$@"};;
	esac
	case "$day" in
	Tue*|Sat*)	WEBDAILYFLAG=TUESAT;	export WEBDAILYFLAG
			$0 $list "$day" ${1+"$@"};;
	esac
	case "$day" in
	Wed*|Sun*)	WEBDAILYFLAG=WEDSUN;	export WEBDAILYFLAG
			$0 $list "$day" ${1+"$@"};;
	esac
	case "$day" in
	$weeklyday*)	WEBDAILYFLAG=WEEKLY;	export WEBDAILYFLAG
		   exec $0 $list "$day" ${1+"$@"};;
	esac;;
esac
