; Simple File Server ; Coded by Kintar0 of Team Clan X ; Date: Sept. 25, 2000 ; Description: A file server with basic features. You can configure settings from a dialog. ; Instructions: ; - Call up the setup dialog in Channel, Status, and Menubar popups... alias _fserv { if ($1 == on) { .enable #_fserv } if ($1 == off) { .disable #_fserv } if ($1 == setup) { dialog -m _fserv _fserv } else { return } } alias -l _trigger { return $readini " $+ $scriptdirfserv.ini $+ " Settings trigger } alias -l _mgets.u { return $readini " $+ $scriptdirfserv.ini $+ " Settings mgets.u } alias -l _msends.u { return $readini " $+ $scriptdirfserv.ini $+ " Settings msends.u } alias -l _mgets.t { return $readini " $+ $scriptdirfserv.ini $+ " Settings mgets.t } alias -l _msends.t { return $readini " $+ $scriptdirfserv.ini $+ " Settings msends.t } alias -l _mcps.u { return $readini " $+ $scriptdirfserv.ini $+ " Settings mcps.u } alias -l _homedir { return $readini " $+ $scriptdirfserv.ini $+ " Settings homedir } alias -l _welcomemsg { return $readini " $+ $scriptdirfserv.ini $+ " Settings welcomemsg } alias -l _fsave { if ($did(_fserv,20).text != $null) { writeini " $+ $scriptdirfserv.ini $+ " Settings trigger $did(_fserv,20).text } if ($did(_fserv,21).text != $null) { writeini " $+ $scriptdirfserv.ini $+ " Settings mgets.u $did(_fserv,21).text } if ($did(_fserv,22).text != $null) { writeini " $+ $scriptdirfserv.ini $+ " Settings msends.u $did(_fserv,22).text } if ($did(_fserv,23).text != $null) { writeini " $+ $scriptdirfserv.ini $+ " Settings mgets.t $did(_fserv,23).text } if ($did(_fserv,24).text != $null) { writeini " $+ $scriptdirfserv.ini $+ " Settings msends.t $did(_fserv,24).text } if ($did(_fserv,25).text != $null) { writeini " $+ $scriptdirfserv.ini $+ " Settings mcps.u $did(_fserv,25).text } if ($did(_fserv,26).text) { writeini " $+ $scriptdirfserv.ini $+ " Settings homedir $did(_fserv,26).text } if ($did(_fserv,27).text) { writeini " $+ $scriptdirfserv.ini $+ " Settings welcomemsg $did(_fserv,27).text } } alias -l _fload { if ($_trigger != $null) { _do 20 1 $_trigger } else { did -o _fserv 20 1 Not Yet Set } if ($_mgets.u != $null) { _do 21 1 $_mgets.u } else { did -o _fserv 21 1 Not Yet Set } if ($_msends.u != $null) { _do 22 1 $_msends.u } else { did -o _fserv 22 1 Not Yet Set } if ($_mgets.t != $null) { _do 23 1 $_mgets.t } else { did -o _fserv 23 1 Not Yet Set } if ($_msends.t != $null) { _do 24 1 $_msends.t } else { did -o _fserv 24 1 Not Yet Set } if ($_mcps.u != $null) { _do 25 1 $_mcps.u } else { did -o _fserv 25 1 Not Yet Set } if ($_homedir) { _do 26 1 $_homedir } else { did -o _fserv 26 1 Not Yet Set } if ($_welcomemsg) { _do 27 1 $_welcomemsg } else { did -o _fserv 27 1 Not Yet Set } } alias -l _homedir.browse { _do 26 1 $$sdir="Choose a Home Directory:" c:\ | dialog -v _fserv } alias -l _welcomemsg.browse { _do 27 1 $$dir="Choose a Welcome Message File:" c:\ | dialog -v _fserv } alias -l _do { did -o _fserv $1- } dialog _fserv { title "File Server Settings" size -1 -1 200 150 option dbu text "Trigger:" , 10 , 5 20 50 10 , right text "Max Gets / User:" , 11 , 5 30 50 10 , right text "Max Sends / User:" , 12 , 5 40 50 10 , right text "Max Gets / Total:" , 13 , 5 50 50 10 , right text "Max Sends / Total:" , 14 , 5 60 50 10 , right text "Max Cps / User:" , 15 , 5 70 50 10 , right text "Home Directory:" , 16 , 5 80 50 10 , right text "Welcome Msg:" , 17 , 5 90 50 10 , right edit "" , 20 , 60 19 70 10 , left autohs edit "" , 21 , 60 29 70 10 , left autohs edit "" , 22 , 60 39 70 10 , left autohs edit "" , 23 , 60 49 70 10 , left autohs edit "" , 24 , 60 59 70 10 , left autohs edit "" , 25 , 60 69 70 10 , left autohs edit "" , 26 , 60 79 105 10 , left autohs edit "" , 27 , 60 89 105 10 , left autohs button "Browse" , 30 , 170 79 25 10 , default button "Browse" , 31 , 170 89 25 10 , default menu "File" , 40 item "Enable File Server" , 41 item "Disable File Server" , 42 item break , 43 item "Save Settings" , 44 item "Reset Settings" , 45 item break , 46 item "Close && Save" , 47 item "Close w/o Save" , 48 edit "File Server Notes..." , 50 , 5 105 190 10 , left read autohs button "&Ok" , 100 , 165 120 30 15 , ok } on *:dialog:_fserv:init:*: { _fload } on *:dialog:_fserv:sclick:*: { if ($did == 30) { .timer 1 0 _homedir.browse } if ($did == 31) { .timer 1 0 _welcomemsg.browse } if ($did == 100) { _fsave } } on *:dialog:_fserv:menu:*: { if ($did == 41) { .enable #_fserv | _do 50 1 File Server has been activated... } if ($did == 42) { .disable #_fserv | _do 50 1 File Server has been deactivated... } if ($did == 44) { _fsave | _do 50 1 File Server settings saved... } if ($did == 45) { _fload | _do 50 1 File Server settings reset... } if ($did == 47) { _fsave | dialog -x $dname } if ($did == 48) { dialog -x $dname } } menu channel,status,menubar { - File Server .Setup { _fserv setup } .- .Turn On $iif($group(#_fserv) == on,*) { _fserv on | echo -a File Server has been activated... } .Turn Off $iif($group(#_fserv) == off,*) { _fserv off | echo -a File Server has been deactivated... } } #_fserv off on *:text:$( $+ $_trigger $+ *):#: { if ($fserv($nick) == $null) { if ($send(0) >= $_mgets.t) { notice $nick Sorry, max uploads have been reached, try agian later. | return } else { notice $nick Attempting to fserve you... if ($_welcomemsg) { fserve $nick $_mgets.u $_homedir $_welcomemsg } else { fserve $nick $_msends.u $_homedir } } } else { notice $nick Sorry, fileserver busy, you already have a file server session open. | return } } on *:serv:*: { if ($1 != dir && $1 != help && $1 != get && $1 != cd && $1 != ls && $1 != read && $1 != exit && $1 != bye && $1 != s ) { msg =$nick [[ $+ $chr(3) $+ 12 $+ $1 $+ $chr(3) $+ ]] Unknown Command | haltdef } else { if ($1 == get) { var %_file = " $+ $fserv($nick).cd $+ \ $+ $2- $+ " , %_fileb = $file(%_file).size if ($2 == $null) { msg =$nick Please specify a filename... | haltdef | return } if ($exists(%_file) && %_fileb > 0 && $chr(92) !isin $2-) { if ($send($nick,0) >= $_mgets.u || $send(0) >= $_mgets.t) { msg =$nick Sorry, max sends have been reached... | haltdef | return } msg =$nick Sending you $2- $+ ... if ($_mcps.u) { dcc send -l [ $+ [ $_mcps.u ] ] $nick %_file | haltdef } else { return } } else { msg =$nick Sorry, [[ $+ $chr(3) $+ 12 $+ $2- $+ $chr(3) $+ ]] is not a valid file, check your spelling... | haltdef } } if ($1 == exit || $1 == bye) { msg =$nick Good Bye! Come back soon! | close -f $nick } } } ctcp *:dcc send*:?: { if ($3) { if ($get($nick,0) >= $_msends.u || $get(0) >= $_msends.t) { notice $nick Sorry, my max get's allowed have been reached... close -g [ $+ [ $get($nick,0) ] ] $nick haltdef } } } on *:filercvd:*: { .notice $nick Thank you for sending me $nopath($filename) $+ ... } on *:filesent:*: { .notice $nick Successfully sent you $nopath($filename) $+ ... } on *:sendfail:*: { .notice $nick Send of $nopath($filename) incomplete... } on *:getfail:*: { .notice $nick Get of $nopath($filename) incomplete... } #_fserv end