/*	MIAMI_LOG
	(C) 27.5.97 A.Teichmann@gmx.net
	$ver=1.3

	Programm zum mitschneiden der Online Zeiten im Internet durch MIAMI im
	Ncomm Logfile Format.Kann jederzeit auch vor dem Aufruf von Miami 
	aufgerufen werden...,es wartet in dem Fall erst auf den Start von 
	Miami.Wenn Miami beendet wird wir das Script ebenso beendet.Die mit-
	geschnittene Zeit wird im Ncomm Logfile Format ausgegeben.evtl Zusatz-
	gebühren (z.b.T-Online) werden (opt) als Zeit hochgerechnet damit 
	evtl. Ncomm Logfile auswerter die Zusatzkosten auch erfasst.
	details siehe MIAMI_LOG.guide

	Falls die Telekom ihre Tarife mal wieder ändern sollte ,kann in den
	folgenden Zeilen der Telekom Takt angepasst werden.
	evtl Pfadangabe für WAITFORPORT kann man dort auch ändern.
*/
zeiteinheit=180		/* Sekunden angabe des Zeittaktes einer Einheit*/         
einheitpfg=12		/* Gebühren angabe eines Taktes der Telekom in Pfg*/
wait="rexx:waitforport"	/* Pfad zu WaitforPort */


	geton=0;getoff=0
	options results
	parse arg zusatzgeb log
	if log ="" then if zusatzgeb ="" then signal komp
	if log ="" then signal ERROR
	zzg = "1"
	if zusatzgeb = "0" then zzg ="0"
	logg=strip(log)
	pfg = zusatzgeb
warte:
	address command wait "MIAMI.1"
	if RC~=0 then signal warte
	do forever
	if show("p","MIAMI.1") = 1 then do
				ADDRESS MIAMI.1
				ISONLINE
				IF RC = 1 THEN if geton=0 then call ONLINE
				IF RC = 0 THEN if geton=1 then call OFFLINE
				end
		if show("p","MIAMI.1") = 0 then leave
		if getoff=1 then do
			getoff=0
			geton=0
			end
	address command wait "MIAMI"
	END
	if geton=1 then if getoff=0 then call OFFLINE
	exit
ONLINE:
	bbb=date(w)
	tiz1=time(n)
	aaa=date(n)
	tn1=left(bbb,3)
	tz1=left(aaa,2)
	mn1=substr(aaa,4,3)
	jz1=substr(aaa,8,4)
	on=tiz1
	au1= "Internet Telefon Gebühren"
	au2= "--------------------------------"
	au3= "Login:  "tn1" "mn1" "tz1" "on" "jz1
	geton=1
	return
OFFLINE:
	getoff=1
	bbb=date(w)
	tiz2=time(n)
	aaa=date(n)
	tn2=left(bbb,3)
	tz2=left(aaa,2)
	mn2=substr(aaa,4,3)
	jz2=substr(aaa,8,4)
	off=tiz2
	au4= "Logout: "tn2" "mn2" "tz2" "off" "jz2
	t1=on
	t2=off
	h1=left(t1,2)
	h2=left(t2,2)
	m1=substr(t1,4,2)
	m2=substr(t2,4,2)
	s1=substr(t1,7,2)
	s2=substr(t2,7,2)
		if s1>s2 then s2=s2+60
		if s2>60 then m1=m1+1
		if m1>m2 then m2=m2+60
		if m2>60 then h1=h1+1
		if h1>h2 then h2=h2+24
	eh=h2-h1
	em=m2-m1
	es=s2-s1
		if length(eh) =1 then eh="0"eh
		if length(em) =1 then em="0"em
		if length(es) =1 then es="0"es
	au5= "Time online: "eh":"em":"es
	au6= " "
	/* ZUSATZGEBÜHREN */
	gebhr=(eh*(pfg*60))/einheitpfg
	gebhr2=(em*pfg)/einheitpfg
	gebhr3=1
		if es=0 then gebhr3=0 else gebhr3=1
	stdon=trunc((((gebhr+gebhr2+gebhr3)*zeiteinheit)/60)/60)
	minon=trunc((((gebhr+gebhr2+gebhr3)*zeiteinheit)/60)-(stdon*60))
	secon=trunc(((gebhr+gebhr2+gebhr3)*zeiteinheit)-(stdon*3600)-(minon*60))
		if length(stdon) =1 then stdon="0"stdon
		if length(minon) =1 then minon="0"minon
		if length(secon) =1 then secon="0"secon
	poff= stdon":"minon":"secon
	pon="00:00:00"
	bu1= "Internet Zusatzkosten "pfg" pfg/min"
	bu2= "--------------------------------"
	bu3= "Login:  "tn1" "mn1" "tz1" "pon" "jz1
	bu4= "Logout: "tn2" "mn2" "tz2" "poff" "jz2
	bu5= "Time online: "stdon":"minon":"secon
	bu6= " "
	/* LOGFILE */
		if ~exists(logg) then call open(log,logg,"W")
		if exists(logg) then call open(log,logg,"A")
	call WriteLN(log,au1)
	call WriteLN(log,au2)
	call WriteLN(log,au3)
	call WriteLN(log,au4)
	call WriteLN(log,au5)
	call WriteLN(log,au6)
		if zzg = "1" then call WriteLN(log,bu1)
		if zzg = "1" then call WriteLN(log,bu2)
		if zzg = "1" then call WriteLN(log,bu3)
		if zzg = "1" then call WriteLN(log,bu4)
		if zzg = "1" then call WriteLN(log,bu5)
		if zzg = "1" then call WriteLN(log,bu6)
	Call Close(log)
	return
ERROR:
	say "ERROR."
	say "Fehler bei Argumenten !"
	say
KOMP:
	say "Miami_log.rexx       /       MIAMI Gebühren -> Ncomm Logfile"
	say "(c) 1996/97                          A.Teichmann@gmx.net"
	say 
	say "SYNTAX:"
	say "       rexx:rx MIAMI_log <zusatzkosten/min> <ncomm logfile>"
	say
	say "Options:"
	say 
	say "       <zusatzkosten/min>"
	say 
	say "       sind evtl. Zusatzkosten für Internet benutzung die der"
	say "       jeweilige Provider verlangt.z.b. T-Online (5 pfg/min)"
	say "       Angegeben werden sollte es in Pfennigen."
	say "       Daraus wird eine virtuelle Online Zeit errechnet und"
	say "       auch für Ncomm mit aufbereitet."
	say "       wird 0 angegeben ,werden keine Zusatzkosten errechnet."
	say
	say "       <ncomm logfile>"
	say 
	say "       Aktueller Pfad und Name zum Ncomm Logfile."
	say "       Sollte kein File existieren ,wird ein neues angelegt."
	say "       ansonsten werden die Gebühren mit an bestehendes File"
	say "       angehängt."
	say
	say "Beispiel: rexx:rx MIAMI_log 5 ncomm:Ncomm.logfile"
	say 
	say "berechnet 5 pfg/min (für T-online) und legt das ergebnis bei "
	say "ncomm:Ncomm.logfile ab."
	say
	exit
