SMF Script 8 — File Browser
SMFScript8v8.13 / SMFScript8v8.13 / system / away.mrc
away.mrc — 16.74 KB — Download this file
alias as.load {
if ($as.rtrn(page.wav) = $null) || ($isfile($as.rtrn(phone.wav)) != $true) {
set %as.wav.tmp $findfile($mircdir,page.wav,1)
if (%as.wav.tmp) as.set settings page.wav %as.wav.tmp
else {
set %as.wav.tmp $mircdir $+ *.wav
set %as.wav.tmp $dir="Pager WAV File" %as.wav.tmp
if (%as.wav.tmp) as.set settings page.wav %as.wav.tmp
else {
echo $colour(info) ERROR: no pager sound file was selected.
.unload -rs $quo($script)
}
}
}
if ($as.rtrn(phone.wav) = $null) || ($isfile($as.rtrn(phone.wav)) != $true) {
set %as.wav.tmp $findfile($mircdir,phone.wav,1)
if (%as.wav.tmp) as.set settings phone.wav %as.wav.tmp
else {
set %as.wav.tmp $mircdir $+ *.wav
set %as.wav.tmp $dir="Message WAV File" %as.wav.tmp
if (%as.wav.tmp) as.set settings phone.wav %as.wav.tmp
else {
echo $colour(info) ERROR: no message sound file was selected.
.unload -rs $quo($script)
}
}
}
as.unset logs.main
as.unset pages.main
if ($as.rtrn(aa) = $null) as.set settings aa 900
if ($as.rtrn(aq) = $null) as.set settings aq 7200
if ($as.rtrn(log) = $null) as.set settings log off
if ($as.rtrn(page) = $null) as.set settings page off
if ($as.rtrn(clr1)) as.unset settings clr1
if ($as.rtrn(clr2)) as.unset settings clr2
if ($as.rtrn(clr3)) as.unset settings clr3
if ($as.rtrn(clr4)) as.unset settings clr4
if ($as.rtrn(a.xy)) as.unset settings a.xy
if ($as.rtrn(a.h)) as.unset settings a.h 140
if ($as.rtrn(a.f)) as.unset settings a.f +f
if ($as.rtrn(p.f)) as.unset settings p.f +f
if ($as.rtrn(p.xy)) as.unset settings p.xy 1 1
if ($as.rtrn(p.h)) as.unset settings p.h 140
if ($as.rtrn(aq.stt) = $null) as.set settings aq.stt off
if ($as.rtrn(nick.chng.new) = $null) as.set settings nick.chng.new AwayNick
if ($as.rtrn(nick.chng.add) = $null) as.set settings nick.chng.add _Away
echo $colour(info) -a * Setup is complete
if ($1 = $null) as.stp.main
:emd
}
alias away.ini return $quo($scriptdirsettings.ini)
alias quo if ($chr(32) isin $1) return " $+ $1 $+ " | return $1
alias page.wav return $readini $away.ini settings page.wav
alias phone.wav return $readini $away.ini settings phone.wav
alias as.logo return SMF Away Sys v4.0
alias as.rtrn return $readini $away.ini settings $$1
alias as.set writeini $away.ini $1 $2 $$3-
alias as.unset remini $away.ini $$1 $2
alias as.lwr if ($len($$2-) >= $$1) { set -u0 %suplower $calc($1 - 3) | return ... $+ $lower( [ $+ [ $right($2-,%suplower) ] $+ ] ) } | return $lower( [ $+ [ $2- ] $+ ] )
alias as.stp.main {
if ($dialog(Away)) return
dialog -mn Away Away
did -a Away 3 $calc( $as.rtrn(aa) / 60 )
if ($as.rtrn(aa.stt) = off) did -b away 3,2,4
else { did -e away 3,2,4 | did -c away 5 }
did -a Away 9 $calc($as.rtrn(aq) / 3600)
if ($as.rtrn(aq.stt) = off) did -b away 8,9,10
else { did -e away 8,9,10 | did -c away 11 }
did -a Away 15 $as.rtrn(nick.chng.add)
did -a Away 17 $as.rtrn(nick.chng.new)
if ($as.rtrn(nick.stt)) { did -c away 18 | did -b away 20,14,15 | did -e away 17 }
else { did -c away 16 | did -b away 21,17 | did -e away 14,15 }
did -a away 51 $as.lwr(17,$page.wav)
did -a away 53 $as.lwr(17,$phone.wav)
}
dialog away {
title "The SMF Away Sys v4.0 Settings"
size -1 -1 311 168
text "Set auto-away after",2,35 15 95 13
edit "",3,130 11 30 23,autohs
text "minute(s)",4,162 15 42 13
check "",5,11 15 13 13
box "",6,5 0 25 38
box "",7,5 0 226 38
text "Auto-quit after",8,35 55 67 13
edit "",9,105 51 30 23,autohs
text "hour(s)",10,137 55 42 13
check "",11,11 55 13 13
box "" 12,5 40 25 38
box "" 13,5 40 226 38
radio "",16,11 96 13 13
text "Nick",14,35 95 22 13
edit "",15,57 91 50 23,autohs
box "Partial",20,5 80 110 38
radio "",18,127 96 13 13
edit "",17,150 91 72 23,autohs
box "Full",21,121 80 110 38
button "Messages",22,241 6 64 32
button "Pages",23,241 46 64 32
button "Close",1,241 86 64 32,cancel
text "Page",50,5 123 110 13,center
button "",51,5 138 110 24
text "Message",52,121 123 110 13,center
button "",53,121 138 110 24
}
on *:dialog:away:sclick:*:{
if ($did = 5) { if ($as.rtrn(aq.stt) = $null) { did -u away 11 | did -b away 8,9,10 | as.set settings aq.stt off } | if ($as.rtrn(aa.stt)) { did -e away 3,2,4 | as.unset settings aa.stt } | else { did -b away 3,2,4 | as.set settings aa.stt off } }
if ($did = 11) { if ($as.rtrn(aa.stt)) { did -u away 11 | return } | if ($as.rtrn(aq.stt)) { did -e away 8,9,10 | as.unset settings aq.stt } | else { did -b away 8,9,10 | as.set settings aq.stt off } }
if ($did = 16) { as.unset settings nick.stt | did -e away 14,20,15 | did -b away 21,17 }
if ($did = 18) { as.set settings nick.stt full | did -b away 14,20,15 | did -e away 21,17 }
if ($did = 22) as.log.read | if ($did = 23) as.page.read | if ($did = 51) .timer 1 0 as.wav.chng p | if ($did = 53) .timer 1 0 as.wav.chng m
}
on *:dialog:away:edit:*:{
if ($did = 3) && ($did(3).text isnum) as.set settings aa $calc($did(3).text * 60)
if ($did = 9) && ($did(9).text isnum) as.set settings aq $calc($did(9).text * 3600)
if ($did = 15) && ($did(15).text) as.set settings nick.chng.add $did(15).text
if ($did = 17) && ($did(17).text) as.set settings nick.chng.new $did(17).text
}
alias as.wav.chng {
set %as.wav.tmp $mircdir $+ *.wav
as.set settings $iif($1 = P,page.wav,phone.wav) $$dir="$iif($1 = P,Pager,Message) WAV File" %as.wav.tmp
if ($1 = p) did -a away 51 $as.lwr(17,$page.wav)
else did -a away 53 $as.lwr(17,$phone.wav)
}
on *:CONNECT: .events on | .timeras.aa 1 $as.rtrn(aa) as.aa.timecheck | unset %as.*
alias as.aa.timecheck .timeras.aa 1 60 as.aa.timecheck | if ($as.rtrn(aa.stt) = off) return | if ($idle > $as.rtrn(aa)) as.aa.away
alias as.main {
if ($server = $null) { echo $colour(info) -a * You are not connected. | return }
if ($away) { echo $colour(info) -a * You are already set away. | return }
dialog -mn away.main away.main
if ($as.rtrn(as.msg.1)) did -a away.main 5 $as.rtrn(as.msg.1)
if ($as.rtrn(as.msg.2)) did -a away.main 5 $as.rtrn(as.msg.2)
if ($as.rtrn(as.msg.3)) did -a away.main 5 $as.rtrn(as.msg.3)
if ($as.rtrn(as.msg.4)) did -a away.main 5 $as.rtrn(as.msg.4)
if ($as.rtrn(as.msg.5)) did -ac away.main 5 $as.rtrn(as.msg.5)
if ($as.rtrn(log) = on) did -c away.main 1
if ($as.rtrn(page) = on) did -c away.main 2
if ($as.rtrn(nick) = on) did -c away.main 3
if ($as.rtrn(msg) = on) did -c away.main 4
else did -h away.main 5
if ($as.rtrn(silent) = on) did -c away.main 6
}
dialog away.main {
size -1 -1 213 125
title "Away"
button "OK",7,4 87 50 30,ok
check "Logging",1,4 7 100 13
check "Pager",2,4 22 100 13
check "Change Nick",3,4 37 90 13
check "Away Message",4,4 52 90 13
combo 5,98 49 113 200,drop,edit
check "Silent",6,4 67 50 13
button "Cancel",8,60 87 50 30,cancel
}
on *:dialog:away.main:sclick:*:{
if ($did = 1) { if ($as.rtrn(log) = on) as.set settings log off | else as.set settings log on }
if ($did = 2) { if ($as.rtrn(page) = on) as.set settings page off | else as.set settings page on }
if ($did = 3) { if ($as.rtrn(nick)) as.unset settings nick | else as.set settings nick on }
if ($did = 4) { if ($as.rtrn(msg)) { as.unset settings msg | did -h away.main 5 } | else { as.set settings msg on | did -v away.main 5 } }
if ($did = 6) { if ($as.rtrn(silent)) as.unset settings silent | else as.set settings silent on }
if ($did = 7) as.setaway $did(away.main,5).text
}
alias as.setaway {
set %as.log.num 0
set %as.page.num 0
.timeras.aa off
set %as.date $asctime(dd/mm/yy_HH:nn)
if ($as.rtrn(log) = on) { :loop | inc %as.ln.num.1 | set %as.ln.num.2 $readini -n $away.ini LOGS.MAIN %as.ln.num.1 | if (%as.ln.num.2 = %as.date) goto end | if (%as.ln.num.2) goto loop | as.set LOGS.MAIN %as.ln.num.1 %as.date | :end }
unset %as.ln.num.*
if ($as.rtrn(page) = on) { :loop2 | inc %as.ln.num.1 | set %as.ln.num.2 $readini -n $away.ini PAGES.MAIN %as.ln.num.1 | if (%as.ln.num.2 = %as.date) goto end2 | if (%as.ln.num.2) goto loop2 | as.set PAGES.MAIN %as.ln.num.1 %as.date | :end2 }
unset %as.ln.num.*
set %as.msg $1-
if (%as.msg = $null) || ($as.rtrn(msg) = $null) set %as.msg BRB
if (%as.msg != $as.rtrn(as.msg.1)) && (%as.msg != $as.rtrn(as.msg.2)) && (%as.msg != $as.rtrn(as.msg.3)) && (%as.msg != $as.rtrn(as.msg.4)) && (%as.msg != $as.rtrn(as.msg.5)) {
if ($as.rtrn(as.msg.2)) as.set settings as.msg.1 $as.rtrn(as.msg.2)
if ($as.rtrn(as.msg.3)) as.set settings as.msg.2 $as.rtrn(as.msg.3)
if ($as.rtrn(as.msg.4)) as.set settings as.msg.3 $as.rtrn(as.msg.4)
if ($as.rtrn(as.msg.5)) as.set settings as.msg.4 $as.rtrn(as.msg.5)
as.set settings as.msg.5 %as.msg
}
if ($as.rtrn(nick)) {
set %as.nick.old $me
if ($as.rtrn(nick.stt)) nick $as.rtrn(nick.chng.new)
else nick %as.nick.old $+ $as.rtrn(nick.chng.add)
}
if ($chan(0)) && ($as.rtrn(silent) = $null) ame is going away: [ $+ %as.msg $+ ] (L: $+ $as.rtrn(log) $+ / $+ P: $+ $as.rtrn(page) $+ )
away %as.msg
set %as.secs 0
.timeras.cnt 0 1 as.secinc
as.pager
}
alias as.secinc {
inc %as.secs
did -ra pager.main 4 $duration(%as.secs)
}
alias as.pager {
dialog -mn pager.main pager.main
did -ra pager.main 2 %as.msg
did -ra pager.main 4 $duration(%as.secs)
did -ra pager.main 6 %as.log.num
did -ra pager.main 9 %as.page.num
}
dialog pager.main {
size -1 -1 200 125
title "Pager"
button "Return",12,5 90 50 30,cancel
text "Away Message:",1,5 8 75 13
edit "",2,82 5 115 20,read
text "Gone For:",3,5 28 75 13
edit "",4,82 25 115 20,read
text "Messages:",5,5 48 75 13
edit "",6,82 45 40 20,read,center
button "Read",7,126 46 70 18
text "Pages:",8,5 68 75 13
edit "",9,82 65 40 20,read,center
button "Read",10,126 66 70 18
}
on *:dialog:pager.main:sclick:*:{
if ($did = 7) as.log.read
if ($did = 10) as.page.read
if ($did = 12) as.return
}
alias as.return {
.timeras.cnt off
if ($server) away
if ($as.rtrn(nick)) nick %as.nick.old
if ($chan(0)) && ($as.rtrn(silent) = $null) ame is back from: [ $+ %as.msg $+ ] (Gone for: $+ $duration(%as.secs) $+ )
.timeras.aa 1 $as.rtrn(aa) as.aa.timecheck
.timeras.aq off
unset %as.*
if ($dialog(pager.main)) dialog -x pager.main
}
alias as.aa.away {
set %as.log.num 0 | set %as.page.num 0 | .timeras.aa off | set %as.date $asctime(dd/mm/yy_HH:nn) | if ($as.rtrn(log) = on) { :loop | inc -u0 %as.ln.num.1 | set %as.ln.num.2 $readini -n $away.ini LOGS.MAIN %as.ln.num.1 | if (%as.ln.num.2 = %as.date) goto end
if (%as.ln.num.2) goto loop | as.set LOGS.MAIN %as.ln.num.1 %as.date | :end } | unset %as.ln.num.* | if ($as.rtrn(page) = on) { :loop2 | inc %as.ln.num.1 | set %as.ln.num.2 $readini -n $away.ini PAGES.MAIN %as.ln.num.1 | if (%as.ln.num.2 = %as.date) goto end2 | if (%as.ln.num.2) goto loop2 | as.set PAGES.MAIN %as.ln.num.1 %as.date | :end2 } | unset %as.ln.num.* | set %as.msg Auto-Away | if ($as.rtrn(nick)) { set %as.nick.old $me | if ($as.rtrn(nick.stt)) nick $as.rtrn(nick.chng.new) | else nick %as.nick.old $+ $as.rtrn(nick.chng.add) }
if ($chan(0)) && ($as.rtrn(silent) = $null) ame is going away: [ $+ %as.msg $+ ] (L: $+ $as.rtrn(log) $+ / $+ P: $+ $as.rtrn(page) $+ ) | away Auto-Away | set %as.secs 0 | .timeras.cnt 0 1 as.secinc | .timeras.aq 1 60 as.aq.timecheck | as.pager
}
alias as.aq.timecheck .timeras.aq 1 60 as.aq.timecheck | if ($as.rtrn(aq.stt) = off) return | if ($idle > $as.rtrn(aq)) as.aq.quit
alias as.aq.quit .timeras.cnt off | if ($server) away | if ($as.rtrn(nick)) nick %as.nick.old | if ($chan(0)) && ($as.rtrn(silent) = $null) ame is leaving - idle over $calc($as.rtrn(aq) / 3600) $+ hour(s) | dialog -x pager.main | unset %as.* | quit $as.logo
on ^*:text:*:?: if ($away != $true) goto end | haltdef | splay stop | if ($as.rtrn(log) = on) { :loop | set %as.ln.num.TTL L $+ %as.date | inc %as.ln.num.1 | set %as.ln.num.2 $readini -n $away.ini %as.ln.num.TTL %as.ln.num.1 | if (%as.ln.num.2) goto loop | as.set %as.ln.num.TTL %as.ln.num.1 $timestamp $nick $1- $iif($1 = $null, ) | unset %as.ln.num.* | inc %as.log.num 1 | did -ra pager.main 6 %as.log.num | splay $quo($phone.wav) } | close -m $nick | if (%as.nick.msg. [ $+ [ $nick ] ]) return | if ($as.rtrn(log) = on) .msg $nick I am away: [ $+ %as.msg $+ ] your message was logged. | else .msg $nick I am away: [ $+ %as.msg $+ ] your message has been erased. | set %as.nick.msg. $+ $nick - | :end
ctcp ^*:page: if ($away != $true) goto end | haltdef | if ($as.rtrn(page) = on) { :loop | set %as.ln.num.TTL P $+ %as.date | inc %as.ln.num.1 | set %as.ln.num.2 $readini -n $away.ini %as.ln.num.TTL %as.ln.num.1 | if (%as.ln.num.2) goto loop | as.set %as.ln.num.TTL %as.ln.num.1 $timestamp $nick $2- $iif($2 = $null, ) | unset %as.ln.num.* | inc %as.page.num 1 | did -ra pager.main 9 %as.page.num | splay $quo($page.wav) } | if (%as.nick.page. [ $+ [ $nick ] ]) return | if ($as.rtrn(page) = on) .msg $nick Your page has been logged, If I am near the computer I will answer ASAP. | else .msg $nick My pager is off, your page has been erased. | set %as.nick.page. $+ $nick - | :end
alias as.log.read {
dialog -mn LOG.read LOG.read
:loop
inc %as.ln.num.1
set %as.ln.num.2 $readini -n $away.ini LOGS.MAIN %as.ln.num.1
if (%as.ln.num.2) {
did -a LOG.read 2 %as.ln.num.2
goto loop
}
unset %as.ln.num.1
}
dialog LOG.read {
title "Logs"
size -1 -1 311 168
list 2,129 10 116 123
list 3,9 10 116 123
edit "",5, 9 123 236 37,multi,read,autovs
button "Del Group" 4, 251 10 54 26,
button "Close" 1, 251 41 54 26,cancel
}
on *:dialog:LOG.read:sclick:*: {
if ($did = 4) as.del.grp L
if ($did = 3) { set %as.ln.TTL L $+ $did(2,$did(2).sel) | set %as.ln.tmp $readini -n $away.ini %as.ln.TTL $did(3).sel | did -ra LOG.read 5 $gettok(%as.ln.tmp,3-,32) | unset %as.ln.* }
if ($did = 2) {
set %as.ln.TTL L $+ $did(2,$did(2).sel)
did -r LOG.read 3,5
:loop
inc %as.ln.num.1
set %as.ln.num.2 $readini -n $away.ini %as.ln.TTL %as.ln.num.1
if (%as.ln.num.2) {
did -a LOG.read 3 $remove($gettok(%as.ln.num.2,1-2,32),],[)
goto loop
}
unset %as.ln.*
if (%as.date = $did(2,$did(2).sel)) did -b LOG.read 4
else did -e LOG.read 4
}
}
alias as.PAGE.read {
dialog -mn PAGE.read PAGE.read
:loop
inc %as.ln.num.1
set %as.ln.num.2 $readini -n $away.ini PAGES.MAIN %as.ln.num.1
if (%as.ln.num.2) {
did -a PAGE.read 2 %as.ln.num.2
goto loop
}
unset %as.ln.num.*
}
dialog PAGE.read {
title "Pages"
size -1 -1 311 168
list 2,129 10 116 123
list 3,9 10 116 123
edit "",5, 9 123 236 37,multi,read,autovs
button "Del Group" 4, 251 10 54 26,
button "Close" 1, 251 41 54 26,cancel
}
on *:dialog:PAGE.read:sclick:*: {
if ($did = 4) as.del.grp P
if ($did = 3) {
set %as.ln.ttl P $+ $did(2,$did(2).sel)
set %as.ln.tmp $readini -n $away.ini %as.ln.ttl $did(3).sel
did -r PAGE.read 5
did -a PAGE.read 5 $gettok(%as.ln.tmp,3-,32)
unset %as.ln.*
}
if ($did = 2) {
set %as.ln.ttl P $+ $did(2,$did(2).sel)
did -r PAGE.read 3
did -r PAGE.read 5
:loop
inc %as.ln.num.1
set %as.ln.num.2 $readini -n $away.ini %as.ln.ttl %as.ln.num.1
if (%as.ln.num.2) {
did -a PAGE.read 3 $remove($gettok(%as.ln.num.2,1-2,32),],[)
goto loop
}
unset %as.ln.*
if (%as.date = $did(2,$did(2).sel)) did -b PAGE.read 4
else did -e PAGE.read 4
}
}
alias as.del.grp {
set %as.ttl.log $did($iif($1 = L,LOG.read,PAGE.read),2,$did($iif($1 = L,LOG.read,PAGE.read),2).sel)
set %as.ttl.log.2 $iif($1 = L,L,P) $+ $did($iif($1 = L,LOG.read,PAGE.read),2,$did($iif($1 = L,LOG.read,PAGE.read),2).sel)
as.unset %as.ttl.log.2
did -r $iif($1 = L,LOG.read,PAGE.read) 3,2,5
:FINDINI
inc %as.ln.num.1
set %as.ln.num.2 $readini -n $away.ini $iif($1 = L,LOGS.MAIN,PAGES.MAIN) %as.ln.num.1
if (%as.ln.num.2 = $null) goto end
if (%as.ln.num.2 != %as.ttl.log) goto FINDINI
remini $away.ini $iif($1 = L,LOGS.MAIN,PAGES.MAIN) %as.ln.num.1
set %as.ln.num.3 $calc(%as.ln.num.1 - 1)
:REMINI
inc %as.ln.num.1
inc %as.ln.num.3
set %as.ln.num.2 $readini -n $away.ini $iif($1 = L,LOGS.MAIN,PAGES.MAIN) %as.ln.num.1
if (%as.ln.num.2) {
writeini $away.ini $iif($1 = L,LOGS.MAIN,PAGES.MAIN) %as.ln.num.3 %as.ln.num.2
as.unset $iif($1 = L,LOGS.MAIN,PAGES.MAIN) %as.ln.num.1
goto REMINI
}
set %as.ln.num.1 0
:loop
inc %as.ln.num.1
set %as.ln.num.2 $readini -n $away.ini $iif($1 = L,LOGS.MAIN,PAGES.MAIN) %as.ln.num.1
if (%as.ln.num.2) {
did -a $iif($1 = L,LOG.read,PAGE.read) 2 %as.ln.num.2
goto loop
}
:end
unset %as.ln.num.* %as.ttl.log
did -c $iif($1 = L,LOG.read,PAGE.read) 2 $did($iif($1 = L,LOG.read,PAGE.read),2,0).lines
}