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
}