Ren-Ren's Fileserver — File Browser

Ren-RensFileserverv1.2 / Ren-RensFileserverv1.2 / rfs-sys.mrc

rfs-sys.mrc — 29.44 KB — Download this file

; Ren-Ren's Fileserver v1.2
; Copyright© 2001-2003 by Adrian Au. All rights reserved.
; http://adrian.saxtus.gr
; http://www.geocities.com/renx2
; renx2@yahoo.com
;
alias sF12 rfs
on 1:unload:{
  var %~rfsu = $rfs-def(win)
  if (%_rfsunload != 1) unset %rfs*
  hfree -w rfs*
  if ($dialog(%~rfsu) != $null) dialog -x %~rfsu
}
on 1:start:{
  unset %rfs-fs-* %rfs-fsroot-* %rfs-whois>* %~rfsstart
  rfs-varcheck
  if ($script(rfs-dlg.mrc) == $null) .load -rs " $+ $scriptdir $+ rfs-dlg.mrc"
  if ($script(rfs-evnt.mrc) == $null) .load -rs " $+ $scriptdir $+ rfs-evnt.mrc"
  if ($script(rfs-fsrv.mrc) == $null) .load -rs " $+ $scriptdir $+ rfs-fsrv.mrc"
  if ($script(rfs-dmn.mrc) == $null) .load -rs " $+ $scriptdir $+ rfs-dmn.mrc"
}
menu channel {
  RFS (Shift-F12):rfs
}
menu menubar {
  Open RFS (Shift-F12):rfs
}
menu @RFS-Log {
  dclick:if ($line(@RFS-Log,0) < 1) window -c @RFS-Log | else clear
  Open RFS (Shift-F12):rfs
  Clear:clear
}
alias rfs-varcheck {
  if ($numtok(%rfs-opt,46) != $numtok($rfs-def(opt),46)) %rfs-opt = $rfs-def(opt)
  if (%rfs-dir == $null) %rfs-dir = $scriptdir
}
alias rfs {
  if ($dialog($rfs-def(win)) == $null) {
    if ($rfs-opt(desktop) == 1) dialog -md $rfs-def(win) rfsmain
    else dialog -m $rfs-def(win) rfsmain
  }
  else dialog -iev $rfs-def(win)
  if ($rfs-opt(ontop) == 1) dialog -o $rfs-def(win)
  else dialog -n $rfs-def(win)
}
alias rfs-unload {
  if ($1 == $null) {
    if ($rfs-alert(1,Unload RFS?) != Yes) goto End
    if ($rfs-alert(1,Keep options?) == Yes) set -u10 %_rfsunload 1
  }
  .timerrfs* off
  .unload -rs rfs-dlg.mrc
  .unload -rs rfs-evnt.mrc
  .unload -rs rfs-fsrv.mrc
  .unload -rs rfs-dmn.mrc
  .unload -rs rfs-sys.mrc
  :End
}
alias rfs-def {
  if ($1 == win) {
    if ($rfs-network == $null) {
      var %~rfsdef = 1
      while ($dialog(%~rfsdef) != $null) {
        if ($left($dialog(%~rfsdef),4) == RFS-) return $dialog(%~rfsdef)
        inc %~rfsdef 1
      }
    }
    return RFS- $+ $rfs-network
  }
  if ($1 == ini) return " $+ %rfs-dir $+ rfs.ini $+ "
  if ($1 == inir) return " $+ %rfs-dir $+ rfs-ratio.ini $+ "
  if ($1 == banfile) return " $+ %rfs-dir $+ rfs-ban.txt $+ "
  if ($1 == logfile) return " $+ %rfs-dir $+ rfs-log.txt $+ "
  if ($1 == opt) return 10 3 3 1 2 0 0 0 0 0.1.0 0 1 0 0 0.1 0 1 1 1 1 1.1.5.5.30.30.120.50.10.15.0.59.0.0.1.2.4.10.0.0.0.40 80 640 105.600.1.0.0.0
  if ($1 == list) return !list $+ $chr(160) $+ !online
  if ($1 == find) return @find @locator
  if ($1 == ad) return RFS Fserve: Trigger: (10<trigger>) Online: (10<online>/<maxonline>) Sends: (10<send>/<maxsend>) Queues: (10<queue>/<maxq>) Accessed: (10<access> times) Sent: (10<sentb> in <sent> files)
  if ($1 == trigsep) return &
  if ($1 == fsopt) return 1 1 1 1 0 1 0
  if ($1 == minadtimertxt) return Ad Timers (s): (at least $rfs-opt(minadtimer) to activate)
  if ($1 == script) return Ren-Ren's Fileserver v1.2 by Adrian Au
  if ($1 == scripts) return RFS v1.2 by Adrian Au
  if ($1 == page) return http://adrian.saxtus.gr
  if ($1 == sound1) {
    if ($exists(c:\windows\media\chimes.wav) == $true) return c:\windows\media\chimes.wav
    return
  }
  if ($1 == sound2) {
    if ($exists(c:\windows\media\chord.wav) == $true) return c:\windows\media\chord.wav
    return
  }
}
alias rfs-opt {
  if ($numtok(%rfs-opt,46) < $numtok($rfs-def(opt),46)) %rfs-opt = $rfs-def(opt)
  if (%rfs-dir == $null) %rfs-dir = $scriptdir
  if (%rfs-list == $null) %rfs-list = $rfs-def(list)
  if (%rfs-find == $null) %rfs-find = $rfs-def(find)
  if ($1 == dir) return %rfs-dir
  if ($1 == list) return %rfs-list
  if ($1 == find) return %rfs-find
  if ($1 == ico) return %rfs-dir $+ rfs.ico
  if ($1 == sound1) {
    if (%rfs-sound1 == $null) return
    if ($exists(%rfs-sound1) == $true) return %rfs-sound1
    return $rfs-def(sound1)
  }
  if ($1 == sound2) {
    if (%rfs-sound2 == $null) return
    if ($exists(%rfs-sound2) == $true) return %rfs-sound2
    return $rfs-def(sound2)
  }
  if ($1 == fs) {
    if ($2 == fs) {
      if ($numtok($3,32) > 1) return $gettok($3,1,32)
      return $gettok(%rfs-fs- [ $+ [ $3 ] ],1,32)
    }
    if ($2 == maxq) {
      if ($numtok($3,32) > 1) return $gettok($3,2,32)
      return $gettok(%rfs-fs- [ $+ [ $3 ] ],2,32)
    }
    if ($2 == maxsend) {
      if ($numtok($3,32) > 1) return $gettok($3,3,32)
      return $gettok(%rfs-fs- [ $+ [ $3 ] ],3,32)
    }
    if ($2 == maxq-i) {
      if ($numtok($3,32) > 1) return $gettok($3,4,32)
      return $gettok(%rfs-fs- [ $+ [ $3 ] ],4,32)
    }
    if ($2 == maxsend-i) {
      if ($numtok($3,32) > 1) return $gettok($3,5,32)
      return $gettok(%rfs-fs- [ $+ [ $3 ] ],5,32)
    }
    if ($2 == maxonline) {
      if ($numtok($3,32) > 1) return $gettok($3,6,32)
      return $gettok(%rfs-fs- [ $+ [ $3 ] ],6,32)
    }
    if ($2 == mincps) {
      if ($numtok($3,32) > 1) return $gettok($3,7,32)
      return $gettok(%rfs-fs- [ $+ [ $3 ] ],7,32)
    }
    if ($2 == maxcps) {
      if ($numtok($3,32) > 1) return $gettok($3,8,32)
      return $gettok(%rfs-fs- [ $+ [ $3 ] ],8,32)
    }
    if ($2 == autoresume) {
      if ($numtok($3,32) > 1) return $gettok($3,9,32)
      return $gettok(%rfs-fs- [ $+ [ $3 ] ],9,32)
    }
    if ($2 == ratio) {
      if ($numtok($3,32) > 1) return $gettok($3,10,32)
      return $gettok(%rfs-fs- [ $+ [ $3 ] ],10,32)
    }
    if ($2 == ipsend) {
      if ($numtok($3,32) > 1) return $gettok($3,11,32)
      return $gettok(%rfs-fs- [ $+ [ $3 ] ],11,32)
    }
    if ($2 == maxsize) {
      if ($numtok($3,32) > 1) return $gettok($3,12,32)
      return $gettok(%rfs-fs- [ $+ [ $3 ] ],12,32)
    }
    if ($2 == lastcom) {
      if ($numtok($3,32) > 1) return $gettok($3,13-,32)
      return $gettok(%rfs-fs- [ $+ [ $3 ] ],13-,32)
    }
  }
  if ($1 == prop) return $gettok(%rfs-opt,1,46)
  if ($1 == ad) return $gettok(%rfs-opt,2,46)
  if ($1 == fsopt) {
    if ($2 == auto-on) return $gettok($3,1,32)
    if ($2 == stataccess) return $gettok($3,2,32)
    if ($2 == statsend) return $gettok($3,3,32)
    if ($2 == statfail) return $gettok($3,4,32)
    if ($2 == find) return $gettok($3,5,32)
    if ($2 == statpop) return $gettok($3,6,32)
    if ($2 == slot) return $gettok($3,7,32)
  }
  if ($1 == msg) {
    if ($2 == onchanmsgaccess) return $gettok($gettok(%rfs-opt,4,46),1,32)
    if ($2 == onchanmsgfail) return $gettok($gettok(%rfs-opt,4,46),2,32)
    if ($2 == cps) return $gettok($gettok(%rfs-opt,4,46),3,32)
    if ($2 == clone) return $gettok($gettok(%rfs-opt,4,46),4,32)
    if ($2 == ban) return $gettok($gettok(%rfs-opt,4,46),5,32)
    if ($2 == dccallow) return $gettok($gettok(%rfs-opt,4,46),6,32)
    if ($2 == fsoff) return $gettok($gettok(%rfs-opt,4,46),7,32)
  }
  if ($1 == antiidle) return $gettok(%rfs-opt,5,46)
  if ($1 == findmax) return $gettok(%rfs-opt,6,46)
  if ($1 == cpschk) return $gettok(%rfs-opt,7,46)
  if ($1 == partdelay) return $gettok(%rfs-opt,8,46)
  if ($1 == quitdelay) return $gettok(%rfs-opt,9,46)
  if ($1 == fstimeout) return $gettok(%rfs-opt,10,46)
  if ($1 == autoresumeb) return $gettok(%rfs-opt,11,46)
  if ($1 == autosendb) return $gettok(%rfs-opt,12,46)
  if ($1 == logincache) return $gettok(%rfs-opt,13,46)
  if ($1 == ratio) return $gettok(%rfs-opt,14,46)
  if ($1 == ipsendport) return $gettok(%rfs-opt,15,46)
  if ($1 == onchan) return $gettok(%rfs-opt,16,46)
  if ($1 == ontop) return $gettok(%rfs-opt,17,46)
  if ($1 == desktop) return $gettok(%rfs-opt,18,46)
  if ($1 == color1) return $gettok(%rfs-opt,19,46)
  if ($1 == color2) return $gettok(%rfs-opt,20,46)
  if ($1 == color3) return $gettok(%rfs-opt,21,46)
  if ($1 == fsoffstopq) return $gettok(%rfs-opt,22,46)
  if ($1 == ontoplog) return $gettok(%rfs-opt,23,46)
  if ($1 == noticeshow) return $gettok(%rfs-opt,24,46)
  if ($1 == logpossize) return $gettok(%rfs-opt,25,46)
  if ($1 == minadtimer) return $gettok(%rfs-opt,26,46)
  if ($1 == qdupchk) return $gettok(%rfs-opt,27,46)
  if ($1 == slowonget) return $gettok(%rfs-opt,28,46)
  if ($1 == pauseqonget) return $gettok(%rfs-opt,29,46)
  if ($1 == fstimelimit) return $gettok(%rfs-opt,30,46)
  if ($1 == log) {
    if ($2 == fsopen) return $gettok($gettok(%rfs-opt,3,46),1,32)
    if ($2 == fslogin) return $gettok($gettok(%rfs-opt,3,46),2,32)
    if ($2 == fserror) return $gettok($gettok(%rfs-opt,3,46),3,32)
    if ($2 == filercvd) return $gettok($gettok(%rfs-opt,3,46),4,32)
    if ($2 == filesent) return $gettok($gettok(%rfs-opt,3,46),5,32)
    if ($2 == sendfail) return $gettok($gettok(%rfs-opt,3,46),6,32)
  }
}
alias rfs-setnetwork {
  %rfs-network = $readini $rfs-def(ini) Network $server
  if (%rfs-network == $null) && ($rfn-network != $null) && ($rfn-network != $server) %rfs-network = $rfn-network
  if (%rfs-network == $null) {
    %rfs-network = $gettok($rfs-alert(2,Cannot determine network name. What network does $server belong to?),1,32)
    if (%rfs-network != $null) writeini -n $rfs-def(ini) Network $server %rfs-network
  }
}
alias rfs-network {
  if ($network != $null) return $network
  if (%rfs-network != $null) return %rfs-network
  %rfs-network = $readini $rfs-def(ini) Network $server
  if (%rfs-network != $null) return %rfs-network
  if ($script(rfn-main.mrc) != $null) && (%rfn-network != $null) {
    %rfs-network = %rfn-network
    return %rfs-network
  }
  return $server
}
; <dialog> <name>
alias rfs-ddialog {
  if ($did($1,1).seltext != $null) {
    if ($dialog(RFS [ $+ [ $2 ] $+ [ - ] $+ [ $rfs-network ] ] ) != $null) dialog -x RFS $+ $2 $+ - $+ $rfs-network
    set -u3 %rfs [ $+ [ $2 ] ] $gettok($did($1,1).seltext,2,32)
    dialog -ma RFS $+ $2 $+ - $+ $rfs-network rfs $+ $2
  }
}
alias rfs-alert {
  if ($dialog(RFSAlert [ $+ [ $rfs-network ] ] ) != $null) dialog -x RFSAlert $+ $rfs-network
  set -u1 %rfs-alert $2-
  if ($1 == 0) return $dialog(RFSAlert [ $+ [ $rfs-network ] ] ,rfsalertbox,-4)
  elseif ($1 == 1) return $dialog(RFSAlert [ $+ [ $rfs-network ] ] ,rfspromptbox,-4)
  elseif ($1 == 2) return $dialog(RFSAlert [ $+ [ $rfs-network ] ] ,rfsentrybox,-4)
  elseif ($1 == 3) return $dialog(RFSAlert [ $+ [ $rfs-network ] ] ,rfswait,-4)
}
alias rfs-logwin {
  if ($window(@RFS-Log) == $null) {
    if ($rfs-opt(ontoplog) == 1) window -doak0h @RFS-Log $rfs-opt(logpossize)
    else window -dak0h @RFS-Log $rfs-opt(logpossize)
  }
  else window -a @RFS-Log
}
alias rfs-logrfs {
  if ($did($rfs-def(win),401).lines > 299) did -d $rfs-def(win) 1
  did -a $rfs-def(win) 401 $strip($1-) $crlf $crlf
  did -z $rfs-def(win) 401
}
alias rfs-log {
  if ($1 == 1) {
    if ($window(@RFS-Log) != $null) { aline @RFS-Log $chr(160) | aline -p @RFS-Log 15 $+ $chr(91) $+ $asctime(yyyy/mm/dd h:nn:sstt ddd) $+ $chr(93)  $2- }
    if ($dialog($rfs-def(win)) != $null) rfs-logrfs $chr(91) $+ $asctime(yyyy/mm/dd h:nn:sstt ddd) $+ $chr(93) $2-
    write $rfs-def(logfile) $chr(91) $+ $asctime(yyyy/mm/dd h:nn:sstt ddd) $+ $chr(93) $strip($2-)
  }
  elseif ($strip($2) == RFS) {
    if ($1 == 2) rfs-logwin
    if ($window(@RFS-Log) != $null) { aline @RFS-Log $chr(160) | aline -p @RFS-Log 15 $+ $chr(91) $+ $asctime(yyyy/mm/dd h:nn:sstt ddd) $+ $chr(93)  $2- | window -a @RFS-Log }
    if ($dialog($rfs-def(win)) != $null) && ($strip($3-4) != Color preview:) rfs-logrfs $chr(91) $+ $asctime(yyyy/mm/dd h:nn:sstt ddd) $+ $chr(93) $2-
  }
  if ($2 == Error:) && ($rfs-opt(sound2) != $null) splay $rfs-opt(sound2)
}
alias rfs-notice {
  .notice $1-
  if ($rfs-opt(noticeshow) == 1) rfs-log 0 Notice $1 » $2-
}
alias rfs-msg {
  .msg $1-
  if ($rfs-opt(noticeshow) == 1) rfs-log 0 Message $1 » $2-
}
alias rfs-trigsep {
  var %~rfs-trigsep = $readini $rfs-def(ini) fs- $+ $1 trigsep
  if (%~rfs-trigsep == $null) return $rfs-def(trigsep)
  return %~rfs-trigsep
}
; <fs> <stat>
alias rfs-stat {
  var %~rfsstat = $readini $rfs-def(ini) stat- $+ $1 $2
  if (%~rfsstat == $null) return N/A
  if ($2 == sentb) || ($2 == failb) return $bytes(%~rfsstat,3).suf
  return %~rfsstat
}
; <fs> <stat>
alias rfs-statfsonoff {
  if ($timer(rfs [ $+ [ $2 ] $+ [ $1 ] ] ) != $null) return $duration($timer(rfs [ $+ [ $2 ] $+ [ $1 ] ] ).secs)
  return N/A
}
; <fs> <nick> <chan or 0>
alias rfs-onchan {
  var %~rfsonchan2 = $readini $rfs-def(ini) fs- $+ $1 chan
  if ($3 != 0) {
    if ($findtok(%~rfsonchan2,$3,1,32) == $null) && (%~rfsonchan2 != all) return %~rfsonchan2
    return $3
  }
  var %~rfsonchan = 1
  while ($comchan($2,%~rfsonchan) != $null) {
    if ($findtok(%~rfsonchan2,$comchan($2,%~rfsonchan),1,32) != $null) return $comchan($2,%~rfsonchan)
    inc %~rfsonchan 1
  }
  return %~rfsonchan2
}
; <chan> <nick> <o,h,v,r>
alias rfs-access {
  if ($3 == $null) return a
  if ($findtok($3,r,1,44) != $null) && ($nick($1,$2,r) != $null) return r
  if ($findtok($3,o,1,44) != $null) && ($nick($1,$2,o) != $null) return o
  if ($findtok($3,v,1,44) != $null) && ($nick($1,$2,v) != $null) return v
  if ($findtok($3,h,1,44) != $null) && ($nick($1,$2,h) != $null) return h
  return n
}
; <fs> <maxonline> [1 for real count]
alias rfs-onlinecnt {
  var %~rfsonlinecnt = $fserv(0)
  var %~rfsonlinecnt2 = 0
  :A
  if (%~rfsonlinecnt < 1) return $calc($2 - %~rfsonlinecnt2)
  if ($rfs-opt(fs,fs,$fserv(%~rfsonlinecnt)) == $1) inc %~rfsonlinecnt2 1
  if ($3 != 1) && (%~rfsonlinecnt2 >= $2) return 0
  dec %~rfsonlinecnt 1
  goto A
}
; <nick> <maxsend-i>
alias rfs-sendcnti {
  var %~rfssendcnti = $send($1,0)
  var %~rfssendcnti2 = 0
  :A
  if (%~rfssendcnti < 1) return $calc($2 - %~rfssendcnti2)
  if ($send($1,%~rfssendcnti).status != inactive) inc %~rfssendcnti2 1
  if (%~rfssendcnti2 >= $2) return 0
  dec %~rfssendcnti 1
  goto A
}
; <fs> <maxsend> [1 for real count]
alias rfs-sendcnt {
  var %~rfssendcnt = $send(0)
  var %~rfssendcnt2 = 0
  :A
  if (%~rfssendcnt < 1) return $calc($2 - %~rfssendcnt2)
  var %~rfssendcnt3 = $send(%~rfssendcnt) $+ $chr(160) $+ $replace($send(%~rfssendcnt).path,$chr(32),$chr(95)) $+ $replace($send(%~rfssendcnt).file,$chr(32),$chr(95))
  if ($gettok(%rfs-send- [ $+ [ %~rfssendcnt3 ] ],1,32) == $1) inc %~rfssendcnt2 1
  if ($3 != 1) && (%~rfssendcnt2 >= $2) return 0
  dec %~rfssendcnt 1
  goto A
}
; <nick> <mask>
alias rfs-address {
  if ($address($1,5) != $null) return $address($1,$2)
  if (%rfs-whois> [ $+ [ $rfs-network ] $+ [ $1 ] ] != $null) return $mask(%rfs-whois> [ $+ [ $rfs-network ] $+ [ $nick ] ],$2)
  return $fserv($1).ip
}
alias rfs-dccmaxcps {
  return $gettok($readini $mircini options n5,28,44)
}
alias rfs-dayconv {
  if ($1 == Monday) return 1
  if ($1 == Tuesday) return 2
  if ($1 == Wednesday) return 3
  if ($1 == Thursday) return 4
  if ($1 == Friday) return 5
  if ($1 == Saturday) return 6
  if ($1 == Sunday) return 7
}
alias rfs-dayconvb {
  if ($1 == 1) return 1 Monday
  if ($1 == 2) return 2 Tuesday
  if ($1 == 3) return 3 Wednesday
  if ($1 == 4) return 4 Thursday
  if ($1 == 5) return 5 Friday
  if ($1 == 6) return 6 Saturday
  if ($1 == 7) return 7 Sunday
  return 0 Any $+ $chr(160) $+ day
}
alias rfs-switch {
  if ($4 != $null) {
    if ($rfs-opt($1,$2) == 0) %rfs-opt = $puttok(%rfs-opt,$puttok($gettok(%rfs-opt,$3,46),1,$4,32),$3,46)
    else %rfs-opt = $puttok(%rfs-opt,$puttok($gettok(%rfs-opt,$3,46),0,$4,32),$3,46)
  }
  else {
    if ($rfs-opt($1) == 0) %rfs-opt = $puttok(%rfs-opt,1,$2,46)
    else %rfs-opt = $puttok(%rfs-opt,0,$2,46)
  }
}
; <nick> <command>
alias rfs-whois {
  %rfs-whois- [ $+ [ $rfs-network ] $+ [ $1 ] ] = $2-
  %rfs-whois. [ $+ [ $rfs-network ] ] = $addtok(%rfs-whois. [ $+ [ $rfs-network ] ],$1,32)
  userhost $1
}
; <window> <id> <nick> <mask format> <did format>
alias rfs-whoisdid {
  if ($dialog($1) != $null) && (($2 == 1) || ($didwm($1,$2,$mask(%rfs-whois> [ $+ [ $rfs-network ] $+ [ $3 ] ],$4) *) < 1)) did -a $1 $2 $replace($5-,<address>,$mask(%rfs-whois> [ $+ [ $rfs-network ] $+ [ $3 ] ],$4),<ip>,$gettok($mask(%rfs-whois> [ $+ [ $rfs-network ] $+ [ $3 ] ],$4),2,64))
}
; <dialog> <id> <target>
alias rfs-moveup {
  if ($did($1,$2).sel > 1) {
    did -i $1 $2 $3 $did($1,$2).seltext
    did -d $1 $2 $did($1,$2).sel
    did -c $1 $2 $3
  }
}
alias rfs-movedown {
  if ($did($1,$2).sel < $did($1,$2).lines) {
    did -i $1 $2 $3 $did($1,$2).seltext
    did -d $1 $2 $did($1,$2).sel
    did -c $1 $2 $calc($3 - 1)
  }
}
alias rfs-credlist {
  did -r $rfs-def(win) 301
  if ($did($rfs-def(win),306).state == 0) && ($did($rfs-def(win),307).state == 0) && ($did($rfs-def(win),308).state == 0) did -c $rfs-def(win) 306
  var %~rfscredit = $ini($rfs-def(inir),credit,0)
  while (%~rfscredit > 0) {
    var %~rfscredit2 = $ini($rfs-def(inir),credit,%~rfscredit)
    var %~rfscredit3 = $readini $rfs-def(inir) credit %~rfscredit2
    if ($did($rfs-def(win),306).state == 1) did -a $rfs-def(win) 301 $asctime($gettok(%~rfscredit3,2,32),yyyy/mm/dd h:nn:sstt ddd) %~rfscredit2 $gettok(%~rfscredit3,1,32)
    elseif ($did($rfs-def(win),307).state == 1) did -a $rfs-def(win) 301 %~rfscredit2 $gettok(%~rfscredit3,1,32) $asctime($gettok(%~rfscredit3,2,32),yyyy/mm/dd h:nn:sstt ddd)
    else did -a $rfs-def(win) 301 $gettok(%~rfscredit3,1,32) %~rfscredit2 $asctime($gettok(%~rfscredit3,2,32),yyyy/mm/dd h:nn:sstt ddd)
    dec %~rfscredit 1
  }
}
alias rfs-banlistc {
  did -r $rfs-def(win) 201,202,203
  var %~rfsbanlistc = $chan(0)
  while (%~rfsbanlistc > 0) {
    did -a $rfs-def(win) 202 $chan(%~rfsbanlistc)
    dec %~rfsbanlistc 1
  }
  if ($exists($rfs-def(banfile)) == $true) loadbuf -o $rfs-def(win) 201 $rfs-def(banfile)
}
alias rfs-banlistn {
  did -r $rfs-def(win) 203
  var %~rfsbanlistn = $nick($did($rfs-def(win),202).seltext,0)
  while (%~rfsbanlistn > 0) {
    var %~rfsbanlistn2 = $nick($did($rfs-def(win),202).seltext,%~rfsbanlistn)
    if ($address(%~rfsbanlistn2,3) == $null) || ($didwm($rfs-def(win),201,$address(%~rfsbanlistn2,3) *) < 1) did -a $rfs-def(win) 203 %~rfsbanlistn2
    dec %~rfsbanlistn 1
  }
}
alias rfs-fsdef {
  did -r $rfs-def(win) 3,6,7,8,9,10,11,12,13,14,15,16,17,18,19,47,69,71
  did -c $rfs-def(win) 74,75,76,77,78,79
  did -u $rfs-def(win) 73,83
  did -a $rfs-def(win) 3 all
  did -a $rfs-def(win) 11 0
  did -a $rfs-def(win) 12 $rfs-def(trigsep)
  did -a $rfs-def(win) 69 $gettok($rfs-opt(prop),8,32)
  did -a $rfs-def(win) 71 $gettok($rfs-opt(prop),9,32)
  did -a $rfs-def(win) 6 $gettok($rfs-opt(prop),1,32)
  did -a $rfs-def(win) 7 $gettok($rfs-opt(prop),2,32)
  did -a $rfs-def(win) 13 $gettok($rfs-opt(prop),5,32)
  did -a $rfs-def(win) 8 $gettok($rfs-opt(prop),3,32)
  did -a $rfs-def(win) 9 $gettok($rfs-opt(prop),4,32)
  did -a $rfs-def(win) 19 $gettok($rfs-opt(prop),6,32)
  did -a $rfs-def(win) 47 $gettok($rfs-opt(prop),7,32)
  did -b $rfs-def(win) 4,26,37,38,39,67,81
}
alias rfs-fsshow {
  rfs-fsdef
  did -r $rfs-def(win) 1
  did -o $rfs-def(win) 48 1 Pause Sel. Q&ueue(s)
  var %~rfs = $ini($rfs-def(ini),fs,0)
  while (%~rfs > 0) {
    var %~rfs2 = $ini($rfs-def(ini),fs,%~rfs)
    var %~rfs3 = $replace($readini $rfs-def(ini) fs %~rfs2,$chr(160), [ [ $chr(160) ] $+ [ $rfs-trigsep(%~rfs2) ] $+ [ $chr(160) ] ] )
    if ($hget(rfs-fs,%~rfs2) != $null) did -a $rfs-def(win) 1 o %~rfs2 $replace(%~rfs3,$chr(160),$chr(32))
    else did -a $rfs-def(win) 1 x %~rfs2 $replace(%~rfs3,$chr(160),$chr(32))
    dec %~rfs 1
  }
  did -z $rfs-def(win) 1
}
alias rfs-fsinfoshow {
  did -r $rfs-def(win) 3,6,7,8,9,10,11,12,13,14,15,16,17,18,19,47,69,71
  did -u $rfs-def(win) 73,74,75,76,77,78,79,83
  did -e $rfs-def(win) 4,26,37,38,39,67,81
  var %~rfsinfoshow = $gettok($did($rfs-def(win),1).seltext,2,32)
  rfs-pauseq %~rfsinfoshow
  var %~rfsinfoshow2 = $readini $rfs-def(ini) fs %~rfsinfoshow
  var %~rfsinfoshow6 = $readini $rfs-def(ini) fs- $+ %~rfsinfoshow maxsize
  var %~rfsinfoshow7 = $readini $rfs-def(ini) fs- $+ %~rfsinfoshow access
  var %~rfsinfoshow3 = 1
  while ($gettok(%~rfsinfoshow2,%~rfsinfoshow3,160) != $null) {
    var %~rfsinfoshow4 = $readini $rfs-def(ini) fs- $+ %~rfsinfoshow dir $+ %~rfsinfoshow3
    var %~rfsinfoshow5 = $readini $rfs-def(ini) fs- $+ %~rfsinfoshow welcome $+ %~rfsinfoshow3
    if (%~rfsinfoshow5 == $null) var %~rfsinfoshow5 = none
    did -a $rfs-def(win) 15 $gettok(%~rfsinfoshow2,%~rfsinfoshow3,160) $+ $str($chr(160),3) $+ %~rfsinfoshow4 $+ $str($chr(160),3) $+ %~rfsinfoshow5 $+ $str($chr(160),3) $+ $gettok(%~rfsinfoshow6,%~rfsinfoshow3,32) $+ $str($chr(160),3) $+ $gettok(%~rfsinfoshow7,%~rfsinfoshow3,32)
    inc %~rfsinfoshow3 1
  }
  did -c $rfs-def(win) 15 1
  var %~rfsinfoshow2 = $readini $rfs-def(ini) fs- $+ %~rfsinfoshow chan
  if (%~rfsinfoshow2 != $null) did -a $rfs-def(win) 3 %~rfsinfoshow2
  var %~rfsinfoshow2 = $readini $rfs-def(ini) fs- $+ %~rfsinfoshow prop
  if (%~rfsinfoshow2 == $null) var %~rfsinfoshow2 = $rfs-opt(prop)
  if ($rfs-opt(fs,ipsend,1 %~rfsinfoshow2) == 1) did -c $rfs-def(win) 73
  did -a $rfs-def(win) 17 $calc($rfs-opt(fs,maxsend,1 %~rfsinfoshow2) - $rfs-sendcnt(%~rfsinfoshow,$rfs-opt(fs,maxsend,1 %~rfsinfoshow2),1))
  did -a $rfs-def(win) 18 $calc($rfs-opt(fs,maxonline,1 %~rfsinfoshow2) - $rfs-onlinecnt(%~rfsinfoshow,$rfs-opt(fs,maxonline,1 %~rfsinfoshow2),1))
  did -a $rfs-def(win) 6 $rfs-opt(fs,maxq,1 %~rfsinfoshow2)
  did -a $rfs-def(win) 7 $rfs-opt(fs,maxsend,1 %~rfsinfoshow2)
  did -a $rfs-def(win) 8 $rfs-opt(fs,maxq-i,1 %~rfsinfoshow2)
  did -a $rfs-def(win) 9 $rfs-opt(fs,maxsend-i,1 %~rfsinfoshow2)
  did -a $rfs-def(win) 13 $rfs-opt(fs,maxonline,1 %~rfsinfoshow2)
  did -a $rfs-def(win) 19 $rfs-opt(fs,mincps,1 %~rfsinfoshow2)
  did -a $rfs-def(win) 47 $rfs-opt(fs,maxcps,1 %~rfsinfoshow2)
  did -a $rfs-def(win) 69 $rfs-opt(fs,autoresume,1 %~rfsinfoshow2)
  did -a $rfs-def(win) 71 $rfs-opt(fs,ratio,1 %~rfsinfoshow2)
  var %~rfsinfoshow2 = $readini $rfs-def(ini) fs- $+ %~rfsinfoshow fsopt
  if ($gettok(%~rfsinfoshow2,1,32) == 1) did -c $rfs-def(win) 74
  if ($gettok(%~rfsinfoshow2,2,32) == 1) did -c $rfs-def(win) 76
  if ($gettok(%~rfsinfoshow2,3,32) == 1) did -c $rfs-def(win) 77
  if ($gettok(%~rfsinfoshow2,4,32) == 1) did -c $rfs-def(win) 78
  if ($gettok(%~rfsinfoshow2,5,32) == 1) did -c $rfs-def(win) 75
  if ($gettok(%~rfsinfoshow2,6,32) == 1) did -c $rfs-def(win) 79
  if ($gettok(%~rfsinfoshow2,7,32) == 1) did -c $rfs-def(win) 83
  var %~rfsinfoshow2 = $readini $rfs-def(ini) fs- $+ %~rfsinfoshow ad
  if (%~rfsinfoshow2 != $null) did -a $rfs-def(win) 10 $replace(%~rfsinfoshow2,<r>,,<u>,,<b>,,<c>,)
  var %~rfsinfoshow2 = $readini $rfs-def(ini) fs- $+ %~rfsinfoshow adtimer
  if (%~rfsinfoshow2 != $null) did -a $rfs-def(win) 11 %~rfsinfoshow2
  else did -a $rfs-def(win) 11 $str(0,$numtok($did($rfs-def(win),3),32))
  var %~rfsinfoshow2 = $readini $rfs-def(ini) fs- $+ %~rfsinfoshow trigsep
  if (%~rfsinfoshow2 != $null) did -a $rfs-def(win) 12 %~rfsinfoshow2
  else did -a $rfs-def(win) 12 $rfs-def(trigsep)
  rfs-qchk %~rfsinfoshow
  did -a $rfs-def(win) 16 $line(@rfs-q- [ $+ [ %~rfsinfoshow ] ] ,0)
  did -z $rfs-def(win) 15
  if ($line(@rfs-q- [ $+ [ %~rfsinfoshow ] ] ,0) < 1) window -c @rfs-q- $+ %~rfsinfoshow
}
; <1 for new>
alias rfs-savefs {
  if ($did($rfs-def(win),15,1) == $null) { rfs-alert 0 At least one trigger must be specified. Use the "Add/Apply" button to add to the Trigger List box. | goto End }
  if ($did($rfs-def(win),6) != $null) && (($did($rfs-def(win),6) !isnum) || ($did($rfs-def(win),6) < 0)) { rfs-alert 0 Invalid fserve max queue. | goto End }
  if ($did($rfs-def(win),7) != $null) && (($did($rfs-def(win),7) !isnum) || ($did($rfs-def(win),7) < 0)) { rfs-alert 0 Invalid fserve max send. | goto End }
  if ($did($rfs-def(win),13) != $null) && (($did($rfs-def(win),13) !isnum) || ($did($rfs-def(win),13) < 0)) { rfs-alert 0 Invalid fserve max online. | goto End }
  if ($did($rfs-def(win),8) != $null) && (($did($rfs-def(win),8) !isnum) || ($did($rfs-def(win),8) < 0)) { rfs-alert 0 Invalid individual max queue. | goto End }
  if ($did($rfs-def(win),9) != $null) && (($did($rfs-def(win),9) !isnum) || ($did($rfs-def(win),9) < 0)) { rfs-alert 0 Invalid individual max send. | goto End }
  if ($did($rfs-def(win),19) != $null) && (($did($rfs-def(win),19) !isnum) || ($did($rfs-def(win),19) < 0)) { rfs-alert 0 Invalid individual min cps. | goto End }
  if ($did($rfs-def(win),47) != $null) && (($did($rfs-def(win),47) !isnum) || ($did($rfs-def(win),47) < 0)) { rfs-alert 0 Invalid individual max cps. 0 for none. | goto End }
  if ($did($rfs-def(win),69) != $null) && (($did($rfs-def(win),69) !isnum) || ($did($rfs-def(win),69) < 0)) { rfs-alert 0 Invalid autoresume tries. 0 for none. | goto End }
  if ($did($rfs-def(win),71) != $null) && (($did($rfs-def(win),71) !isnum) || ($did($rfs-def(win),71) < 0)) { rfs-alert 0 Invalid ratio. Enter <value> in DL:UL ratio of <value>:1. | goto End }
  if ($did($rfs-def(win),12) == $null) did -a $rfs-def(win) 12 $chr(38)
  if ($did($rfs-def(win),3) == $null) did -a $rfs-def(win) 3 all
  if ($did($rfs-def(win),10) == $null) did -a $rfs-def(win) 10 $rfs-def(ad)
  if ($1 == 1) || ($did($rfs-def(win),1).sel == $null) {
    var %~rfssavefs = 1
    while ($readini $rfs-def(ini) fs %~rfssavefs != $null) {
      inc %~rfssavefs 1
    }
  }
  else var %~rfssavefs = $gettok($did($rfs-def(win),1).seltext,2,32)
  remini -n $rfs-def(ini) fs- $+ %~rfssavefs
  unset %~rfssavefs3 %~rfssavefs4 %~rfssavefs5
  var %~rfssavefs2 = 1
  while ($did($rfs-def(win),15,%~rfssavefs2) != $null) {
    var %~rfssavefs3 = $addtok(%~rfssavefs3,$gettok($did($rfs-def(win),15,%~rfssavefs2),1,160),160)
    var %~rfssavefs4 = $instok(%~rfssavefs4,$gettok($did($rfs-def(win),15,%~rfssavefs2),4,160),$calc($numtok(%~rfssavefs4,32) + 1),32)
    var %~rfssavefs5 = $instok(%~rfssavefs5,$gettok($did($rfs-def(win),15,%~rfssavefs2),5,160),$calc($numtok(%~rfssavefs4,32) + 1),32)
    writeini -n $rfs-def(ini) fs- $+ %~rfssavefs dir $+ %~rfssavefs2 $gettok($did($rfs-def(win),15,%~rfssavefs2),2,160)
    if ($gettok($did($rfs-def(win),15,%~rfssavefs2),3,160) != none) writeini -n $rfs-def(ini) fs- $+ %~rfssavefs welcome $+ %~rfssavefs2 $gettok($did($rfs-def(win),15,%~rfssavefs2),3,160)
    inc %~rfssavefs2 1
  }
  writeini -n $rfs-def(ini) fs %~rfssavefs %~rfssavefs3
  writeini -n $rfs-def(ini) fs- $+ %~rfssavefs maxsize %~rfssavefs4
  writeini -n $rfs-def(ini) fs- $+ %~rfssavefs access %~rfssavefs5
  writeini -n $rfs-def(ini) fs- $+ %~rfssavefs trigsep $did($rfs-def(win),12)
  if ($hget(rfs-fs,%~rfssavefs) != $null) hadd rfs-fs %~rfssavefs %~rfssavefs3
  writeini -n $rfs-def(ini) fs- $+ %~rfssavefs chan $did($rfs-def(win),3)
  var %~rfssavefs2 = $rfs-opt(prop)
  if ($did($rfs-def(win),6) != $null) var %~rfssavefs2 = $puttok(%~rfssavefs2,$int($did($rfs-def(win),6)),1,32)
  if ($did($rfs-def(win),7) != $null) var %~rfssavefs2 = $puttok(%~rfssavefs2,$int($did($rfs-def(win),7)),2,32)
  if ($did($rfs-def(win),8) != $null) var %~rfssavefs2 = $puttok(%~rfssavefs2,$int($did($rfs-def(win),8)),3,32)
  if ($did($rfs-def(win),9) != $null) var %~rfssavefs2 = $puttok(%~rfssavefs2,$int($did($rfs-def(win),9)),4,32)
  if ($did($rfs-def(win),13) != $null) var %~rfssavefs2 = $puttok(%~rfssavefs2,$int($did($rfs-def(win),13)),5,32)
  if ($did($rfs-def(win),19) != $null) var %~rfssavefs2 = $puttok(%~rfssavefs2,$int($did($rfs-def(win),19)),6,32)
  if ($did($rfs-def(win),47) != $null) var %~rfssavefs2 = $puttok(%~rfssavefs2,$int($did($rfs-def(win),47)),7,32)
  if ($did($rfs-def(win),69) != $null) var %~rfssavefs2 = $puttok(%~rfssavefs2,$int($did($rfs-def(win),69)),8,32)
  if ($did($rfs-def(win),71) != $null) var %~rfssavefs2 = $puttok(%~rfssavefs2,$int($did($rfs-def(win),71)),9,32)
  if ($did($rfs-def(win),73).state == 1) var %~rfssavefs2 = $puttok(%~rfssavefs2,1,10,32)
  writeini -n $rfs-def(ini) fs- $+ %~rfssavefs prop %~rfssavefs2
  if ($numtok($did($rfs-def(win),3),32) == $numtok($did($rfs-def(win),11),32)) var %~rfssavefs2 = $did($rfs-def(win),11)
  else {
    if ($numtok($did($rfs-def(win),3),32) > $numtok($did($rfs-def(win),11),32)) {
      var %~rfssavefs2 = $calc($numtok($did($rfs-def(win),3),32) - $numtok($did($rfs-def(win),11),32))
      var %~rfssavefs2 = $did($rfs-def(win),11) $+ $str( [ [ $chr(160) ] $+ ] 0,%~rfssavefs2)
      var %~rfssavefs2 = $replace(%~rfssavefs2,$chr(160),$chr(32))
    }
    else var %~rfssavefs2 = $gettok($did($rfs-def(win),11),1- $numtok($did($rfs-def(win),3),32),32)
    did -o $rfs-def(win) 11 1 %~rfssavefs2
  }
  writeini -n $rfs-def(ini) fs- $+ %~rfssavefs adtimer %~rfssavefs2
  unset %~rfssavefs3
  var %~rfssavefs2 = $did($rfs-def(win),10).lines
  while (%~rfssavefs2 > 0) {
    var %~rfssavefs3 = $did($rfs-def(win),10,%~rfssavefs2) %~rfssavefs3
    dec %~rfssavefs2 1
  }
  writeini -n $rfs-def(ini) fs- $+ %~rfssavefs ad $replace(%~rfssavefs3,$chr(3),<c>,$chr(2),<b>,$chr(31),<u>,$chr(22),<r>)
  var %~rfssavefs2 = 0 0 0 0 0 0 0
  if ($did($rfs-def(win),74).state == 1) var %~rfssavefs2 = $puttok(%~rfssavefs2,1,1,32)
  if ($did($rfs-def(win),76).state == 1) var %~rfssavefs2 = $puttok(%~rfssavefs2,1,2,32)
  if ($did($rfs-def(win),77).state == 1) var %~rfssavefs2 = $puttok(%~rfssavefs2,1,3,32)
  if ($did($rfs-def(win),78).state == 1) var %~rfssavefs2 = $puttok(%~rfssavefs2,1,4,32)
  if ($did($rfs-def(win),75).state == 1) var %~rfssavefs2 = $puttok(%~rfssavefs2,1,5,32)
  if ($did($rfs-def(win),79).state == 1) var %~rfssavefs2 = $puttok(%~rfssavefs2,1,6,32)
  if ($did($rfs-def(win),83).state == 1) var %~rfssavefs2 = $puttok(%~rfssavefs2,1,7,32)
  writeini -n $rfs-def(ini) fs- $+ %~rfssavefs fsopt %~rfssavefs2
  if ($readini $rfs-def(ini) stat- $+ %~rfssavefs 1 == $null) writeini -n $rfs-def(ini) stat- $+ %~rfssavefs 1 $asctime(mm/dd/yyyy h:nntt (zzz))
  if ($hget(rfs-fs,%~rfssavefs) != $null) rfs-fson %~rfssavefs
  rfs-alert 0 Saved to Fserve %~rfssavefs $+ .
  rfs-fsshow
  :End
}
; End of script