aIRC — File Browser
aIRCv0.8.69 / aIRCv0.8.69 / addons / fserve2.mrc
fserve2.mrc — 30.17 KB — Download this file
;/**********************************************************************
; *
; * aIRC
; * File Server - file2
; *
; **********************************************************************/
;
alias _fserve.setup {
_dialog -m _fserve.setup _fserve.setup
var %i = 10
while (%i <= 18) {
if (%i == 12) { %i = 15 }
if ($did(_fserve.setup,%i).text == $1-) { did -c _fserve.setup %i }
inc %i
}
}
dialog _fserve.setup {
size -1 -1 250 130
option dbu
title "File Server Setup"
tab "Setup",10,5 1 240 105
tab "Advertising",11
tab "Commands",15
tab "Stats",16
tab "Users",17
tab "Bans",18
tab "@find",19
; TAB 10
box "",1234,10 17 73 83,tab 10
check "Use &userlist",31,15 28 50 8,tab 10
radio "&Leech",32,15 38 26 8,tab 10
radio "&Ratio 1:",33,15 48 37 8,tab 10
edit "",37,55 46 25 10,tab 10
text "Initial credits:",27,15 60 40 10,tab 10
edit "",38,55 58 25 10,autohs tab 10
text "Max Users:",39,15 72 31 10,tab 10
edit "",40,55 70 25 10,tab 10
box "",41,82 17 157 83,tab 10
box "",42,82 17 157 22,tab 10
text "&Description:",45,85 27 30 10,right tab 10
edit "",46,120 24 115 12,autohs tab 10
text "&Triggers:",43,85 44 30 10,right tab 10
combo 44,120 42 80 100,drop tab 10
text "&Home dir:",47,85 59 30 10,right tab 10
button "",48,120 57 115 12,tab 10
text "&Welcome:",49,85 74 30 10,right tab 10
button "",50,120 72 103 12,tab 10
button "edit",51,223 72 12 12,tab 10
button "add",52,202 42 15 10,tab 10
button "del",53,220 42 15 10,tab 10
list 54,100 100 100 100,hide
list 55,100 100 100 100,hide
check "Only in chans:",56,85 88 42 8,tab 10
edit "",57,128 86 106 10,tab 10
; TAB 11
box "",76,10 17 230 80,tab 11
check "Only in these channels:",71,20 43 63 8,tab 11
edit "",73,85 41 150 10,tab 11 autohs
;;;;;;;;; mIRC BUG here!
check "Advert channels every",84,20 30 65 8,tab 11
edit "10",86,85 28 15 10,tab 11 autohs
text "minutes",2114,103 30 18 8,tab 11
check "On Join Notice",80,135 30 50 8,tab 11
check "Advert on !list",81,185 30 50 8,tab 11
text "Message",91,15 55 180 8,tab 11
edit "",92,15 63 215 10,tab 11 autohs
button "!",94,231 63 7 10,tab 11
; TAB 15
list 1031,10 28 75 75,extsel sort tab 15
button "-->",1032,93 50 15 15, tab 15
button "<--",1033,93 75 15 15, tab 15
list 1034,115 28 75 75,extsel sort tab 15
text "Active:",1035,115 20 25 8, tab 15
text "On invalid command:",1036,193 30 50 8,tab 15
check "Send Help",1037,195 40 47 8,tab 15
; TAB 16
box "",1201,10 17 230 80,tab 16
text "Logins:",1211,15 30 50 8,tab 16 right
edit "",1212,70 28 50 10,tab 16 autohs
text "Snagged Files:",1213,15 42 50 8,tab 16 right
edit "",1214,70 40 50 10,tab 16 autohs
text "Snagged Bytes:",1215,15 54 50 8,tab 16 right
edit "",1216,70 52 50 10,tab 16 autohs
text "Record CPS:",1217,15 66 50 8,tab 16 right
edit "",1218,70 64 50 10,tab 16 autohs
text "Record CPS by:",1219,15 78 50 8,tab 16 right
edit "",1220,70 76 50 10,tab 16 autohs
button "Reset ALL",1221,140 50 35 15,tab 16
; TAB 17
box "",1301,10 17 230 80,tab 17
box "Handles",1302,10 17 77 80,tab 17
list 1303,13 27 70 70,tab 17
list 1304,13 27 70 70,hide
text "Credits:",1305,87 27 47 8,tab 17 right
edit "",1306,135 25 45 10,tab 17 autohs
text "Logins:",1307,87 38 47 8,tab 17 right
edit "",1308,135 36 45 10,tab 17 autohs
text "Uploaded Files:",1309,87 49 47 8,tab 17 right
edit "",1310,135 47 45 10,tab 17 autohs
text "Uploaded Bytes:",1311,87 60 47 8,tab 17 right
edit "",1312,135 58 45 10,tab 17 autohs
text "Downloaded Files:",1313,87 71 47 8,tab 17 right
edit "",1314,135 69 45 10,tab 17 autohs
text "Downloaded Bytes:",1315,87 82 47 8,tab 17 right
edit "",1316,135 80 45 10,tab 17 autohs
check "Leech",1317,185 47 35 8,tab 17
check "BANNED",1318,185 58 35 8,tab 17
; TAB 18
box "",1401,10 17 230 80,tab 18
list 1402,13 27 140 70,tab 18 extsel
button "Add",1403,155 27 30 15,tab 18
button "Remove",1404,155 45 30 15,tab 18
; TAB 19
box "Options",1501,10 15 211 87,tab 19
box "Flood Prot",1502,115 15 106 87,tab 19
check "Enable @find @locator",1503,15 23 100 10,tab 19
text "Max matches:",1504,20 37 70 10,tab 19
edit "",1506,85 35 15 10,tab 19 autohs
check "Trigger after",1507,120 25 70 8,tab 19
edit "",1508,130 35 15 10,tab 19 autohs
text "requests in...",1509,148 37 60 8,tab 19
edit "",1510,130 47 15 10,tab 19 autohs
text "seconds, ignore...",1511,148 49 60 8,tab 19
edit "",1512,130 59 15 10,tab 19 autohs
text "seconds",1513,148 61 60 8,tab 19
check "After a succesful @find, ignore",1514,120 73 100 10,tab 19
text "requests",1515,130 85 20 10,tab 19
edit "",1516,152 83 20 10,tab 19
text "seconds",1517,174 85 25 10,tab 19
text "text presets",2980,45 114 30 8
combo 2981,75 113 75 100,drop
combo 2982,75 113 75 100,drop hide
button "save",2983,153 113 15 10
check "File Server",2990,5 114 40 8
button "OK",241,180 112 30 15,ok
button "Cancel",242,215 112 30 15,cancel
edit "0",497,999 999 1 1,hide
edit "",498,999 999 1 1,hide
list 499,999 999 1 1,hide
edit "",500,999 999 1 1,hide
button "help button",2999,-100 -100 1 1
}
alias _fserve.checkadvertmsg {
if ($_rinitxt(_fservemsg) == $null) || ($1) { _winitxt _fservemsg Fserve- triggers[<TRIGGER>] snagged[<SNAGGEDFILES> files/<$_size(<SNAGGEDBYTES>)>] users[<USERS_CURR>/<USERS_MAX>] slots[<SENDS_CURR>/<SENDS_MAX>] ques[<QUEUE_CURR>/<QUEUE_MAX>] [next send: <NEXTSEND>] [cps in use: <CURRENT_CPS>] logins[<LOGINS>] record[<RECORDCPS>cps by <RECORDBY>] <FSERVE_DESC> (aIRC) }
}
alias _fserve.getlogins {
if ($round($_getsetup(fserve,logins),0)) { return $ifmatch }
return 0
}
alias _fserve.getrecordcps {
if ($round($_getsetup(fserve,recordcps),0)) { return $ifmatch }
return 0
}
alias _fserve.getrecordby {
if ($_getsetup(fserve,recordby) != $null) { return $ifmatch }
return ???
}
ON *:DIALOG:_fserve.setup:*:*:{
if ($devent == init) {
var %d = $dname
_mdx.init $_icofile(fserve.ico,$scriptdir) title border sysmenu
_mdx.SetControlMDX dialog.mdx $dname 2999 ContextHelp nocontrol
_fserve.d.initpresets
if ($_getsetup(fserve,fserve)) { did -c $dname 2990 }
if ($_getsetup(fserve,useuserlist)) { did -c $dname 31 }
if ($_isint($_getsetup(fserve,ratio))) {
did -c $dname 33
did -o $dname 37 1 $ifmatch
}
else {
did -c $dname 32
did -o $dname 37 1 3
}
if ($_getsetup(fserve,initialcredits) != $null) { did -o $dname 38 1 $ifmatch }
if ($_getsetup(fserve,maxusers) != $null) { did -o $dname 40 1 $ifmatch }
if ($_getsetup(fserve,description) != $null) { did -o $dname 46 1 $ifmatch }
var %a = $_getsetup(fserve,triggers),%n = $numtok(%a,32),%i = 1,%t,%z,%y
while (%i <= %n) {
var %t = $gettok(%a,%i,32),%z = trigger_ $+ %t,%y = triggerchan_ $+ %t,%~ = $_getsetup(fserve,%y)
did -a $dname 44 %t
did -a $dname 54 %t $_getsetup(fserve,%z)
if ($gettok(%~,1,32) isin 01) { did -a $dname 55 %~ }
else { did -a $dname 55 0 }
inc %i
}
did -c $dname 44 1
did $iif($_getsetup(fserve,advertall),-u,-c) $dname 71
if ($_fixchans($_getsetup(fserve,chanlist)) != $null) { did -o $dname 73 1 $ifmatch }
if ($_getsetup(fserve,advertonjoin)) { did -c $dname 80 }
if ($_getsetup(fserve,advertonlist)) { did -c $dname 81 }
if ($_getsetup(fserve,advertimed)) { did -c $dname 84 }
var %delay = $_getsetup(fserve,adverttimedelay),%mdelay = $round($calc(%delay / 60),0)
did -o $dname 86 1 %mdelay
_fserve.checkadvertmsg
if ($_rinitxt(_fservemsg) != $null) { did -o $dname 92 1 $ifmatch }
var %acom = $_getsetup(fserve,commands),%commands = cancel cd credits dir find get info ls msg queue queues quit ratio read say search srch sends stats top who,%i,%tc
%i = $numtok(%commands,32)
while (%i) {
%tc = $gettok(%commands,%i,32)
did -a $dname $iif($istok(%acom,%tc,32),1034,1031) %tc
dec %i
}
did $iif($_getsetup(fserve,helponinvalid),-c,-u) $dname 1037
did -o $dname 1212 1 $_fserve.getlogins
did -o $dname 1214 1 $_getsetup(fserve,Dfiles)
did -o $dname 1216 1 $_getsetup(fserve,Dbytes)
did -o $dname 1218 1 $_fserve.getrecordcps
did -o $dname 1220 1 $_fserve.getrecordby
did -b $dname 1305,1306,1307,1308,1309,1310,1311,1312,1313,1314,1315,1316,1317,1318
var %file = $_userinifile,%i = 1,%n = $ini(%file,0),%handle
while (%i <= %n) {
%handle = $ini(%file,%i)
if ($_fserve.getuser(%handle,logins)) {
_fserve.setuserfields %handle
did -a $dname 1303 %handle
did -a $dname 1304 $_fserve.getuser(%handle,credits) $_fserve.getuser(%handle,ufiles) $_fserve.getuser(%handle,ubytes) $_fserve.getuser(%handle,dfiles) $_fserve.getuser(%handle,dbytes) $_fserve.getuser(%handle,leech) $_fserve.getuser(%handle,ban) $_fserve.getuser(%handle,logins)
}
inc %i
}
var %i = 1,%n = $_list.total(fservebans)
while (%i <= %n) {
did -a $dname 1402 $_list.get(fservebans,%i)
inc %i
}
did $iif($_getsetup(fserve,@find@locator),-c,-u) %d 1503
if ($_isint($_getsetup(fserve,@maxmatches))) { did -o %d 1506 1 $ifmatch }
else { did -o %d 1506 1 6 }
did $iif($_getsetup(fserve,@floodprot.state),-c,-u) %d 1507
if ($_isint($_getsetup(fserve,@floodprot.reqs))) { did -o %d 1508 1 $ifmatch }
else { did -o %d 1508 1 4 }
if ($_isint($_getsetup(fserve,@floodprot.secs))) { did -o %d 1510 1 $ifmatch }
else { did -o %d 1510 1 10 }
if ($_isint($_getsetup(fserve,@floodprot.ignt))) { did -o %d 1512 1 $ifmatch }
else { did -o %d 1512 1 20 }
did $iif($_getsetup(fserve,@secondsprot.state),-c,-u) %d 1514
if ($_isint($_getsetup(fserve,@secondsprot.secs))) { did -o %d 1516 1 $ifmatch }
else { did -o %d 1516 1 8 }
_dummy $_lang.loaddialog($dname,$dname,00086969,fserve.lang,$scriptdir)
_fserve.setup.refreshfiledir
}
elseif ($devent == sclick) {
if ($did == 33) { _dummy $_warndlg(File Server,Please note that if you enable<CRLF>the fserve ratio<COMMA> the users won't<CRLF>be able to queue transfers) }
elseif ($did == 44) { _fserve.setup.refreshfiledir }
elseif ($did == 48) { _fserve.setup.askdir }
elseif ($did == 50) { _fserve.setup.askwelcome }
elseif ($did == 51) {
if ($did(50).text != $null) && ($isfile($did(50).text)) { _notepad $did(50).text }
}
elseif ($did == 52) { _fserve.setup.addtrigger }
elseif ($did == 53) { _fserve.setup.deltrigger }
elseif ($did == 56) { _fserve.setup.savebufchans }
elseif ($did == 94) { _txtpreviewin $dialog($dname).x 1 $dialog($dname).w 80 $dname 92 92 - _fserve.winprev }
elseif ($did == 241) { _fserve.savesetup }
elseif ($did == 242) { }
elseif ($did == 1032) { _dialog.move $dname 1031 1034 }
elseif ($did == 1033) { _dialog.move $dname 1034 1031 }
elseif ($did == 1221) {
did -o $dname 1212,1214,1216,1218 1 0
did -o $dname 1220 1 ???
}
elseif ($did == 1303) {
var %tmp = $did($dname,1304,$did($dname,1303).sel)
did -e $dname 1305,1306,1307,1308,1309,1310,1311,1312,1313,1314,1315,1316,1317,1318
did -o $dname 1306 1 $gettok(%tmp,1,32)
did -o $dname 1310 1 $gettok(%tmp,2,32)
did -o $dname 1312 1 $gettok(%tmp,3,32)
did -o $dname 1314 1 $gettok(%tmp,4,32)
did -o $dname 1316 1 $gettok(%tmp,5,32)
did $iif($gettok(%tmp,6,32),-c,-u) $dname 1317
did $iif($gettok(%tmp,7,32),-c,-u) $dname 1318
did -o $dname 1308 1 $gettok(%tmp,8,32)
}
elseif (13?? iswm $did) { _fserve.setup.saveusrbuf }
elseif ($did == 1403) {
_dialog.add $dname 1402 $_fixmask($_parameter($null,1,File Server Setup [/fssetup],ismask,$null,Enter address to ban from the file server: nick!ident@host<CRLF>Wildcards allowed))
did -o $dname 497 1 1
}
elseif ($did == 1404) { _dialog.delsels $dname 1402 }
elseif ($did == 2981) { _fserve.d.txtpreset $did($dname,2982,$did($dname,2981).sel) }
elseif ($did == 2983) {
_addontextscheme.save $dname Fserve fsts 92,_fservemsg,+
if ($result != $null) { _fserve.d.initpresets $ifmatch }
}
elseif ($did == 2999) {
;;; ths GPF mIRC when used without timers... why?
.timer -o 1 0 help File Server
}
}
elseif ($devent == dclick) {
if ($did == 1031) { _dialog.move $dname 1031 1034 }
elseif ($did == 1034) { _dialog.move $dname 1034 1031 }
}
elseif ($devent == edit) {
if ($did == 57) { _fserve.setup.savebufchans }
elseif (13?? iswm $did) { _fserve.setup.saveusrbuf }
}
if ($did($dname,31).state) {
did -e $dname 32,33,27,38
did $iif($did($dname,33).state,-e,-b) $dname 37
}
else {
did -c $dname 32
did -bu $dname 33,37,27,38
}
did $iif($did($dname,56).state,-e,-b) $dname 57
did $iif($did($dname,84).state,-e,-b) $dname 86
did $iif($did($dname,71).state,-e,-b) $dname 73
}
alias -l _fserve.d.initpresets {
var %d = _fserve.setup
if ($dialog(%d) == $null) { return }
did -r %d 2981,2982
did -o %d 2981,2982 1 Default
_dummy $findfile($mircdiraddons\tschemes\,*.fsts,0,1,_fserve.d._initpresets $1-)
if ($didwm(%d,2982,$1,1)) { did -c %d 2981 $ifmatch }
}
alias -l _fserve.d._initpresets {
var %d = _fserve.setup,%file = " $+ $1- $+ ",%name = $read -nsschemename %file ,%author = $read -nsauthor %file
if (%name != $null) {
if (%author != $null) { did -a %d 2981 %name ( $+ %author $+ ) }
else { did -a %d 2981 %name }
did -a %d 2982 $nopath(%file)
}
}
alias -l _fserve.d.txtpreset {
var %d = _fserve.setup,%default,%evangelion,%file
if ($dialog(%d) == $null) { return 1 }
%default = Fserve- triggers[<TRIGGER>] snagged[<SNAGGEDFILES> files/<$_size(<SNAGGEDBYTES>)>] users[<USERS_CURR>/<USERS_MAX>] slots[<SENDS_CURR>/<SENDS_MAX>] ques[<QUEUE_CURR>/<QUEUE_MAX>] [next send: <NEXTSEND>] [cps in use: <CURRENT_CPS>] logins[<LOGINS>] record[<RECORDCPS>cps by <RECORDBY>] <FSERVE_DESC> (aIRC)
if ($1- == default) { %evangelion = %default }
else {
%file = "addons\tschemes\ $+ $1- $+ "
if ($isfile(%file)) { %evangelion = $read -ns_fservemsg %file }
}
if (%evangelion == $null) { %evangelion = %default }
did -o $dname 92 1 %evangelion
}
alias _fserve.winprev {
var %triggers = $_getsetup(fserve,triggers)
if (%triggers == $null) { %triggers = $didtok($dname,44,32) }
if (%triggers == $null) { %triggers = !trigger !aIRC }
return $_evaltext($replace($1-,<TRIGGERS>,<TRIGGER>,<TRIGGER>,%triggers,<USERS_CURR>,$_dcctotal.fserv,<USERS_MAX>,$_getsetup(fserve,maxusers),<FSERVE_DESC>,$_getsetup(fserve,description),<LOGINS>,$_fserve.getlogins,<SNAGGEDFILES>,$_getsetup(fserve,Dfiles),<SNAGGEDBYTES>,$_getsetup(fserve,Dbytes),<RECORDCPS>,$_fserve.getrecordcps,<RECORDBY>,$_fserve.getrecordby,<FSERVE_RATIO>,$_fserve.longratio))
}
alias _fserve.longratio {
if ($_getsetup(fserve,ratio)) { return 1: $+ $ifmatch }
return leech
}
alias -l _fserve.setup.fixsaveusrbuf {
var %sel = $9,%old = $did($dname,1304,%sel)
return $iif($_isint($1),$1,$gettok(%old,1,32)) $iif($_isint($2),$2,$gettok(%old,2,32)) $iif($_isint($3),$3,$gettok(%old,3,32)) $iif($_isint($4),$4,$gettok(%old,4,32)) $iif($_isint($5),$5,$gettok(%old,5,32)) $iif($6 isin 01,$6,$gettok(%old,6,32)) $iif($7 isin 01,$7,$gettok(%old,7,32)) $iif($_isint($8),$8,$gettok(%old,8,32))
}
alias -l _fserve.setup.saveusrbuf {
var %sel = $did($dname,1303).sel
if (%sel) {
did -o $dname 1304 %sel $_fserve.setup.fixsaveusrbuf($did(1306),$did(1310),$did(1312),$did(1314),$did(1316),$did(1317).state,$did(1318).state,$did(1308),%sel)
did -o $dname 497 1 1
}
}
alias -l _fserve.setup.refreshfiledir {
var %d = _fserve.setup,%sel,%48,%50,%56,%57
if ($dialog(%d)) {
if ($did(%d,44,1).sel) {
%sel = $ifmatch
%48 = $gettok($did(%d,54,%sel),2,$asc(*))
%50 = $gettok($did(%d,54,%sel),3,$asc(*))
%56 = $gettok($did(%d,55,%sel),1,32)
%57 = $gettok($did(%d,55,%sel),2-,32)
}
if (%48 != $null) { did -o %d 48 1 $ifmatch }
else { did -r %d 48 }
if (%50 != $null) { did -o %d 50 1 $ifmatch }
else { did -r %d 50 }
did $iif(%56,-c,-u) %d 56
if (%57 != $null) { did -o %d 57 1 $ifmatch }
else { did -r %d 57 }
}
}
alias _fserve.setup.askdir {
var %d = _fserve.setup,%t,%z
if ($dialog(%d)) && ($did(%d,44,1).sel) {
var %sel = $ifmatch,%t = $did(%d,44,%sel),%c = trigger_ $+ %t,%c = $_getsetup(fserve,%c),%z = $_text($gettok(%c,2,$asc(*)))
if ($did(%d,48) != $null) { did -r %d 48 }
else { _dialog.dir %d 48 $iif(%z != $null,%z,$mircdir) $+ $chr(9) $+ Fserve home directory for %t : }
if ($dialog(%d)) { did -o %d 54 %sel _* $did(%d,48) * $gettok($did(%d,54,%sel),3,$asc(*)) }
}
}
alias _fserve.setup.askwelcome {
var %d = _fserve.setup,%t,%z
if ($dialog(%d)) && ($did(%d,44,1).sel) {
var %sel = $ifmatch,%t = $did(%d,44,%sel),%c = trigger_ $+ %t,%c = $_getsetup(fserve,%c),%z = $gettok(%c,3,$asc(*))
if ($did(%d,50) != $null) { did -r %d 50 }
else { _dialog.file %d 50 $iif(%z != $null,%z,$mircdir*.*) $+ $chr(9) $+ Fserve Welcome file for %t : }
if ($dialog(%d)) { did -o %d 54 %sel _* $gettok($did(%d,54,%sel),2,$asc(*)) * $did(%d,50) }
}
}
alias _fserve.setup.savebufchans {
var %d = _fserve.setup,%t,%z
if ($dialog(%d)) && ($did(%d,44,1).sel) {
var %sel = $ifmatch
did -o %d 55 %sel $did(%d,56).state $did(%d,57)
}
}
alias _fserve.setup.addtrigger {
var %d = _fserve.setup,%trigger = $_parameter($null,1,Fserve Setup [/fssetup],1,$null,Enter new trigger:),%dir
if ($dialog(%d)) {
dialog -v %d
if ($findtok($didtok(%d,44,32),%trigger,1,32)) { did -c %d 44 $ifmatch }
else {
%dir = $sdir="Fserve home directory for %trigger :" $mircdir
if ($dialog(%d) == $null) || ($isdir(%dir) == $false) { return }
did -ac %d 44 %trigger
did -a %d 54 %trigger _* %dir $+ *
}
_fserve.setup.refreshfiledir
}
}
alias _fserve.setup.deltrigger {
var %d = _fserve.setup,%sel,%lines
if ($dialog(%d)) {
%sel = $did(%d,44,1).sel
if (%sel) {
did -d %d 44,54.55 %sel
%lines = $did(%d,44).lines
if (%sel <= %lines) { did -c %d 44 %sel }
else { did -c %d 44 $calc(%sel - 1) }
}
_fserve.setup.refreshfiledir
}
}
alias _fserve.savesetup {
var %d = $dname
_settsetup fserve useuserlist $did($dname,31).state
if ($did(32).state) { _settsetup fserve ratio 0 }
elseif ($did(37).text isnum) && ($did(37).text > 0) { _settsetup fserve ratio $did(37).text }
if ($did(38).text isnum) && ($did(38).text > 0) { _settsetup fserve initialcredits $did(38).text }
if ($did(40).text isnum) && ($did(40).text > 0) { _settsetup fserve maxusers $did(40).text }
_settsetup fserve description $strip($did(46).text)
var %a = $_getsetup(fserve,triggers),%n = $numtok(%a,32),%i = 1,%t,%z
while (%i <= %n) {
var %t = $gettok(%a,%i,32),%z = trigger_ $+ %t,%y = triggerchan_ $+ %t
_settsetup fserve %z
_settsetup fserve %y
inc %i
}
var %a,%n = $did(54).lines,%i = 1,%t,%z
while (%i <= %n) {
var %t = $did(44,%i),%z = trigger_ $+ %t,%y = triggerchan_ $+ %t,%a = %a %t
_settsetup fserve %z $did(54,%i)
_settsetup fserve %y $gettok($did(55,%i),1,32) $_fixchans($gettok($did(55,%i),2-,32))
inc %i
}
_settsetup fserve triggers %a
_settsetup fserve advertall $_not($did($dname,71).state)
if ($_fixchans($did($dname,73)) != $null) { _settsetup fserve chanlist $ifmatch }
_settsetup fserve advertonjoin $did(80).state
_settsetup fserve advertonlist $did(81).state
_settsetup fserve advertimed $did(84).state
var %delay = $_text($strip($did(86).text))
if ($_isint(%delay)) { _settsetup fserve adverttimedelay $calc(%delay * 60) }
if ($did(92).text != $null) { _winitxt _fservemsg $ifmatch }
_settsetup fserve commands $didtok($dname,1034,32)
_settsetup fserve helponinvalid $did(1037).state
if ($_isint($did($dname,1212,1))) { _settsetup fserve logins $ifmatch }
if ($_isint($did($dname,1214,1))) { _settsetup fserve Dfiles $ifmatch }
if ($_isint($did($dname,1216,1))) { _settsetup fserve Dbytes $ifmatch }
if ($_isint($did($dname,1218,1))) { _settsetup fserve recordcps $ifmatch }
var %t = $did($dname,1220,1)
if (%t != $null) && (%t != ???) { _settsetup fserve recordby %t }
var %i = 1,%n = $did($dname,1303).lines,%handle,%tmp
while (%i <= %n) {
var %handle = $did($dname,1303,%i),%tmp = $did($dname,1304,%i)
if ($_isuser(%handle)) {
_fserve.setuser %handle credits $gettok(%tmp,1,32)
_fserve.setuser %handle ufiles $gettok(%tmp,2,32)
_fserve.setuser %handle ubytes $gettok(%tmp,3,32)
_fserve.setuser %handle dfiles $gettok(%tmp,4,32)
_fserve.setuser %handle dbytes $gettok(%tmp,5,32)
_fserve.setuser %handle leech $gettok(%tmp,6,32)
_fserve.setuser %handle BAN $gettok(%tmp,7,32)
_fserve.setuser %handle logins $gettok(%tmp,8,32)
}
inc %i
}
._list.flush fservebans
var %i = 1,%n = $did($dname,1402).lines
while (%i <= %n) {
_list.add fservebans $did($dname,1402,%i)
inc %i
}
_setsetup fserve @find@locator $did(%d,1503).state
if ($_isint($did(%d,1506,1)) >= 1) { _setsetup fserve @maxmatches $ifmatch }
else { _setsetup fserve @maxmatches 6 }
_setsetup fserve @floodprot.state $did(%d,1507).state
if ($_isint($did(%d,1508,1)) >= 1) { _setsetup fserve @floodprot.reqs $ifmatch }
else { _setsetup fserve @floodprot.reqs 4 }
if ($_isint($did(%d,1510,1)) >= 1) { _setsetup fserve @floodprot.secs $ifmatch }
else { _setsetup fserve @floodprot.secs 10 }
if ($_isint($did(%d,1512,1)) >= 1) { _setsetup fserve @floodprot.ignt $ifmatch }
else { _setsetup fserve @floodprot.ignt 20 }
if ($_isint($did(%d,1516,1)) >= 1) { _setsetup fserve @secondsprot.secs $ifmatch }
else { _setsetup fserve @secondsprot.secs 3 }
_setsetup fserve @secondsprot.state $did(%d,1514).state
if ($did($dname,497,1)) { _fserve.checkfserves }
__hashsavebuf _aircsetup script.dat
if ($did($dname,2990).state) { ._fserve.turn on }
else { ._fserve.turn off }
}
alias _fserve.ad.allchans {
.timer_fserveadvert.* off
if ($_connected) && ($_getsetup(fserve,fserve)) && ($_getsetup(fserve,triggers)) && ($_getsetup(fserve,advertimed)) {
var %i = $chan(0)
while (%i) {
_fserve.ad.chan $chan(%i)
dec %i
}
}
}
alias _fserve.ad.chan {
var %chan = $1,%int,%last
.timer_fserveadvert. $+ %chan off
if ($_connected) && ($me ison %chan) && ($_getsetup(fserve,fserve)) && ($_getsetup(fserve,triggers)) && ($_getsetup(fserve,advertimed)) && ($_fserve.isadvertchan(%chan)) && ($_isint($_getsetup(fserve,adverttimedelay))) {
%int = $ifmatch
%last = $_get(junk,fserve.ad.last,%chan)
if (%last > $ctime) { %last = $ctime - 60 }
if (%last == $null) || ($calc(%last + %int) < $ctime) { _fserve.ad.send %chan }
else { .timer_fserveadvert. $+ %chan 1 $calc(%int - $ctime + %last) _fserve.ad.send %chan }
}
}
alias _fserve.ad.send {
var %chan = $1,%int,%last
.timer_fserveadvert. $+ %chan off
if ($_connected) && ($me ison %chan) && ($_getsetup(fserve,fserve)) && ($_getsetup(fserve,triggers)) && ($_getsetup(fserve,advertimed)) && ($_fserve.isadvertchan(%chan)) {
if ($_fserve.ad.msg(%chan) != $null) {
_puthelp %chan c& msg %chan $ifmatch
_setd junk fserve.ad.last %chan $ctime
}
if ($_isint($_getsetup(fserve,adverttimedelay))) { .timer_fserveadvert. $+ %chan 1 $ifmatch _fserve.ad.send %chan }
}
}
; $_fserve.ad.msg(<channel>)
; if there are no triggers for the channel, returns $null
alias _fserve.ad.msg {
var %triggers = $_fserve.gettriggersforchan($1)
if (%triggers != $null) && ($_evaltext($replace($_rinitxt(_fservemsg),<TRIGGERS>,<TRIGGER>,<TRIGGER>,%triggers,<USERS_CURR>,$_dcctotal.fserv,<USERS_MAX>,$_getsetup(fserve,maxusers),<FSERVE_DESC>,$_getsetup(fserve,description),<LOGINS>,$_fserve.getlogins,<SNAGGEDFILES>,$_getsetup(fserve,Dfiles),<SNAGGEDBYTES>,$_getsetup(fserve,Dbytes),<RECORDCPS>,$_fserve.getrecordcps,<RECORDBY>,$_fserve.getrecordby,<FSERVE_RATIO>,$_fserve.longratio)) != $null) { return $ifmatch }
; just in case...
return $null
}
; $_fserve.gettriggersforchan(<channel>)
alias _fserve.gettriggersforchan {
var %chan = $1,%ftriggers,%striggers = $_getsetup(fserve,triggers),%i = $numtok(%striggers,32),%t,%y
while (%i) {
var %t = $gettok(%striggers,%i,32),%y = triggerchan_ $+ %t,%y = $_getsetup(fserve,%y)
if ($_not($gettok(%y,1,32))) || ($istok($gettok(%y,2-,32),%chan,32)) { %ftriggers = $addtok(%ftriggers,%t,32) }
dec %i
}
return %ftriggers
}
; $_fserve.isactivetriggerforchan(<trigger>,<channel>)
alias _fserve.isactivetriggerforchan {
var %t = $1,%chan = $2,%y = triggerchan_ $+ %t,%y = $_getsetup(fserve,%y)
if ($_not($gettok(%y,1,32))) || ($istok($gettok(%y,2-,32),%chan,44)) { return 1 }
return 0
}
alias _fserve.isadvertchan {
if ($_getsetup(fserve,advertall)) { return 1 }
if ($istok($_fixchans($_getsetup(fserve,chanlist)),$1,44)) { return 1 }
return 0
}
alias _fserve.init {
$iif($_getsetup(fserve,fserve),.enable,.disable) #_fserve
_fserve.ad.allchans
}
alias _fserve.sendrequest {
var %file,%credits,%size,%queue,%(send),%(queue)
if ($4- == $null) {
_fservemsg $1 No filename specified.
halt
}
if ($2 != $null) {
_fserve.setuserfields $2
%credits = $_fserve.getuser($2,credits)
}
%file = $3 $+ \ $+ $4-
while (\\ isin %file) { %file = $replace(%file,\\,\) }
%size = $file(%file).size
if ($2 == $null) || ($_not($_getsetup(fserve,ratio))) || ($_fserve.getuser($2,leech)) || (%credits >= %size) {
if ($_getsetup(fserve,ratio)) {
.timer -o 1 0 _setsetup dcc sendqueue $_getsetup(dcc,sendqueue)
_setsetup dcc sendqueue 0
}
%queue = $_dccsend($1,%file)
%(send) = ( $+ $_dcctotal.send $+ / $+ $_getsetup(dcc,maxStotal) $+ )
%(queue) = ( $+ $_sendqueue.queues $+ / $+ $_getsetup(dcc,maxQtotal) $+ )
if (%queue == ERR_nofile) { _fservemsg $1 File not found: $^'($4-) }
elseif (%queue == ERR_insend) { _fservemsg $1 You are already getting: $^'($4-) }
elseif (%queue == ERR_inqueue) { _fservemsg $1 You already have $^'($4-) in my queue }
elseif (%queue == ERR_nocomchan) { _fservemsg $1 Send slots full %(send) $+ . Queue slots available %(queue) but you must be in one of my channels in order to queue. }
elseif (%queue == ERR_maxQtotal) { _fservemsg $1 Queue slots full %(queue) }
elseif (%queue == ERR_maxQuser) { _fservemsg $1 You can't queue any more files. Your queues: ( $+ $_sendqueue.queues($1) $+ / $+ $_getsetup(dcc,maxQuser) $+ ) }
elseif (%queue == ERR_maxStotal) { _fservemsg $1 There are too many get sessions %(send) }
elseif (%queue == ERR_maxSuser) { _fservemsg $1 You have too many get sessions ( $+ $_dcctotal.send($1) $+ / $+ $_getsetup(dcc,maxSuser) $+ ) }
elseif (ERR_* iswm %queue) { _fservemsg $1 Unknown Error. Can't send you $^'($4-) }
elseif (%queue) { _fservemsg $1 Your request is now in my queue ( $+ %queue $+ / $+ $_getsetup(dcc,maxQtotal) $+ ) }
elseif ($2 == $null) || ($_not($_getsetup(fserve,ratio))) || ($_fserve.getuser($2,leech)) { _fservemsg $1 Sending file: $^'($nopath(%file)) $^p($_size(%size)) }
else {
%credits = $calc(%credits - %size)
_fserve.setuser $2 credits %credits
_fservemsg $1 Sending file: $^'($nopath(%file)) $^p($_size(%size)) Credits: %credits
}
}
else { _fservemsg $1 Not enough credits $^bp(%credits) Upload files to gain more. }
}
alias _fserve.help {
var %known = $_getsetup(fserve,commands),%nick = $1,%com = $2
if (%com == $null) { _fservemsg %nick Commands: %known help quit $+ $crlf $crlf $+ For detailed help: help <command> }
elseif ($istok(quit bye exit,%com,32)) { _fservemsg %nick Usage: %com $crlf terminates the connection }
elseif (%com == help) { _fservemsg %nick Usage: help [command] }
elseif ($istok(%known,%com,32)) {
if (%com == read) { _fservemsg %nick Usage: read [-lines] <file> $crlf reads the specified text file. }
elseif ($istok(search srch find,%com,32)) { _fservemsg %nick Usage: %com <file|wildcard> $crlf searchs a file }
elseif (%com == ratio) { _fservemsg %nick Usage: ratio $crlf displays the current fserve ratio }
elseif (%com == credits) { _fservemsg %nick Usage: credits $crlf displays your current credits }
elseif (%com == get) { _fservemsg %nick Usage: get <file> $crlf asks the fileserver to DCC Send the specified file }
elseif (%com == stats) { _fservemsg %nick Usage: stats [file] $crlf shows stats for a file or the fserve }
elseif (%com == info) { _fservemsg %nick Usage: info $crlf shows your user info }
elseif (%com == top) { _fservemsg %nick Usage: top [number] $crlf shows the top10 downloaded files, a top file can be downloaded using: top <number> }
elseif (%com == cd) { _fservemsg %nick Usage: cd [dir|..] $crlf changes the current directory }
elseif (%com == dir) { _fservemsg %nick Usage: dir [[-b|-k]|[/w] [-#]] [file|wildcard] $crlf lists files in the current directory }
elseif (%com == ls) { _fservemsg %nick Usage: ls [-#] [file|wildcard] $crlf lists files in the currenty directory using a wide listing }
elseif (%com == who) { _fservemsg %nick Usage: who $crlf sends a list of who is connected }
elseif (%com == say) { _fservemsg %nick Usage: say <message> $crlf sends a message to all the file server users }
elseif (%com == msg) { _fservemsg %nick Usage: msg <nick> <message> $crlf sends a message to another file server user }
elseif (%com == queue) { _fservemsg %nick Usage: queue $crlf shows your queue status }
elseif (%com == sends) { _fservemsg %nick Usage: sends $crlf shows the active dcc sends }
elseif (%com == queues) { _fservemsg %nick Usage: queues $crlf shows the active waiting queues }
elseif (%com == cancel) { _fservemsg %nick Usage: cancel [string|N] $crlf cancels pending queues }
}
else { _fservemsg %nick Unknown command: %com }
}
menu menubar {
&fserve
.$`ifmm($_getsetup(fserve,fserve)) &turn $iif($_getsetup(fserve,fserve),off,on):{ fssetup $iif($_getsetup(fserve,fserve),off,on) }
.&setup...:{ fssetup }
}