;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; FILESEND ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; ** made by Vliedel ** ; ; ** Version 1.100 ** ; ; Please report bugs and suggestions to: ; ; #Vliedel @ Quakenet ; #Filesend @ Quakenet ; ; Written and tested on mirc 6.2 ; ; ; Start with /filesend (or the button in toolbar) ; ; This script goes with filesend.mrc and adds a dialog to control the filesend script. ; All events are stored in a filesend.log (in filesend dir) ; All settings are stored in filesend.ini (default) ; Just try it out, double clicking in lists has a function too. ; ; Thanks to Kashin, who helped with the dialog design ; Thanks to Albie, Rutix and |16bit| who helped testing a lot ; ; have fun :) ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; alias -l fs.folder { ; return the path of the default filesend folder ; default is $scriptdirfilesend return $scriptdirfilesend } alias -l fs.settings.file { ; return the filename of the ini-file (path\file.ini) that stores the filesend settings, don't use quotes ; default is $scriptdirfilesend.ini return $scriptdirfilesend.ini } alias -l fs.icon.file { ; return the filename of the icon-file (path\file.ico), don't use quotes ; default is $scriptdirfilesend.ico return $scriptdirfilesend.ico } alias filesend { ; possible parameters ; $1 = settings $2 = restart ; $1 = server ; $1 = connect $2 = ip $3 = port $4 = pw if ($filesend.version == $null) { noop $input(To run filesend you need to load filesend.mrc first,wo,Filesend) | return } if ($filesend.version !=== $fs.dlg.version) { noop $input(Filesend version ( $+ $filesend.version $+ ) differs from Filesend dialog version ( $+ $fs.dlg.version $+ ),ow,filesend) | return } if ($dialog(filesend)) { noop $input(Filesend dialog is already opened,o,Filesend) | dialog -v filesend | return } if (!$exists($fs.folder)) { if (!$makedir($fs.folder)) { noop $input($fs.folder is an invalid pathname,o,Filesend) | return } } if ($2 !== restart) { if ($sock(filesend.*)) { if (!$input(One or more filesend connections are open. Do you want to close them and continue?,y,Filesend)) { return } } if ($hget(filesend)) { hfree filesend } hmake filesend 200 sockclose filesend.* if ($hget(filesend.log)) { hfree filesend.log } hmake filesend.log 200 if ($hget(filesend.set)) { hfree filesend.set } hmake filesend.set 100 hload -i filesend.set $qt($fs.settings.file) settings } if (!$hget(filesend,files)) { hadd filesend files 0 } if ($hget(filesend.set,menus)) && (!$toolbar(filesend)) && ($exists($fs.icon.file)) { fs.dlg.toolbar } elseif (!$hget(filesend.set,menus)) && ($toolbar(filesend)) { toolbar -d filesend } var %tab.h = $iif($hget(filesend.set,tab.h) == $null,0,$int($v1)) if (%tab.h < 145) { var %tab.h = 145 } if (%tab.h > 500) { var %tab.h = 500 } hadd filesend.set tab.h %tab.h dialog $iif($hget(filesend.set,desktop),-md,-m) filesend filesend var %i = 1 , %m = $iif($int($hget(filesend.set,shareddir.0)) == $null,0,$v1) while (%i <= %m) { var %d = $iif($nocontrol2($hget(filesend.set,shareddir. $+ %i)) == $null,* file corrupted *,$v1) if ($2 !== restart) { noop $filesend.adddir(%d) } did -a filesend 151 %d inc %i } if ($2 !== restart) { fs.dlg.adderrlog Errorlog session starting at $time(dd-mmm-yyyy) } else { var %i = 1 , %max = $iif($hget(filesend,dialog.conlist.len) == $null,0,$v1) while (%i <= %max) { did -o filesend 3 %i $hget(filesend,dialog.conlist.showname. $+ %i) inc %i } var %con = $hget(filesend,dialog.cur.con) did -c filesend 3 $hget(filesend,dialog.conlist.name-pos. $+ %con) hdel filesend dialog.cur.con fs.dlg.newcon %con var %i = 1 while (%i <= $hget(filesend,dialog.ul.filelist.listlength)) { var %id = $hget(filesend,dialog.ul.filelist.pos-id. $+ %i) did -a filesend 121 $hget(filesend,dialog.ul.filelist.name. $+ %id) did -a filesend 122 $hget(filesend,dialog.ul.filelist.type. $+ %id) did -a filesend 123 $bytes($hget(filesend,dialog.ul.filelist.size. $+ %id),3).suf inc %i } if ($hget(filesend.log,0) > 1) { did -o filesend 32 1 $hget(filesend.log,$calc($hget(filesend.log,0) - 1)) } did -o filesend 33 1 $hget(filesend.log,$hget(filesend.log,0)) } if ($1 == settings) { did -f filesend 106 did -h filesend 91-96 did -h filesend 14 did -tvo filesend 15 1 Apply } hsave -i filesend.set $qt($fs.settings.file) settings if ($1 == server) { fs.dlg.server } if ($1 == connect) { fs.dlg.invited $2 $3 $4 } } alias -l makedir { ; $makedir(dir) ; makes a dir, even if the path doesn't exist yet. ; returns $true if succeeded, returns $false if failed. var %i = 1, %n = 0, %dir = $replace($noqt($1),/,\) while ($pos(%dir,\,%i) || $len(%dir) > %n) { var %n = $v1 if (!$isdir($mid(%dir,1,%n))) mkdir $qt($mid(%dir,1,%n)) inc %i } return $isdir($1) :error reseterror return $false } alias -l fs.size { if ($1 == edge) { return 4 } elseif ($1 == box.u.edge) { return 8 } elseif ($1 == box.u.but.edge) { return 3 } elseif ($1 == box.l.edge) { return 3 } elseif ($1 == box.s.edge) { return 3 } elseif ($1 == but.h) { return 12 } elseif ($1 == but.w) { return 39 } elseif ($1 == but2.h) { return 10 } elseif ($1 == lst.type.w) { return 25 } elseif ($1 == lst.size.w) { return 38 } elseif ($1 == lst.status.w) { return 38 } elseif ($1 == lst.overlap) { return 1 } elseif ($1 == lst.search.uedge) { return 2 } elseif ($1 == lst.search.sedge) { return 2 } elseif ($1 == tab.w) { return 255 } elseif ($1 == tab.h) { return $hget(filesend.set,tab.h) } elseif ($1 == tab.sedge) { return 3 } elseif ($1 == tab.ledge) { return 3 } elseif ($1 == tab.uedge) { return 18 } elseif ($1 == box.w) { return 70 } elseif ($1 == bar.text.w) { return 25 } elseif ($1 == bar.text.h) { return 7 } elseif ($1 == bar.w) { return 65 } elseif ($1 == bar.h) { return 6 } elseif ($1 == bar.speed.w) { return 25 } elseif ($1 == set.edit.h) { return 10 } elseif ($1 == set.edit-txt.h) { return 2 } elseif ($1 == set.port.w) { return 25 } elseif ($1 == set.pwcheck.w) { return 20 } elseif ($1 == set.times.w) { return 15 } elseif ($1 == set.secs.w) { return 20 } elseif ($1 == set.space.w) { return 3 } elseif ($1 == set.c.box.w) { return 111 } elseif ($1 == set.c.text1.w) { return 25 } elseif ($1 == set.c.text2.w) { return 40 } elseif ($1 == set.c.but.w) { return 30 } elseif ($1 == set.c.comb.uedge) { return 5 } elseif ($1 == set.c.comb.ledge) { return 1 } elseif ($1 == set.s.box.w) { return 124 } elseif ($1 == set.s.text1.w) { return 25 } elseif ($1 == set.s.text2.w) { return 75 } elseif ($1 == set.s.text3.w) { return 80 } elseif ($1 == set.g.text1.w) { return 120 } elseif ($1 == set.g.text2.w) { return 45 } elseif ($1 == set.g.but.w) { return 25 } elseif ($1 == set.g.deskcheck.w) { return 50 } elseif ($1 == set.g.text3.w) { return 30 } elseif ($1 == error.text.h) { return 7 } } alias -l fs.size2 { if ($1 == lst.name.x) { return $calc((2 * $fs.size(edge)) + $fs.size(box.w) + $fs.size(tab.sedge)) } elseif ($1 == lst.type.x) { return $calc((2 * $fs.size(edge)) + $fs.size(box.w) + $fs.size(tab.w) - $fs.size(lst.status.w) - $fs.size(tab.sedge) - $fs.size(lst.size.w) - $fs.size(lst.type.w)) } elseif ($1 == lst.size.x) { return $calc((2 * $fs.size(edge)) + $fs.size(box.w) + $fs.size(tab.w) - $fs.size(lst.status.w) - $fs.size(tab.sedge) - $fs.size(lst.size.w)) } elseif ($1 == lst.status.x) { return $calc((2 * $fs.size(edge)) + $fs.size(box.w) + $fs.size(tab.w) - $fs.size(lst.status.w) - $fs.size(tab.sedge)) } elseif ($1 == lst.name.w) { return $calc($fs.size(tab.w) - (2 * $fs.size(tab.sedge)) - $fs.size(lst.status.w) - $fs.size(lst.size.w) - $fs.size(lst.type.w) + $fs.size(lst.overlap)) } elseif ($1 == lst.h) { return $calc($fs.size(tab.h) - $fs.size(tab.uedge) - $fs.size(but2.h) - $fs.size(tab.ledge) - $fs.size(lst.search.uedge) - $fs.size(but2.h)) } elseif ($1 == lst2.h) { return $calc($fs.size(tab.h) - $fs.size(tab.uedge) - $fs.size(but2.h) - $fs.size(tab.ledge)) } elseif ($1 == but.y) { return $calc((3 * $fs.size(edge)) + $fs.size(tab.h) + $fs.size(box.u.edge) + (2 * $fs.size(error.text.h)) + $fs.size(box.l.edge)) } elseif ($1 == set.cs.box.h) { return $calc($fs.size(box.u.edge) + (6 * $fs.size(set.edit.h)) + $fs.size(set.c.comb.uedge) + $fs.size(set.c.comb.ledge) + $fs.size(box.l.edge)) } elseif ($1 == set.c.txt.x) { return $calc((3 * $fs.size(edge)) + $fs.size(box.w) + $fs.size(box.s.edge)) } elseif ($1 == set.c.txt.y) { return $calc($fs.size(edge) + $fs.size(tab.uedge) + $fs.size(box.u.edge)) } elseif ($1 == set.s.txt.x) { return $calc($fs.size(edge) + $fs.size(box.w) + $fs.size(tab.w) - $fs.size(set.s.box.w) + $fs.size(box.s.edge)) } elseif ($1 == set.s.txt.y) { return $calc($fs.size(edge) + $fs.size(tab.uedge) + $fs.size(box.u.edge)) } elseif ($1 == set.g.txt.x) { return $calc((3 * $fs.size(edge)) + $fs.size(box.w) + $fs.size(box.s.edge)) } } alias -l fs.size3 { if ($1 == set.g.txt.y) { return $calc((2 * $fs.size(edge)) + $fs.size(tab.uedge) + $fs.size2(set.cs.box.h) + $fs.size(box.u.edge)) } } dialog -l filesend { title "Filesend" icon $fs.icon.file ,0 size -1 -1 337 $calc((4 * $fs.size(edge)) + $fs.size(tab.h) + (2 * $fs.size(error.text.h)) + $fs.size(box.u.edge) + $fs.size(box.l.edge) + $fs.size(but.h)) option dbu box "Connections", 2, 4 $fs.size(edge) 70 $calc($fs.size(tab.h) + 1) list 3, 7 $calc($fs.size(edge) + $fs.size(box.u.edge)) 64 $calc($fs.size(tab.h) - $fs.size(box.u.edge) - $fs.size(box.l.edge)) , size button "Connect", 11, 4 $fs.size2(but.y) 39 $fs.size(but.h) button "Start server", 12, 43 $fs.size2(but.y) 39 $fs.size(but.h) button "Disconnect", 13, 82 $fs.size2(but.y) 39 $fs.size(but.h) button "Download file", 14, 255 $fs.size2(but.y) 39 $fs.size(but.h) button "Download file", 15, 294 $fs.size2(but.y) 39 $fs.size(but.h) box "Info", 31, 4 $calc((2 * $fs.size(edge)) + $fs.size(tab.h)) 329 $calc((2 * $fs.size(error.text.h)) + $fs.size(box.u.edge) + $fs.size(box.l.edge)) text "", 32, 7 $calc((2 * $fs.size(edge)) + $fs.size(tab.h) + $fs.size(box.u.edge)) 280 $fs.size(error.text.h) text "", 33, 7 $calc((2 * $fs.size(edge)) + $fs.size(tab.h) + $fs.size(box.u.edge) + $fs.size(error.text.h)) 280 $fs.size(error.text.h) tab "Downloadable", 101, 78 $fs.size(edge) 255 $fs.size(tab.h) tab "Shared files", 102 tab "Queue", 103 tab "Downloaded", 104 tab "Shared dirs", 105 tab "Settings", 106 tab "Log", 107 button "Name", 91, 81 $calc($fs.size(edge) + $fs.size(tab.uedge)) 148 $fs.size(but2.h) button "Type", 92, 229 $calc($fs.size(edge) + $fs.size(tab.uedge)) 25 $fs.size(but2.h) button "Size", 93, 254 $calc($fs.size(edge) + $fs.size(tab.uedge)) 38 $fs.size(but2.h) button "Status", 94, 292 $calc($fs.size(edge) + $fs.size(tab.uedge)) 38 $fs.size(but2.h) edit "" 95, 81 $calc($fs.size(edge) + $fs.size(tab.h) - $fs.size(tab.ledge) - $fs.size(but2.h)) 209 $fs.size(but2.h) , autohs button "Search", 96, 292 $calc($fs.size(edge) + $fs.size(tab.h) - $fs.size(tab.ledge) - $fs.size(but2.h)) 38 $fs.size(but2.h) list 111, 81 $calc($fs.size(edge) + $fs.size(tab.uedge) + $fs.size(but2.h)) 149 $fs.size2(lst.h) , tab 101 size extsel list 112, 229 $calc($fs.size(edge) + $fs.size(tab.uedge) + $fs.size(but2.h)) 26 $fs.size2(lst.h) , tab 101 size extsel list 113, 254 $calc($fs.size(edge) + $fs.size(tab.uedge) + $fs.size(but2.h)) 39 $fs.size2(lst.h) , tab 101 size extsel list 114, 292 $calc($fs.size(edge) + $fs.size(tab.uedge) + $fs.size(but2.h)) 38 $fs.size2(lst.h) , tab 101 size extsel list 121, 81 $calc($fs.size(edge) + $fs.size(tab.uedge) + $fs.size(but2.h)) 149 $fs.size2(lst.h) , tab 102 size extsel list 122, 229 $calc($fs.size(edge) + $fs.size(tab.uedge) + $fs.size(but2.h)) 26 $fs.size2(lst.h) , tab 102 size extsel list 123, 254 $calc($fs.size(edge) + $fs.size(tab.uedge) + $fs.size(but2.h)) 39 $fs.size2(lst.h) , tab 102 size extsel list 124, 292 $calc($fs.size(edge) + $fs.size(tab.uedge) + $fs.size(but2.h)) 38 $fs.size2(lst.h) , tab 102 size extsel list 131, 81 $calc($fs.size(edge) + $fs.size(tab.uedge) + $fs.size(but2.h)) 249 $fs.size2(lst2.h) , tab 103 size list 141, 81 $calc($fs.size(edge) + $fs.size(tab.uedge) + $fs.size(but2.h)) 149 $fs.size2(lst.h) , tab 104 size extsel list 142, 229 $calc($fs.size(edge) + $fs.size(tab.uedge) + $fs.size(but2.h)) 26 $fs.size2(lst.h) , tab 104 size extsel list 143, 254 $calc($fs.size(edge) + $fs.size(tab.uedge) + $fs.size(but2.h)) 39 $fs.size2(lst.h) , tab 104 size extsel list 144, 292 $calc($fs.size(edge) + $fs.size(tab.uedge) + $fs.size(but2.h)) 38 $fs.size2(lst.h) , tab 104 size extsel list 151, 81 $calc($fs.size(edge) + $fs.size(tab.uedge) + $fs.size(but2.h)) 249 $fs.size2(lst2.h) , tab 105 size extsel box "Client", 600, 82 $calc($fs.size2(set.c.txt.y) - $fs.size(box.u.edge)) 111 $fs.size2(set.cs.box.h) , tab 106 text "address", 601, 85 $calc($fs.size2(set.c.txt.y) + $fs.size(set.edit-txt.h)) 25 $fs.size(set.edit.h) , tab 106 edit "", 611, 110 $fs.size2(set.c.txt.y) 80 $fs.size(set.edit.h) , tab 106 autohs text "port", 602, 85 $calc($fs.size2(set.c.txt.y) + $fs.size(set.edit.h) + $fs.size(set.edit-txt.h)) 25 $fs.size(set.edit.h) , tab 106 edit "", 612, 110 $calc($fs.size2(set.c.txt.y) + $fs.size(set.edit.h)) 25 $fs.size(set.edit.h) , tab 106 text "password", 603, 85 $calc($fs.size2(set.c.txt.y) + (2 * $fs.size(set.edit.h)) + $fs.size(set.edit-txt.h)) 25 $fs.size(set.edit.h) , tab 106 edit "", 613, 110 $calc($fs.size2(set.c.txt.y) + (2 * $fs.size(set.edit.h))) 57 $fs.size(set.edit.h) , tab 106 autohs check "save", 623, 170 $calc($fs.size2(set.c.txt.y) + (2 * $fs.size(set.edit.h))) 20 $fs.size(set.edit.h) , tab 106 left text "auto reconnect", 604, 85 $calc($fs.size2(set.c.txt.y) + (3 * $fs.size(set.edit.h)) + $fs.size(set.edit-txt.h)) 40 $fs.size(set.edit.h) , tab 106 edit "", 614, 125 $calc($fs.size2(set.c.txt.y) + (3 * $fs.size(set.edit.h))) 15 $fs.size(set.edit.h) , tab 106 text "times", 624, 143 $calc($fs.size2(set.c.txt.y) + (3 * $fs.size(set.edit.h)) + $fs.size(set.edit-txt.h)) 47 $fs.size(set.edit.h) , tab 106 combo 605, 85 $calc($fs.size2(set.c.txt.y) + (4 * $fs.size(set.edit.h)) + $fs.size(set.c.comb.uedge)) 90 $fs.size(set.edit.h) , tab 106 drop edit button "Load", 606, 85 $calc($fs.size2(set.c.txt.y) + (5 * $fs.size(set.edit.h)) + $fs.size(set.c.comb.uedge) + $fs.size(set.c.comb.ledge)) 30 $fs.size(set.edit.h) , tab 106 button "Save", 616, 115 $calc($fs.size2(set.c.txt.y) + (5 * $fs.size(set.edit.h)) + $fs.size(set.c.comb.uedge) + $fs.size(set.c.comb.ledge)) 30 $fs.size(set.edit.h) , tab 106 button "Delete", 626, 145 $calc($fs.size2(set.c.txt.y) + (5 * $fs.size(set.edit.h)) + $fs.size(set.c.comb.uedge) + $fs.size(set.c.comb.ledge)) 30 $fs.size(set.edit.h) , tab 106 box "Server", 630, 205 $calc($fs.size2(set.s.txt.y) - $fs.size(box.u.edge)) 124 $fs.size2(set.cs.box.h) , tab 106 text "address", 636, 208 $calc($fs.size2(set.s.txt.y) + $fs.size(set.edit-txt.h)) 25 $fs.size(set.edit.h) , tab 106 edit "fill_in_your_own_address", 646, 233 $fs.size2(set.s.txt.y) 93 $fs.size(set.edit.h) , tab 106 text "port", 631, 208 $calc($fs.size2(set.s.txt.y) + $fs.size(set.edit.h) + $fs.size(set.edit-txt.h)) 25 $fs.size(set.edit.h) , tab 106 edit "", 641, 233 $calc($fs.size2(set.s.txt.y) + $fs.size(set.edit.h)) 25 $fs.size(set.edit.h) , tab 106 text "password", 632, 208 $calc($fs.size2(set.s.txt.y) + (2 * $fs.size(set.edit.h)) + $fs.size(set.edit-txt.h)) 25 $fs.size(set.edit.h) , tab 106 edit "", 642, 233 $calc($fs.size2(set.s.txt.y) + (2 * $fs.size(set.edit.h))) 70 $fs.size(set.edit.h) , tab 106 autohs check "save", 652, 306 $calc($fs.size2(set.s.txt.y) + (2 * $fs.size(set.edit.h))) 20 $fs.size(set.edit.h) , tab 106 left text "listen for new connections", 633, 208 $calc($fs.size2(set.s.txt.y) + (3 * $fs.size(set.edit.h)) + $fs.size(set.edit-txt.h)) 75 $fs.size(set.edit.h) , tab 106 edit "", 643, 283 $calc($fs.size2(set.s.txt.y) + (3 * $fs.size(set.edit.h))) 20 $fs.size(set.edit.h) , tab 106 autohs text "minutes", 653, 306 $calc($fs.size2(set.s.txt.y) + (3 * $fs.size(set.edit.h)) + $fs.size(set.edit-txt.h)) 20 $fs.size(set.edit.h) , tab 106 text "when port is in use, auto retry", 634, 208 $calc($fs.size2(set.s.txt.y) + (4 * $fs.size(set.edit.h)) + $fs.size(set.edit-txt.h)) 80 $fs.size(set.edit.h) , tab 106 edit "", 644, 288 $calc($fs.size2(set.s.txt.y) + (4 * $fs.size(set.edit.h))) 15 $fs.size(set.edit.h) , tab 106 text "times", 654, 306 $calc($fs.size2(set.s.txt.y) + (4 * $fs.size(set.edit.h)) + $fs.size(set.edit-txt.h)) 20 $fs.size(set.edit.h) , tab 106 text "auto reconnect", 635, 208 $calc($fs.size2(set.s.txt.y) + (5 * $fs.size(set.edit.h)) + $fs.size(set.edit-txt.h)) 80 $fs.size(set.edit.h) , tab 106 edit "", 645, 288 $calc($fs.size2(set.s.txt.y) + (5 * $fs.size(set.edit.h))) 15 $fs.size(set.edit.h) , tab 106 text "times", 655, 306 $calc($fs.size2(set.s.txt.y) + (5 * $fs.size(set.edit.h)) + $fs.size(set.edit-txt.h)) 20 $fs.size(set.edit.h) , tab 106 box "General", 660, 82 $calc($fs.size3(set.g.txt.y) - $fs.size(box.u.edge)) 247 $calc($fs.size(box.u.edge) + (3 * $fs.size(set.edit.h)) + $fs.size(box.l.edge)) , tab 106 text "when a corrupted file is downloaded, auto retry", 661, 85 $calc($fs.size3(set.g.txt.y) + $fs.size(set.edit-txt.h)) 120 $fs.size(set.edit.h) , tab 106 edit "", 671, 205 $fs.size3(set.g.txt.y) 15 $fs.size(set.edit.h) , tab 106 text "times", 681, 223 $calc($fs.size3(set.g.txt.y) + $fs.size(set.edit-txt.h)) 25 $fs.size(set.edit.h) , tab 106 text "download folder", 662, 85 $calc($fs.size3(set.g.txt.y) + $fs.size(set.edit.h) + $fs.size(set.edit-txt.h)) 45 $fs.size(set.edit.h) , tab 106 edit "", 672, 130 $calc($fs.size3(set.g.txt.y) + $fs.size(set.edit.h)) 90 $fs.size(set.edit.h) , tab 106 autohs button "change", 682, 223 $calc($fs.size3(set.g.txt.y) + $fs.size(set.edit.h)) 25 $fs.size(set.edit.h) , tab 106 text "Tab height", 664, 276 $calc($fs.size3(set.g.txt.y) + $fs.size(set.edit-txt.h)) 30 $fs.size(set.edit.h) , tab 106 edit "", 674, 306 $fs.size3(set.g.txt.y) 20 $fs.size(set.edit.h) , tab 106 check "Open on desktop", 665, 276 $calc($fs.size3(set.g.txt.y) + $fs.size(set.edit.h)) 50 $fs.size(set.edit.h) , tab 106 left check "Integrate menus", 666, 276 $calc($fs.size3(set.g.txt.y) + (2 * $fs.size(set.edit.h))) 50 $fs.size(set.edit.h) , tab 106 left text "Current connection log" 170, 81 $calc($fs.size(edge) + $fs.size(tab.uedge)) 249 $fs.size(but2.h) , tab 107 edit "", 171, 81 $calc($fs.size(edge) + $fs.size(tab.uedge) + $fs.size(but2.h)) 249 $fs.size2(lst2.h) , tab 107 read multi vsbar text "Download", 21, 125 $fs.size2(but.y) 25 $fs.size(bar.text.h) text "Upload", 22, 125 $calc($fs.size2(but.y) + $fs.size(bar.text.h) - 1) 25 $fs.size(bar.text.h) edit "", 23, 154 $fs.size2(but.y) 65 $fs.size(bar.h) , read edit "", 24, 154 $calc($fs.size2(but.y) + $fs.size(bar.text.h) - 1) 65 $fs.size(bar.h) , read text "0B/s" 25, 223 $fs.size2(but.y) 25 $fs.size(bar.text.h) text "0B/s" 26, 223 $calc($fs.size2(but.y) + $fs.size(bar.text.h) - 1) 25 $fs.size(bar.text.h) } dialog -l fs.errorlog { title "Filesend errorlog" icon $fs.icon.file ,0 size -1 -1 260 120 option dbu edit "", 1, $fs.size(edge) $fs.size(edge) $calc(260 - (2 * $fs.size(edge))) $calc(120 - (2 * $fs.size(edge))) ,read multi vsbar } on *:DIALOG:filesend:init:*:{ var %dl.dir = $hget(filesend.set,dl.folder) if (!$isdir(%dl.dir)) { var %dl.dir = $iif($sdir($fs.folder,Select download folder) == $null,$fs.folder,$v1) } hadd filesend dl.folder %dl.dir hadd filesend.set dl.folder %dl.dir did -o filesend 672 1 %dl.dir var %ul.dir = $hget(filesend.set,ul.folder) , %ul.dir = $iif($isdir(%u.dir),%u.dir,$fs.folder) hadd filesend ul.folder %ul.dir hadd filesend.set ul.folder %ul.dir did -o filesend 23,24 1 $str(:,30) did -h filesend 14 did -o filesend 611 1 $nocontrol($hget(filesend.set,client.ip)) did -o filesend 612 1 $int($hget(filesend.set,client.port)) if ($hget(filesend.set,client.store.pass) == on) { did -o filesend 613 1 $nocontrol($hget(filesend.set,client.pass)) did -c filesend 623 } did -o filesend 614 1 $int($hget(filesend.set,client.retry.con)) did -o filesend 641 1 $int($hget(filesend.set,server.port)) if ($hget(filesend.set,server.store.pass) == on) { did -o filesend 642 1 $nocontrol($hget(filesend.set,server.pass)) did -c filesend 652 } did -o filesend 643 1 $iif($hget(filesend.set,server.listentime) !== $null,$round($calc($int($v1) / 60),2)) did -o filesend 644 1 $int($hget(filesend.set,server.retry.port)) did -o filesend 645 1 $int($hget(filesend.set,server.retry.con)) if ($hget(filesend.set,server.ip) !== $null) { did -o filesend 646 1 $v1 } did -o filesend 671 1 $int($hget(filesend.set,retry.file)) did -o filesend 674 1 $hget(filesend.set,tab.h) if ($hget(filesend.set,desktop)) { did -c filesend 665 } if ($hget(filesend.set,menus)) { did -c filesend 666 } did -t filesend 11 var %i = 1 , %max = $iif($int($hget(filesend.set,fav.name.0)) == $null,0,$v1) while (%i <= %max) { did -o filesend 605 %i $iif($nocontrol2($hget(filesend.set,fav.name. $+ %i)) == $null,* file corrupted *,$v1) inc %i } hsave -i filesend.set $qt($fs.settings.file) settings } on *:DIALOG:filesend:close:*:{ if ($fopen(filesend.log)) { .fclose filesend.log } if ($exists($fs.folder $+ /filesend.log)) { .fopen filesend.log $qt($fs.folder $+ /filesend.log) } else { if (!$exists($fs.folder)) { if (!$makedir($fs.folder)) { .timer 1 0 noop $input($fs.folder is an invalid pathname,o,Filesend) } else { .fopen -n filesend.log $qt($fs.folder $+ /filesend.log) } } else { .fopen -n filesend.log $qt($fs.folder $+ /filesend.log) } } if ($fopen(filesend.log)) { .fseek filesend.log $file($fopen(filesend.log).fname).size var %lines = $iif($hget(filesend.log,0) == $null,0,$v1) if (%lines > 1) { fs.dlg.adderrlog Errorlog session stopped at $time(dd-mmm-yyyy) inc %lines .fwrite filesend.log $crlf $crlf var %i = 1 while (%i <= %lines) { .fwrite -n filesend.log $hget(filesend.log,%i) inc %i } } var %pos = $hget(filesend,dialog.conlist.len) while (%pos > 0) { var %name = $hget(filesend,dialog.conlist.pos-name. $+ %pos) if (%name !== socklisten) { fs.dlg.log.disconnect %name } fs.dlg.addlog %name Stopped at $time(dd-mmm-yyyy) .fwrite filesend.log $crlf $crlf var %i = 1 , %max = $iif($hget(filesend.log,0. $+ %name) == $null,0,$v1) while (%i <= %max) { .fwrite -n filesend.log $hget(filesend.log,%i $+ . $+ %name) inc %i } dec %pos } .fclose filesend.log } filesend.server.stop filesend.client.stop hsave -i filesend.set $qt($fs.settings.file) settings hfree filesend.set hfree filesend.log if ($hget(fs.flist)) { hfree fs.flist } hfree filesend } alias -l nocontrol { return $regsubex($gettok($1,1,32),/[\x01-\x1F]/g,) } alias -l nocontrol2 { return $regsubex($1,/[\x01-\x1F]/g,) } on *:DIALOG:filesend:sclick:*:{ var %tab = $dialog(filesend).tab if ($did == 101) { did -v filesend 91-96 | did -h filesend 14 | did -to filesend 15 1 Download file } elseif ($did == 102) { did -v filesend 91-96 | did -tvo filesend 14 1 Add file | did -vo filesend 15 1 Remove file } elseif ($did == 103) { did -h filesend 91-96 | did -h filesend 14,15 } elseif ($did == 104) { did -v filesend 91-96 | did -tvo filesend 14 1 Open file | did -vo filesend 15 1 Open dir } elseif ($did == 105) { did -h filesend 91-96 | did -tvo filesend 14 1 Add dir | did -vo filesend 15 1 Remove dir } elseif ($did == 106) { did -h filesend 91-96 | did -h filesend 14 | did -tvo filesend 15 1 Apply } elseif ($did == 107) { did -h filesend 91-96 | did -tvo filesend 14 1 Open logfile | did -vo filesend 15 1 Error log } elseif ($did isnum 111-114) || ($did isnum 121-124) || ($did isnum 141-144) { var %dids = $mid($did,2,1) , %dids = $remtok($+(1,%dids,1,$chr(44),1,%dids,2,$chr(44),1,%dids,3,$chr(44),1,%dids,4),$did,1,44) var %i = $did($did,0).sel did -u filesend %dids while (%i > 0) { did -kc filesend %dids $did($did,%i).sel dec %i } } elseif ($did == 3) { var %sock = $hget(filesend,dialog.conlist.pos-name. $+ $did($did).sel) if (!%sock) { return } fs.dlg.newcon %sock } elseif ($did == 11) { fs.dlg.client } elseif ($did == 12) { fs.dlg.server } elseif ($did == 13) { var %pos = $did(3).sel if (!%pos) { return } var %sock = $hget(filesend,dialog.conlist.pos-name. $+ %pos) if (%sock == socklisten) { var %pos = $hget(filesend,dialog.conlist.len) while (%pos > 0) { var %sock = $hget(filesend,dialog.conlist.pos-name. $+ %pos) if (filesend.server.* iswm %sock) { fs.dlg.log.disconnect %sock } dec %pos } filesend.server.stop } else { fs.dlg.log.disconnect %sock hdel filesend sockerr. $+ %sock filesend.sockclose.msg %sock sockclose %sock filesend.sockclose %sock } } elseif ($did == 14) { if (%tab == 102) { filesend.addfile.user } elseif (%tab == 104) { if ($did(141,0).sel !== 1) { noop $input(Select one file to open,ou,Filesend) | return } if ($lock(run)) { noop $input(Can't open file $+ $chr(44) run command is locked.,ou,Filesend) | return } var %con = $hget(filesend,dialog.cur.con) var %id = $hget(filesend,dialog.dled.filelist.pos-id. $+ $did(141,1).sel $+ . $+ %con) var %fname = $hget(filesend,dialog.dl.filelist.name. $+ %id $+ . $+ %con) $+ $iif($hget(filesend,dialog.dl.filelist.type. $+ %id $+ . $+ %con) !== $null,. $+ $v1) var %file = $hget(filesend,dialog.dled.filelist.folder. $+ %id $+ . $+ %con) $+ \ $+ %fname if (!$isfile(%file)) { noop $input(Can't open file $+ $chr(44) file doesn't exist.,ou,Filesend) | return } run $qt(%file) } elseif (%tab == 105) { var %dir = $sdir($fs.folder,Select shared files folder),1-,32) if (!$isdir(%dir)) { return } if ($len(%dir) !== $len($gettok(%dir,1-,32))) { fs.dlg.adderrlog Can't add dir $qt(%dir) it contains double spaces. | return } filesend.adddir %dir var %i = 1 , %n = $iif($hget(filesend.set,shareddir.0) == $null,0,$v1) while (%i <= %n) { if ($hget(filesend.set,shareddir. $+ %i) == %dir) { return } inc %i } hinc filesend.set shareddir.0 hadd filesend.set shareddir. $+ %i %dir did -o filesend 151 %i %dir hsave -i filesend.set $qt($fs.settings.file) settings } elseif (%tab == 107) { if ($lock(run)) { noop $input(Can't open file $+ $chr(44) run command is locked.,ou,Filesend) | return } if (!$isfile($fs.folder $+ \filesend.log)) { noop $input(Can't open file $+ $chr(44) file doesn't exist.,ou,Filesend) | return } run $qt($fs.folder $+ \filesend.log) } } elseif ($did == 15) { if (%tab == 101) { if (!$hget(filesend,dialog.cur.con)) || ($sock($hget(filesend,dialog.cur.con)).mark !=== Accepted) { noop $input(No valid connection selected,ou,Filesend) | return } var %i = 1 , %max = $did(111,0).sel , %curcon = $hget(filesend,dialog.cur.con) while (%i <= %max) && ($len(%ids) < 700) { var %ids = %ids $hget(filesend,dialog.dl.filelist.pos-id. $+ $did(111,%i).sel $+ . $+ %curcon) inc %i } if (%ids) { filesend.request $hget(filesend,dialog.cur.con) %ids } } elseif (%tab == 102) { var %i = 1 , %max = $did(121,0).sel while (%i <= %max) && ($len(%ids) < 700) { var %ids = %ids $hget(filesend,dialog.ul.filelist.pos-id. $+ $did(121,%i).sel) inc %i } if (%ids) { filesend.remfile %ids } } elseif (%tab == 104) { if ($lock(run)) { noop $input(Can't open the download dir $+ $chr(44) run command is locked.,ou,Filesend) | return } var %dir = $hget(filesend,dl.folder) if (!$isdir(%dir)) { noop $input(Can't open the download dir $+ $chr(44) dir doesn't exist.,ou,Filesend) | return } run $qt(%dir) } elseif (%tab == 105) { var %i = $did(151,0).sel , %m = $iif($hget(filesend.set,shareddir.0) == $null,0,$int($v1)) , %f while (%i) { var %l = $did(151,%i).sel inc %f $filesend.remdir($hget(filesend.set,shareddir. $+ %l)) did -d filesend 151 %l while (%l < %m) { hadd filesend.set shareddir. $+ %l $hget(filesend.set,shareddir. $+ $calc(%l + 1)) inc %l } hdel filesend.set shareddir. $+ %m dec %m dec %i } if (%f) { filesend.flist.send } hadd filesend.set shareddir.0 %m hsave -i filesend.set $qt($fs.settings.file) settings } elseif (%tab == 106) { var %text = $nocontrol($did(611)) if (%text !== $null) { did -o filesend 611 1 %text hadd filesend.set client.ip %text } else { did -o filesend 611 1 $hget(filesend.set,client.ip) } if ($remove($did(612),$chr(32)) !== $null) { var %text = $int($did(612)) if (%text > 65535) { var %text = 65535 } if (%text < 1) { var %text = 1 } did -o filesend 612 1 %text hadd filesend.set client.port %text } else { did -o filesend 612 1 $hget(filesend.set,client.port) } if ($did(623).state) { var %text = $nocontrol($did(613)) if (%text !== $null) { did -o filesend 613 1 %text if ($hget(filesend,pw.filesend.client) !== $null) { hadd filesend pw.filesend.client %text } hadd filesend.set client.pass %text } else { did -o filesend 613 1 $hget(filesend.set,client.pass) } hadd filesend.set client.store.pass on } else { did -r filesend 613 hdel filesend.set client.pass hdel filesend.set client.store.pass } if ($remove($did(614),$chr(32)) !== $null) { var %text = $int($did(614)) if (%text > 100) { var %text = 100 } if (%text < 0) { var %text = 0 } did -o filesend 614 1 %text if ($hget(filesend,retry.con.filesend.client) !== $null) { hadd filesend retry.con.filesend.client %text } hadd filesend.set client.retry.con %text } else { did -o filesend 614 1 $hget(filesend.set,client.retry.con) } var %text = $nocontrol($did(646)) if (%text !== $null) { did -o filesend 646 1 %text hadd filesend.set server.ip %text } elseif ($hget(filesend.set,server.ip) !== $null) { did -o filesend 646 1 $v1 } else { did -o filesend 646 1 fill_in_your_own_address } if ($remove($did(641),$chr(32)) !== $null) { var %text = $int($did(641)) if (%text > 65535) { var %text = 65535 } if (%text < 1) { var %text = 1 } did -o filesend 641 1 %text hadd filesend.set server.port %text } else { did -o filesend 641 1 $hget(filesend.set,server.port) } if ($did(652).state) { var %text = $nocontrol($did(642)) if (%text !== $null) { did -o filesend 642 1 %text if ($hget(filesend,pw.filesend.listen) !== $null) { hadd filesend pw.filesend.listen %text } hadd filesend.set server.pass %text } else { did -o filesend 642 1 $hget(filesend.set,server.pass) } hadd filesend.set server.store.pass on } else { did -r filesend 642 hdel filesend.set server.pass hdel filesend.set server.store.pass } if ($remove($did(643),$chr(32)) !== $null) { var %text = $int($calc($did(643) * 60)) if (%text > 604800) { var %text = 604800 } if (%text < 1) { var %text = 1 } did -o filesend 643 1 $round($calc(%text / 60),2) hadd filesend.set server.listentime %text } else { did -o filesend 643 1 $round($calc($hget(filesend.set,server.listentime) / 60),2) } if ($remove($did(644),$chr(32)) !== $null) { var %text = $int($did(644)) if (%text > 100) { var %text = 100 } if (%text < 0) { var %text = 0 } did -o filesend 644 1 %text if ($hget(filesend,retry.port.filesend.listen) !== $null) { hadd filesend retry.port.filesend.listen %text } hadd filesend.set server.retry.port %text } else { did -o filesend 644 1 $hget(filesend.set,server.retry.port) } if ($remove($did(645),$chr(32)) !== $null) { var %text = $int($did(645)) if (%text > 100) { var %text = 100 } if (%text < 0) { var %text = 0 } did -o filesend 645 1 %text if ($hget(filesend,retry.con.filesend.listen) !== $null) { hadd filesend retry.con.filesend.listen %text } hadd filesend.set server.retry.con %text } else { did -o filesend 645 1 $hget(filesend.set,server.retry.con) } if ($remove($did(671),$chr(32)) !== $null) { var %text = $int($did(671)) if (%text > 100) { var %text = 100 } if (%text < 0) { var %text = 0 } did -o filesend 671 1 %text if ($hget(filesend,retry.file) !== $null) { hadd filesend retry.file %text } hadd filesend.set retry.file %text } else { did -o filesend 671 1 $hget(filesend.set,retry.file) } if ($isdir($did(672))) { hadd filesend dl.folder $did(672) hadd filesend.set dl.folder $did(672) } else { did -o filesend 672 1 $hget(filesend,dl.folder) } if ($remove($did(674),$chr(32)) !== $null) { var %text = $int($did(674)) } else { var %text = $hget(filesend.set,tab.h) } if (%text < 145) { var %text = 145 } if (%text > 500) { var %text = 500 } did -o filesend 674 1 %text if (%text !== $hget(filesend.set,tab.h)) { var %restart = 1 } hadd filesend.set tab.h %text if ($did(665).state) && (!$hget(filesend.set,desktop)) { var %restart = 1 | hadd filesend.set desktop 1 } elseif (!$did(665).state) && ($hget(filesend.set,desktop)) { var %restart = 1 | hdel filesend.set desktop } if ($did(666).state) { hadd filesend.set menus 1 } else { hadd filesend.set menus 0 } if ($hget(filesend.set,menus)) && (!$toolbar(filesend)) && ($exists($fs.icon.file)) { fs.dlg.toolbar } elseif (!$hget(filesend.set,menus)) && ($toolbar(filesend)) { toolbar -d filesend } hsave -i filesend.set $qt($fs.settings.file) settings if (%restart == 1) { dialog -x filesend | filesend settings restart } } elseif (%tab == 107) { if ($dialog(fs.errorlog)) { dialog -v fs.errorlog | return } dialog -am fs.errorlog fs.errorlog var %i = 1 , %l = $iif($hget(filesend.log,0) == $null,0,$v1) while (%i <= %l) { did -o fs.errorlog 1 %i $hget(filesend.log,%i) inc %i } } } elseif ($did isnum 91-94) { fs.dlg.flist.sort $did } elseif ($did == 96) { fs.dlg.flist.search } elseif ($did == 606) { var %num = $did(605).sel if (%num == 0) { noop $input(Invalid name,owu,filesend) | return } did -o filesend 605 0 $nocontrol2($hget(filesend.set,fav.name. $+ %num)) var %ip = $nocontrol($hget(filesend.set,fav.ip. $+ %num)) did -o filesend 611 1 %ip if (%ip !== $null) { hadd filesend.set client.ip %ip } else { hdel filesend.set client.ip } var %port = $int($hget(filesend.set,fav.port. $+ %num)) if (%port isnum 1-65535) { did -o filesend 612 1 %port hadd filesend.set client.port %port } else { did -r filesend 612 hdel filesend.set client.port } if ($hget(filesend.set,fav.store.pass. $+ %num) == on) { var %pass = $nocontrol($hget(filesend.set,fav.pass. $+ %num)) did -o filesend 613 1 %pass if (%pass !== $null) { hadd filesend.set client.pass %pass } else { hdel filesend.set client.pass } did -c filesend 623 hadd filesend.set client.store.pass on } else { hdel filesend.set client.pass did -r filesend 613 did -u filesend 623 } var %r.con = $hget(filesend.set,fav.retry.con. $+ %num) if (%r.con !== $null) { var %r.con = $int(%r.con) if (%r.con > 100) { var %r.con = 100 } if (%r.con < 0) { var %r.con = 0 } did -o filesend 614 1 %r.con hadd filesend retry.con.filesend.client %r.con hadd filesend.set client.retry.con %r.con } else { did -r filesend 614 hdel filesend.set client.retry.con } hsave -i filesend.set $qt($fs.settings.file) settings } elseif ($did == 616) { var %name = $nocontrol2($iif($did(605) == $null,$input(Enter name,eu,filesend),$v1)) if (%name == $null) { noop $input(Invalid name,owu,filesend) | return } var %i = 1 , %max = $iif($int($hget(filesend.set,fav.name.0)) == $null,0,$v1) while (%i <= %max) { if ($nocontrol2($hget(filesend.set,fav.name. $+ %i)) == %name) { break } inc %i } hadd filesend.set fav.name.0 $iif(%i > %max,%i,%max) hadd filesend.set fav.name. $+ %i %name var %ip = $nocontrol($did(611)) did -o filesend 611 1 %ip if (%ip !== $null) { hadd filesend.set client.ip %ip hadd filesend.set fav.ip. $+ %i %ip } else { hdel filesend.set client.ip hdel filesend.set fav.ip. $+ %i } if ($remove($did(612),$chr(32)) !== $null) { var %port = $int($did(612)) if (%port > 65535) { var %port = 65535 } if (%port < 1) { var %port = 1 } did -o filesend 612 1 %port hadd filesend.set client.port %port hadd filesend.set fav.port. $+ %i %port } else { did -r filesend 612 hdel filesend.set client.port hdel filesend.set fav.port. $+ %i } if ($did(623).state) { var %pass = $nocontrol($did(613)) did -o filesend 613 1 %pass if (%pass !== $null) { hadd filesend.set client.pass %pass hadd filesend.set fav.pass. $+ %i %pass } else { hdel filesend.set client.pass hdel filesend.set fav.pass. $+ %i } hadd filesend.set client.store.pass on hadd filesend.set fav.store.pass. $+ %i on } else { did -r filesend 613 hdel filesend.set client.pass hdel filesend.set client.store.pass hdel filesend.set fav.pass. $+ %i hdel filesend.set fav.store.pass. $+ %i } if ($remove($did(614),$chr(32)) !== $null) { var %r.con = $int($did(614)) if (%r.con > 100) { var %r.con = 100 } if (%r.con < 0) { var %r.con = 0 } did -o filesend 614 1 %r.con hadd filesend retry.con.filesend.client %r.con hadd filesend.set client.retry.con %r.con hadd filesend.set fav.retry.con. $+ %i %r.con } else { did -r filesend 614 hdel filesend.set client.retry.con hdel filesend.set fav.retry.con. $+ %i } did -o filesend 605 %i %name hsave -i filesend.set $qt($fs.settings.file) settings } elseif ($did == 626) { var %i = $did(605).sel if (%i == 0) { noop $input(Invalid name,owu,filesend) | return } did -d filesend 605 %i var %max = $iif($int($hget(filesend.set,fav.name.0)) == $null,0,$v1) while (%i < %max) { hadd filesend.set fav.name. $+ %i $hget(filesend.set,fav.name. $+ $calc(%i + 1)) hadd filesend.set fav.ip. $+ %i $hget(filesend.set,fav.ip. $+ $calc(%i + 1)) hadd filesend.set fav.port. $+ %i $hget(filesend.set,fav.port. $+ $calc(%i + 1)) hadd filesend.set fav.store.pass. $+ %i $hget(filesend.set,fav.store.pass. $+ $calc(%i + 1)) hadd filesend.set fav.pass. $+ %i $hget(filesend.set,fav.pass. $+ $calc(%i + 1)) hadd filesend.set fav.retry.con. $+ %i $hget(filesend.set,fav.retry.con. $+ $calc(%i + 1)) inc %i } hdel -w filesend.set fav.*. $+ %max hdec filesend.set fav.name.0 hsave -i filesend.set $qt($fs.settings.file) settings } elseif ($did == 682) { var %dl.dir = $hget(filesend,dl.folder) if ($sdir($iif($isdir(%dl.dir),%dl.dir,$fs.folder),Select download folder) !== $null) { did -o filesend 672 1 $v1 } } } on *:DIALOG:filesend:dclick:3,111-114,121-124,141-144,151:{ if ($did($did,0).sel !== 1) { return } if ($did == 3) { var %text = $input(Enter new connection name,eu,filesend) if (%text == $null) { return } var %text = $left(%text,20) did -co filesend 3 $did(3,1).sel %text hadd filesend dialog.conlist.showname. $+ $did(3,1).sel %text } if ($did isnum 111-112) { if (!$hget(filesend,dialog.cur.con)) { return } var %id = $hget(filesend,dialog.dl.filelist.pos-id. $+ $did($did,1).sel $+ . $+ $hget(filesend,dialog.cur.con)) if (%id) { filesend.request $hget(filesend,dialog.cur.con) %id } } if ($did isnum 121-124) { var %file = $hget(fs.flist,$hget(filesend,dialog.ul.filelist.pos-id. $+ $did($did,1).sel)) if (!$lock(run)) && ($isfile(%file)) { run $qt(%file) } } if ($did isnum 141-144) { var %con = $hget(filesend,dialog.cur.con) var %id = $hget(filesend,dialog.dled.filelist.pos-id. $+ $did($did,1).sel $+ . $+ %con) var %fname = $hget(filesend,dialog.dled.filelist.name. $+ %id $+ . $+ %con) $+ $iif($hget(filesend,dialog.dled.filelist.type. $+ %id $+ . $+ %con) !== $null,. $+ $v1) var %file = $hget(filesend,dialog.dled.filelist.folder. $+ %id $+ . $+ %con) $+ \ $+ %fname if (!$lock(run)) && ($isfile(%file)) { run $qt(%file) } } if ($did == 151) { var %dir = $hget(filesend.set,shareddir. $+ $did($did,1).sel) if (!$lock(run)) && ($isdir(%dir)) { run $qt(%dir) } } } on *:DIALOG:filesend:edit:95:{ did -t filesend 96 } alias -l fs.dlg.invited { ; $1 = address $2 = port $3 = pw dialog -v filesend var %ip = $nocontrol($1) if (%ip == $null) { noop $input(Invalid address,owu,filesend) | return } var %port = $int($2) if (%port > 65535) || (%port < 1) { noop $input(Invalid port,owu,filesend) | return } var %pw = $nocontrol($3) if (%pw == $null) { noop $input(Invalid password,owu,filesend) | return } if ($hget(filesend.set,client.store.pass) == on) { did -o filesend 613 1 %pw hadd filesend.set client.pass %pw } else { did -r filesend 613 hdel filesend.set client.pass } did -o filesend 611 1 %ip hadd filesend.set client.ip %ip did -o filesend 612 1 %port hadd filesend.set client.port %port fs.dlg.client invite %pw } alias -l fs.dlg.client { ; possible parameters ; $1 = invite $2 = password var %port = $int($hget(filesend.set,client.port)) , %ip = $nocontrol($hget(filesend.set,client.ip)) if ($1 !== invite) { var %text if (%ip !== $null) { if (%port isnum 1-65535) { var %text = %ip $+ : $+ %port } else { %text = %ip } } var %address = $input(Enter server address,eou,filesend,%text) var %ip = $nocontrol($gettok(%address,1,58)) , %port = $int($gettok(%address,2,58)) } if (%ip == $null) { noop $input(Invalid server address,owu,filesend) | return } if (%port !isnum 1-65535) { var %port = $int($input(Enter port,eu,filesend)) if (%port !isnum 1-65535) { noop $input(Invalid port,owu,filesend) | return } } if (%ip == $nocontrol($hget(filesend.set,client.ip))) { var %pass = $nocontrol($hget(filesend.set,client.pass)) } if ($1 == invite) { var %pass = $2 } if (%pass == $null) || (($hget(filesend.set,client.store.pass) !== on) && ($1 !== invite)) { var %pass = $nocontrol($input(Enter password,eu,filesend)) if (%pass == $null) { noop $input(Invalid password,owu,filesend) | return } if ($hget(filesend.set,client.store.pass) == on) { hadd filesend.set client.pass %pass did -o filesend 613 1 %pass did -c filesend 623 } } var %retry.con = $hget(filesend.set,client.retry.con) if (%retry.con == $null) || ($int(%retry.con) !isnum 0-100) { if ($input(Enter number of times to retry connection,eu,filesend) == $null) { noop $input(Aborted by user,ou,filesend) | return } var %retry.con = $int($v1) if (%retry.con !isnum 0-100) { noop $input(Invalid number,owu,filesend) | return } hadd filesend.set client.retry.con %retry.con } var %retry.file = $hget(filesend.set,retry.file) if (%retry.file == $null) || ($int(%retry.file) !isnum 0-100) { if ($input(Enter number of times to retry corrupted files,eu,filesend) == $null) { noop $input(Aborted by user,ou,filesend) | return } var %retry.file = $int($v1) if (%retry.file !isnum 0-100) { noop $input(Invalid number,owu,filesend) | return } hadd filesend.set retry.file %retry.file } hadd filesend.set client.ip %ip hadd filesend.set client.port %port did -o filesend 611 1 %ip did -o filesend 612 1 %port did -o filesend 614 1 %retry.con did -o filesend 671 1 %retry.file hsave -i filesend.set $qt($fs.settings.file) settings filesend.client %ip %port %pass $int(%retry.con) $int(%retry.file) } alias -l fs.dlg.server { var %port = $int($hget(filesend.set,server.port)) if (%port !isnum 1-65535) { var %port = $int($input(Enter port,eu,filesend)) if (%port !isnum 1-65535) { noop $input(Invalid port,owu,filesend) | return } hadd filesend.set server.port %port } if ($hget(filesend,dialog.conlist.name-pos.socklisten)) && (%port == $hget(filesend,port.filesend.listen)) { var %port = $int($input(Enter port ( $+ %port is in use),eu,filesend)) if (%port !isnum 1-65535) { noop $input(Invalid port,owu,filesend) | return } hadd filesend.set server.port %port } var %pass = $nocontrol($hget(filesend.set,server.pass)) if (%pass == $null) || ($hget(filesend.set,server.store.pass) !== on) { var %pass = $nocontrol($input(Enter password,eu,filesend)) if (%pass == $null) { noop $input(Invalid password,owu,filesend) | return } if ($hget(filesend.set,server.store.pass) == on) { hadd filesend.set server.pass %pass did -o filesend 642 1 %pass did -c filesend 652 } } var %retry.port = $hget(filesend.set,server.retry.port) if (%retry.port == $null) || (%retry.port !isnum 0-100) { if ($input(Enter number of times to retry when port is in use,eu,filesend) == $null) { noop $input(Aborted by user,ou,filesend) | return } var %retry.port = $int($v1) if (%retry.port !isnum 0-100) { noop $input(Invalid number,owu,filesend) | return } hadd filesend.set server.retry.port %retry.port } var %listentime = $int($hget(filesend.set,server.listentime)) if (%listentime !isnum 1-604800) { var %listentime = $int($input(Enter number of seconds to listen for new connections,eu,filesend)) if (%listentime !isnum 1-604800) { noop $input(Invalid number,owu,filesend) | return } hadd filesend.set server.listentime %listentime } did -o filesend 641 1 %port did -o filesend 643 1 $round($calc(%listentime / 60),2) did -o filesend 644 1 %retry.port if ($hget(filesend,dialog.conlist.name-pos.socklisten)) { hsave -i filesend.set $qt($fs.settings.file) settings filesend.listen.restart %port %pass $int(%retry.port) %listentime return } var %retry.con = $hget(filesend.set,server.retry.con) if (%retry.con == $null) || (%retry.con !isnum 0-100) { if ($input(Enter number of times to retry connection,eu,filesend) == $null) { noop $input(Aborted by user,ou,filesend) | return } var %retry.con = $int($v1) if (%retry.con !isnum 0-100) { noop $input(Invalid number,owu,filesend) | return } hadd filesend.set server.retry.con %retry.con } var %retry.file = $hget(filesend.set,retry.file) if (%retry.file == $null) || (%retry.file !isnum 0-100) { if ($input(Enter number of times to retry corrupted files,eu,filesend) == $null) { noop $input(Aborted by user,ou,filesend) | return } var %retry.file = $int($v1) if (%retry.file !isnum 0-100) { noop $input(Invalid number,owu,filesend) | return } hadd filesend.set retry.file %retry.file } did -o filesend 645 1 %retry.con did -o filesend 671 1 %retry.file hsave -i filesend.set $qt($fs.settings.file) settings filesend.server %port %pass $int(%retry.port) %listentime $int(%retry.con) $int(%retry.file) } alias -l fs.dlg.addlog { ; $1 = sockname $2- is text var %logline = $chr(91) $+ $time(HH:nn:ss) $+ $chr(93) $2- hinc filesend.log 0. $+ $1 hadd filesend.log $hget(filesend.log,0. $+ $1) $+ . $+ $1 %logline if ($hget(filesend,dialog.cur.con) == $1) { did -a filesend 171 %logline $crlf } } alias -l fs.dlg.adderrlog { ; $1 = con $2- = text var %logline = $chr(91) $+ $time(HH:nn:ss) $+ $chr(93) - $+ $1 $+ - $2- hinc filesend.log 0 hadd filesend.log $hget(filesend.log,0) %logline did -o filesend 32 1 $did(filesend,33).text did -o filesend 33 1 %logline if ($dialog(fs.errorlog)) { did -a fs.errorlog 1 %logline $crlf } } alias -l fs.dlg.newcon { ; $1 = sockname if ($hget(filesend,dialog.cur.con) == $1) || ($1 == $null) { return } hadd filesend dialog.cur.con $1 did -o filesend 23,24 1 $str(:,30) did -o filesend 25 1 $bytes($calc($hget(filesend,dialog.dl.lastspeed. $+ $1) / 2),3).suf $+ /s did -o filesend 26 1 $bytes($calc($hget(filesend,dialog.ul.lastspeed. $+ $1) / 2),3).suf $+ /s did -r filesend 111-114,131,141-144,171 var %i = 1 , %max = $hget(filesend,dialog.dl.filelist.listlength. $+ $1) while (%i <= %max) { var %id = $hget(filesend,dialog.dl.filelist.pos-id. $+ %i $+ . $+ $1) , %id = $+(%id,.,$1) did -a filesend 111 $hget(filesend,dialog.dl.filelist.name. $+ %id) did -a filesend 112 $hget(filesend,dialog.dl.filelist.type. $+ %id) did -a filesend 113 $bytes($hget(filesend,dialog.dl.filelist.size. $+ %id),3).suf did -a filesend 114 $hget(filesend,dialog.dl.filelist.status. $+ %id) inc %i } var %i = 1 , %max = $hget(filesend,dialog.ul.filelist.listlength) while (%i <= %max) { var %id = $hget(filesend,dialog.ul.filelist.pos-id. $+ %i) did $iif($did(filesend,124,%i).state,-okc,-o) filesend 124 %i $hget(filesend,$+(dialog.ul.filelist.status.,%id,.,$1)) inc %i } var %i = 1 , %max = $hget(filesend,dialog.dled.filelist.listlength. $+ $1) while (%i <= %max) { var %id = $hget(filesend,$+(dialog.dled.filelist.pos-id.,%i,.,$1)) , %id = $+(%id,.,$1) did -a filesend 141 $hget(filesend,dialog.dled.filelist.name. $+ %id) did -a filesend 142 $hget(filesend,dialog.dled.filelist.type. $+ %id) did -a filesend 143 $bytes($hget(filesend,dialog.dled.filelist.size. $+ %id),3).suf did -a filesend 144 $hget(filesend,dialog.dled.filelist.status. $+ %id) inc %i } var %i = 1 , %max = $hget(filesend.log,0. $+ $1) while (%i <= %max) { did -a filesend 171 $hget(filesend.log,$+(%i,.,$1)) $crlf inc %i } } alias -l fs.dlg.log.disconnect { ; $1 = sockname fs.dlg.addlog $1 Disconnecting.. var %ok = 0 , %err = 0 , %i = $iif($hget(filesend,dialog.dled.filelist.listlength. $+ $1) == $null,0,$v1) while (%i) { if ($hget(filesend,dialog.dled.filelist.status. $+ $hget(filesend,dialog.dled.filelist.pos-id. $+ %i $+ . $+ $1) $+ . $+ $1) == Ok) { inc %ok } else { inc %err } dec %i } fs.dlg.addlog $1 Total downloaded: $calc(%ok + %err) files $iif(%err,$chr(40) $+ %err corrupt $+ $chr(41)) -- $bytes($sock($1).rcvd,3).suf fs.dlg.addlog $1 Total sent: $iif($hget(filesend,dialog.uled.filelist.listlength. $+ $1) == $null,0,$v1) files -- $bytes($sock($1).sent,3).suf fs.dlg.addlog $1 Total time: $duration($sock($1).to) } alias -l fs.dlg.flist.sort { ; $1 = $did (91-94) ; tab = 101 102 104 var %tab = $dialog(filesend).tab , %con = $hget(filesend,dialog.cur.con) , %dids = $+(1,$mid(%tab,3,1),1-1,$mid(%tab,3,1),4) if ($1 == 91) { var %it = name } elseif ($1 == 92) { var %it = type } elseif ($1 == 93) { var %it = size } elseif ($1 == 94) { var %it = status } if ($window(@filesend.sort)) { window -c @filesend.sort } window $iif($1 == 93,-hn,-hns) @filesend.sort if ($istok(101 104,%tab,32)) { var %t = $iif(%tab == 101,dl,dled) , %i = $hget(filesend,$+(dialog.,%t,.filelist.listlength.,%con)) while (%i) { var %id = $hget(filesend,$+(dialog.,%t,.filelist.pos-id.,%i,.,%con)) aline @filesend.sort $hget(filesend,$+(dialog.,%t,.filelist.,%it,.,%id,.,%con)) %id dec %i } if ($1 == 93) { filter -cwwtu 1 32 @filesend.sort @filesend.sort } var %i = 1 , %max = $line(@filesend.sort,0) , %did1 = $+(1,$mid(%tab,3,1),1) , %did2 = $calc(%did1 + 1) , %did3 = $calc(%did2 + 1) , %did4 = $calc(%did3 + 1) did -r filesend %dids while (%i <= %max) { var %id = $gettok($line(@filesend.sort,%i),-1,32) hadd filesend $+(dialog.,%t,.filelist.pos-id.,%i,.,%con) %id hadd filesend $+(dialog.,%t,.filelist.id-pos.,%id,.,%con) %i did -a filesend %did1 $hget(filesend,$+(dialog.,%t,.filelist.name.,%id,.,%con)) did -a filesend %did2 $hget(filesend,$+(dialog.,%t,.filelist.type.,%id,.,%con)) did -a filesend %did3 $bytes($hget(filesend,$+(dialog.,%t,.filelist.size.,%id,.,%con)),3).suf did -a filesend %did4 $hget(filesend,$+(dialog.,%t,.filelist.status.,%id,.,%con)) inc %i } } elseif (%tab == 102) { var %i = $hget(filesend,dialog.ul.filelist.listlength) while (%i) { var %id = $hget(filesend,dialog.ul.filelist.pos-id. $+ %i) aline @filesend.sort $hget(filesend,$+(dialog.ul.filelist.,%it,.,%id,$iif(%it == status,. $+ %con))) %id dec %i } if ($1 == 93) { filter -cwwtu 1 32 @filesend.sort @filesend.sort } var %i = 1 , %max = $line(@filesend.sort,0) did -r filesend %dids while (%i <= %max) { var %id = $gettok($line(@filesend.sort,%i),-1,32) hadd filesend dialog.ul.filelist.pos-id. $+ %i %id hadd filesend dialog.ul.filelist.id-pos. $+ %id %i did -a filesend 121 $hget(filesend,dialog.ul.filelist.name. $+ %id) did -a filesend 122 $hget(filesend,dialog.ul.filelist.type. $+ %id) did -a filesend 123 $bytes($hget(filesend,dialog.ul.filelist.size. $+ %id),3).suf did -a filesend 124 $hget(filesend,$+(dialog.ul.filelist.status.,%id,.,%con)) inc %i } } window -c @filesend.sort } alias -l fs.dlg.flist.search { ; tab 101 102 104 var %tab = $dialog(filesend).tab , %con = $hget(filesend,dialog.cur.con) , %dids = $+(1,$mid(%tab,3,1),1-1,$mid(%tab,3,1),4) if ($window(@filesend.search)) { window -c @filesend.search } if ($window(@filesend.searchx)) { window -c @filesend.searchx } window -hn @filesend.search window -hn @filesend.searchx did -r filesend %dids if ($istok(101 104,%tab,32)) { var %t = $iif(%tab == 101,dl,dled) , %i = 1 , %max = $hget(filesend,$+(dialog.,%t,.filelist.listlength.,%con)) while (%i <= %max) { var %id = $hget(filesend,$+(dialog.,%t,.filelist.pos-id.,%i,.,%con)) , %name = $hget(filesend,$+(dialog.,%t,.filelist.name.,%id,.,%con)) , %type = $hget(filesend,$+(dialog.,%t,.filelist.type.,%id,.,%con)) aline @filesend.search %id %name $+ $iif(%type !== $null,. $+ $v1) inc %i } filter -wwx @filesend.search @filesend.searchx & $+(*,$did(filesend,95).text,*) filter -cww @filesend.search @filesend.search & $+(*,$did(filesend,95).text,*) var %i = 1 , %max = $line(@filesend.search,0) , %did1 = $+(1,$mid(%tab,3,1),1) , %did2 = $calc(%did1 + 1) , %did3 = $calc(%did2 + 1) , %did4 = $calc(%did3 + 1) while (%i <= %max) { var %id = $gettok($line(@filesend.search,%i),1,32) hadd filesend $+(dialog.,%t,.filelist.pos-id.,%i,.,%con) %id hadd filesend $+(dialog.,%t,.filelist.id-pos.,%id,.,%con) %i did -ack filesend %did1 $hget(filesend,$+(dialog.,%t,.filelist.name.,%id,.,%con)) did -ack filesend %did2 $hget(filesend,$+(dialog.,%t,.filelist.type.,%id,.,%con)) did -ack filesend %did3 $bytes($hget(filesend,$+(dialog.,%t,.filelist.size.,%id,.,%con)),3).suf did -ack filesend %did4 $hget(filesend,$+(dialog.,%t,.filelist.status.,%id,.,%con)) inc %i } var %j = 1 , %max = $line(@filesend.searchx,0) while (%j <= %max) { var %id = $gettok($line(@filesend.searchx,%j),1,32) hadd filesend $+(dialog.,%t,.filelist.pos-id.,%i,.,%con) %id hadd filesend $+(dialog.,%t,.filelist.id-pos.,%id,.,%con) %i did -a filesend %did1 $hget(filesend,$+(dialog.,%t,.filelist.name.,%id,.,%con)) did -a filesend %did2 $hget(filesend,$+(dialog.,%t,.filelist.type.,%id,.,%con)) did -a filesend %did3 $bytes($hget(filesend,$+(dialog.,%t,.filelist.size.,%id,.,%con)),3).suf did -a filesend %did4 $hget(filesend,$+(dialog.,%t,.filelist.status.,%id,.,%con)) inc %i inc %j } } elseif (%tab == 102) { var %i = 1 , %max = $hget(filesend,dialog.ul.filelist.listlength) while (%i <= %max) { var %id = $hget(filesend,dialog.ul.filelist.pos-id. $+ %i) , %name = $hget(filesend,$+(dialog.ul.filelist.name.,%id)) , %type = $hget(filesend,$+(dialog.ul.filelist.type.,%id)) aline @filesend.search %id %name $+ $iif(%type !== $null,. $+ $v1) inc %i } filter -wwx @filesend.search @filesend.searchx & $+(*,$did(filesend,95).text,*) filter -cww @filesend.search @filesend.search & $+(*,$did(filesend,95).text,*) var %i = 1 , %max = $line(@filesend.search,0) while (%i <= %max) { var %id = $gettok($line(@filesend.search,%i),1,32) hadd filesend dialog.ul.filelist.pos-id. $+ %i %id hadd filesend dialog.ul.filelist.id-pos. $+ %id %i did -ack filesend 121 $hget(filesend,dialog.ul.filelist.name. $+ %id) did -ack filesend 122 $hget(filesend,dialog.ul.filelist.type. $+ %id) did -ack filesend 123 $bytes($hget(filesend,dialog.ul.filelist.size. $+ %id),3).suf did -ack filesend 124 $hget(filesend,$+(dialog.ul.filelist.status.,%id,.,%con)) inc %i } var %j = 1 , %max = $line(@filesend.searchx,0) while (%j <= %max) { var %id = $gettok($line(@filesend.searchx,%j),1,32) hadd filesend dialog.ul.filelist.pos-id. $+ %i %id hadd filesend dialog.ul.filelist.id-pos. $+ %id %i did -a filesend 121 $hget(filesend,dialog.ul.filelist.name. $+ %id) did -a filesend 122 $hget(filesend,dialog.ul.filelist.type. $+ %id) did -a filesend 123 $bytes($hget(filesend,dialog.ul.filelist.size. $+ %id),3).suf did -a filesend 124 $hget(filesend,$+(dialog.ul.filelist.status.,%id,.,%con)) inc %i inc %j } } window -c @filesend.search window -c @filesend.searchx } on *:SIGNAL:filesend:{ if (!$dialog(filesend)) { return } ;;;;;;; CONNECTION ;;;;;;; if ($1 == pw.denied) { ; $2 = sockname fs.dlg.adderrlog $gettok($2,2,46) password denied by the server. } elseif ($1 == version.denied) { ; $2 = sockname $3- = others version fs.dlg.adderrlog $gettok($2,2,46) disconnected: $iif($gettok($2,2,46) == server,Client,Server) is running $3- $+ . Your version is $filesend.version fs.dlg.adderrlog $gettok($2,2,46) Get the latest version at http://home.versatel.nl/vliet1953/irc/ } if ($1 == version.accept) { ; $2 = sockname if (filesend.server.* !iswm $2) && (filesend.client !== $2) { return } fs.dlg.addlog $2 Connected to $sock($2).ip at $time(dd-mmm-yyyy) var %showname = $gettok($2,2-,46) $sock($2).ip var %pos = 1 , %max = $hget(filesend,dialog.ul.filelist.listlength) while (%pos <= %max) { var %id = $hget(filesend,dialog.ul.filelist.pos-id. $+ %pos) hadd filesend $+(dialog.ul.filelist.status.,%id,.,$2) .. inc %pos } hinc filesend dialog.conlist.len hadd filesend dialog.conlist.pos-name. $+ $hget(filesend,dialog.conlist.len) $2 hadd filesend dialog.conlist.name-pos. $+ $2 $hget(filesend,dialog.conlist.len) hadd filesend dialog.conlist.showname. $+ $hget(filesend,dialog.conlist.len) %showname if ($did(filesend,3).lines == 0) || (($did(filesend,3).lines == 1) && ($hget(filesend,dialog.cur.con) == socklisten)) { did -ca filesend 3 %showname | fs.dlg.newcon $2 } else { did -o filesend 3 $hget(filesend,dialog.conlist.len) %showname } } if ($1 == socklisten.open) { ;$2 = port fs.dlg.addlog socklisten Started listening for connections at $time(dd-mmm-yyyy) using port $2 hinc filesend dialog.conlist.len hadd filesend dialog.conlist.pos-name. $+ $hget(filesend,dialog.conlist.len) socklisten hadd filesend dialog.conlist.name-pos.socklisten $hget(filesend,dialog.conlist.len) hadd filesend dialog.conlist.showname. $+ $hget(filesend,dialog.conlist.len) Server (listening) if ($hget(filesend,dialog.conlist.len) == 1) { did -ca filesend 3 Server (listening) | fs.dlg.newcon socklisten } else { did -a filesend 3 Server (listening) } if ($hget(filesend,dialog.invite)) { notice $gettok($hget(filesend,dialog.invite),1,32) Filesend invite $gettok($hget(filesend,dialog.invite),3,32) $hget(filesend,port.filesend.listen) $hget(filesend,pw.filesend.listen) hdel filesend dialog.invite } } if ($1 == socklisten.reopen) { ;$2 = port fs.dlg.addlog socklisten Started listening for connections at $time(dd-mmm-yyyy) using port $2 hadd filesend dialog.conlist.showname. $+ $hget(filesend,dialog.conlist.len) Server (listening) if ($hget(filesend,dialog.cur.con) == socklisten) { did -co filesend 3 $hget(filesend,dialog.conlist.name-pos.socklisten) Server (listening) } else { did -o filesend 3 $hget(filesend,dialog.conlist.name-pos.socklisten) Server (listening) } if ($hget(filesend,dialog.invite)) { notice $gettok($hget(filesend,dialog.invite),1,32) Filesend invite $gettok($hget(filesend,dialog.invite),3,32) $hget(filesend,port.filesend.listen) $hget(filesend,pw.filesend.listen) hdel filesend dialog.invite } } if ($1 == client.close) || ($1 == disconnected) { ; $2 = sockname if (filesend.client !== $2) && (filesend.server.* !iswm $2) { return } var %pos = $hget(filesend,dialog.conlist.name-pos. $+ $2) if (!%pos) { return } fs.dlg.addlog $2 Disconnected at $time(dd-mmm-yyyy) if ($fopen(filesend.log)) { .fclose filesend.log } if ($exists($fs.folder $+ /filesend.log)) { .fopen filesend.log $qt($fs.folder $+ /filesend.log) } else { if (!$exists($fs.folder)) { if (!$makedir($fs.folder)) { .timer 1 0 noop $input($fs.folder is an invalid pathname,o,Filesend) } else { .fopen -n filesend.log $qt($fs.folder $+ /filesend.log) } } else { .fopen -n filesend.log $qt($fs.folder $+ /filesend.log) } } if ($fopen(filesend.log)) { .fseek filesend.log $file($fopen(filesend.log).fname).size .fwrite filesend.log $crlf $crlf var %i = 1 , %max = $iif($hget(filesend.log,0. $+ $2) == $null,0,$v1) while (%i <= %max) { .fwrite -n filesend.log $hget(filesend.log,%i $+ . $+ $2) inc %i } .fclose filesend.log } did -d filesend 3 %pos while (%pos < $hget(filesend,dialog.conlist.len)) { var %curname = $hget(filesend,dialog.conlist.pos-name. $+ $calc(%pos + 1)) hadd filesend dialog.conlist.pos-name. $+ %pos %curname hadd filesend dialog.conlist.name-pos. $+ %curname %pos hadd filesend dialog.conlist.showname. $+ %pos $hget(filesend,dialog.conlist.showname. $+ $calc(%pos + 1)) inc %pos } hdec filesend dialog.conlist.len hdel filesend dialog.conlist.name-pos. $+ $2 hdel filesend dialog.conlist.pos-name. $+ %pos hdel filesend dialog.conlist.showname. $+ %pos if ($hget(filesend,dialog.cur.con) == $2) { hdel filesend dialog.cur.con did -r filesend 111-114,124,131,141-144 did -o filesend 23,24 1 $str(:,30) did -o filesend 25,26 1 0B/s } hdel -w filesend *. $+ $2 hdel -w filesend.log *. $+ $2 } if ($1 == socklisten.close) { var %pos = $hget(filesend,dialog.conlist.name-pos.socklisten) if (!%pos) { return } hadd filesend dialog.conlist.showname. $+ %pos Server did -o filesend 3 %pos Server fs.dlg.addlog socklisten Stopped listening for connections } if ($1 == server.close) { if ($fopen(filesend.log)) { .fclose filesend.log } if ($exists($fs.folder $+ /filesend.log)) { .fopen filesend.log $qt($fs.folder $+ /filesend.log) } else { if (!$exists($fs.folder)) { if (!$makedir($fs.folder)) { .timer 1 0 noop $input($fs.folder is an invalid pathname,o,Filesend) } else { .fopen -n filesend.log $qt($fs.folder $+ /filesend.log) } } else { .fopen -n filesend.log $qt($fs.folder $+ /filesend.log) } } if ($fopen(filesend.log)) { .fseek filesend.log $file($fopen(filesend.log).fname).size } var %pos = 1 , %newpos = 1 , %dpos = 1 while (%pos <= $hget(filesend,dialog.conlist.len)) { var %name = $hget(filesend,dialog.conlist.pos-name. $+ %pos) if (%name == socklisten) || (filesend.server.* iswm %name) { did -d filesend 3 %dpos dec %dpos if ($fopen(filesend.log)) { if (%name == socklisten) { fs.dlg.addlog socklisten Server stopped at $time(dd-mmm-yyyy) } else { fs.dlg.addlog %name Disconnected at $time(dd-mmm-yyyy) } .fwrite filesend.log $crlf $crlf var %i = 1 , %max = $iif($hget(filesend.log,0. $+ %name) == $null,0,$v1) while (%i <= %max) { .fwrite -n filesend.log $hget(filesend.log,%i $+ . $+ %name) inc %i } } hdel filesend dialog.conlist.pos-name. %pos hdel filesend dialog.conlist.name-pos. %name hdel filesend dialog.conlist.showname. %pos if ($hget(filesend,dialog.cur.con) == %name) { hdel filesend dialog.cur.con did -r filesend 111-114,124,131,141-144 did -o filesend 23,24 1 $str(:,30) did -o filesend 25,26 1 0B/s } hdel -w filesend *. $+ %name hdel -w filesend.log *. $+ %name } else { hadd filesend dialog.conlist.pos-name. $+ %newpos %name hadd filesend dialog.conlist.name-pos. $+ %name %newpos hadd filesend dialog.conlist.showname. $+ %newpos $hget(filesend,dialog.conlist.showname. $+ %pos) inc %newpos } inc %dpos inc %pos } if ($fopen(filesend.log)) { .fclose filesend.log } hdel -w filesend *.filesend.server.* hdel -w filesend *.listen hdel -w filesend *.socklisten hdel -w filesend.log *.filesend.server.* hadd filesend dialog.conlist.len $calc(%newpos - 1) } if ($1 == quiting) { ; $2 = sockname fs.dlg.log.disconnect $2 } ;;;;;;; GET LIST ;;;;;;; if ($1 == getlist) { ; $2 = sockname $3 = fileID $4 = size / nr of files / -1 $5- = filename if ($3 == 0) { fs.dlg.addlog $2 Receiving new downloadable files list -- $4 files var %pos = $hget(filesend,dialog.dl.filelist.listlength. $+ $2) while (%pos > 0) { var %id = $+($hget(filesend,$+(dialog.dl.filelist.pos-id.,%pos,.,$2)),.,$2) hadd filesend dialog.dl.filelist.tempstatus. $+ %id $hget(filesend,dialog.dl.filelist.status. $+ %id) dec %pos } hadd filesend dialog.dl.filelist.files. $+ $2 $4 hdel filesend dialog.dl.filelist.listlength. $+ $2 hdel -w filesend dialog.dl.filelist.name.*. $+ $2 hdel -w filesend dialog.dl.filelist.type.*. $+ $2 hdel -w filesend dialog.dl.filelist.size.*. $+ $2 hdel -w filesend dialog.dl.filelist.status.*. $+ $2 hdel -w filesend dialog.dl.filelist.pos-id.*. $+ $2 hdel -w filesend dialog.dl.filelist.id-pos.*. $+ $2 return } hinc filesend dialog.dl.filelist.listlength. $+ $2 var %pos = $hget(filesend,dialog.dl.filelist.listlength. $+ $2) , %id = $+($3,.,$2) , %stat = $iif($hget(filesend,$+(dialog.dl.filelist.tempstatus.,$3,.,$2)) == $null,..,$v1) if ($4 == -1) { var %stat = File missing } elseif (%stat == File missing) && ($4 !== -1) { var %stat = .. } if (%pos <= $hget(filesend,dialog.dl.filelist.files. $+ $2)) { fs.dlg.addlog $2 FileID $3 -- Size $4 bytes -- Name $5- hadd filesend dialog.dl.filelist.name. $+ %id $iif($numtok($5-,46) > 1,$deltok($5-,-1,46),$5-) hadd filesend dialog.dl.filelist.type. $+ %id $iif($numtok($5-,46) > 1,$gettok($5-,-1,46)) hadd filesend dialog.dl.filelist.size. $+ %id $iif($4 !== -1,$4) hadd filesend dialog.dl.filelist.status. $+ %id %stat hadd filesend $+(dialog.dl.filelist.pos-id.,%pos,.,$2) $3 hadd filesend dialog.dl.filelist.id-pos. $+ %id %pos } if (%pos == $hget(filesend,dialog.dl.filelist.files. $+ $2)) { fs.dlg.addlog $2 End of downloadable files list. hdel -w filesend dialog.dl.filelist.tempstatus.*. $+ $2 if ($hget(filesend,dialog.cur.con) == $2) { did -r filesend 111-114 var %i = 1 while (%i <= %pos) { var %id = $+($hget(filesend,dialog.dl.filelist.pos-id. $+ %i $+ . $+ $2),.,$2) did -a filesend 111 $hget(filesend,dialog.dl.filelist.name. $+ %id) did -a filesend 112 $hget(filesend,dialog.dl.filelist.type. $+ %id) did -a filesend 113 $bytes($hget(filesend,dialog.dl.filelist.size. $+ %id),3).suf did -a filesend 114 $hget(filesend,dialog.dl.filelist.status. $+ %id) inc %i } } } } ;;;;;;; ADD REM FILE ;;;;;;; if ($1 == addfile) { ; $2 = fileID $3- = filename var %file = $nopath($3-) hinc filesend dialog.ul.filelist.listlength var %pos = $hget(filesend,dialog.ul.filelist.listlength) hadd filesend dialog.ul.filelist.name. $+ $2 $iif($numtok(%file,46) > 1,$deltok(%file,-1,46),%file) hadd filesend dialog.ul.filelist.type. $+ $2 $iif($numtok(%file,46) > 1,$gettok(%file,-1,46)) hadd filesend dialog.ul.filelist.size. $+ $2 $file($3-).size var %i = $hget(filesend,dialog.conlist.len) while (%i > 0) { hadd filesend $+(dialog.ul.filelist.status.,$2,.,$hget(filesend,dialog.conlist.pos-name. $+ %i)) .. dec %i } hadd filesend dialog.ul.filelist.pos-id. $+ %pos $2 hadd filesend dialog.ul.filelist.id-pos. $+ $2 %pos did -a filesend 121 $hget(filesend,dialog.ul.filelist.name. $+ $2) did -a filesend 122 $hget(filesend,dialog.ul.filelist.type. $+ $2) did -a filesend 123 $bytes($hget(filesend,dialog.ul.filelist.size. $+ $2),3).suf did -a filesend 124 $hget(filesend,$+(dialog.ul.filelist.status.,$2,.,$hget(filesend,dialog.cur.con))) } if ($1 == remfile) { ; $2 = fileID var %pos = $hget(filesend,dialog.ul.filelist.id-pos. $+ $2) did -d filesend 121-124 %pos var %max = $hget(filesend,dialog.ul.filelist.listlength) while (%pos < %max) { var %id = $hget(filesend,dialog.ul.filelist.pos-id. $+ $calc(%pos + 1)) hadd filesend dialog.ul.filelist.id-pos. $+ %id %pos hadd filesend dialog.ul.filelist.pos-id. $+ %pos %id inc %pos } hdel filesend dialog.ul.filelist.name. $+ $2 hdel filesend dialog.ul.filelist.type. $+ $2 hdel filesend dialog.ul.filelist.size. $+ $2 hdel -w filesend dialog.ul.filelist.status. $+ $2 $+ .* hdel filesend dialog.ul.filelist.id-pos. $+ $2 hdel filesend dialog.ul.filelist.pos-id. $+ %max hdec filesend dialog.ul.filelist.listlength } ;;;;;;; GET FILE ;;;;;;; if ($1 == getfile.start) || ($1 == getfile.missing) { ; $2 = sockname $3 = fileID $4 = size $5- = real-filename var %s = $iif($1 == getfile.start,1) if (%s) { hadd filesend dialog.dl.curfile.size. $+ $2 $4 hadd filesend $+(dialog.dled.filelist.folder.,$3,.,$2) $hget(filesend,dl.folder) } hadd filesend $+(dialog.dl.filelist.status.,$3,.,$2) $iif(%s,Downloading,File missing) if ($hget(filesend,dialog.cur.con) == $2) { did -o filesend 23 1 $str(:,30) var %pos = $hget(filesend,$+(dialog.dl.filelist.id-pos.,$3,.,$2)) did $iif($did(filesend,114,%pos).state,-cko,-o) filesend 114 %pos $iif(%s,Downloading,File missing) } fs.dlg.addlog $2 $iif(%s,Starting download of $5- $bytes($4,3).suf,Couldn't start download of $5- (file missing)) } if ($1 == getfile.done) || ($1 == getfile.err) { ; done: $2 = sockname $3 = fileID $4- = filename ; err: $2 = sockname $3 = fileID $4 = retry.nr $5 = max retry.nr $6- = filename if ($1 == getfile.done) { var %fname = $iif($numtok($4-,46) > 1,$deltok($4-,-1,46),$4-) , %type = $iif($numtok($4-,46) > 1,$gettok($4-,-1,46)) } else { var %fname = $iif($numtok($6-,46) > 1,$deltok($6-,-1,46),$6-) , %type = $iif($numtok($6-,46) > 1,$gettok($6-,-1,46)) } var %size = $hget(filesend,dialog.dl.curfile.size. $+ $2) if ($1 == getfile.done) { fs.dlg.addlog $2 Downloaded $4- $bytes(%size,3).suf } elseif ($4 <= $5) { fs.dlg.addlog $2 Downloaded corrupt file: $6- $bytes(%size,3).suf -- Auto retry ( $+ $4 $+ / $+ $5 $+ ) } else { fs.dlg.addlog $2 Downloaded corrupt file: $6- $bytes(%size,3).suf -- No more auto retry } if ($1 == getfile.done) || (($1 == getfile.err) && ($4 > $5)) { var %id = $+($3,.,$2) , %pos = $hget(filesend,dialog.dled.filelist.id-pos. $+ %id) if (%pos) { did -d filesend 141-144 %pos var %max = $hget(filesend,dialog.dled.filelist.listlength. $+ $2) while (%pos < %max) { var %fid = $hget(filesend,$+(dialog.dled.filelist.pos-id.,$calc(%pos + 1),.,$2)) hadd filesend $+(dialog.dled.filelist.id-pos.,%fid,.,$2) %pos hadd filesend $+(dialog.dled.filelist.pos-id.,%pos,.,$2) %fid inc %pos } } else { hinc filesend dialog.dled.filelist.listlength. $+ $2 hadd filesend dialog.dled.filelist.type. $+ %id %type hadd filesend dialog.dled.filelist.size. $+ %id %size } hadd filesend dialog.dled.filelist.name. $+ %id %fname var %pos = $hget(filesend,dialog.dled.filelist.listlength. $+ $2) hadd filesend dialog.dled.filelist.status. $+ %id $iif($1 == getfile.done,Ok,Corrupt) hadd filesend $+(dialog.dled.filelist.pos-id.,%pos,.,$2) $3 hadd filesend dialog.dled.filelist.id-pos. $+ %id %pos if ($hget(filesend,dialog.dl.filelist.id-pos. $+ %id)) { hadd filesend dialog.dl.filelist.status. $+ %id $iif($1 == getfile.done,Done,Failed) if ($hget(filesend,dialog.cur.con) == $2) { var %pos = $hget(filesend,dialog.dl.filelist.id-pos. $+ %id) did $iif($did(filesend,114,%pos).state,-cko,-o) filesend 114 %pos $iif($1 == getfile.done,Done,Failed) } } if ($hget(filesend,dialog.cur.con) == $2) { did -a filesend 141 %fname did -a filesend 142 %type did -a filesend 143 $bytes(%size,3).suf did -a filesend 144 $iif($1 == getfile.done,Ok,Corrupt) } } hdel filesend dialog.dl.curfile.size. $+ $2 } ;;;;;;; SEND FILE ;;;;;;; if ($1 == sendfile.start) || ($1 == sendfile.missing) { ; $2 = sockname $3 = fileID var %s = $iif($1 == sendfile.start,1) if (%s) { hadd filesend dialog.ul.curfile.size. $+ $2 $hget(filesend,dialog.ul.filelist.size. $+ $3) hadd filesend dialog.ul.curfile.id. $+ $2 $3 } hadd filesend $+(dialog.ul.filelist.status.,$3,.,$2) $iif(%s,Uploading,File missing) if ($hget(filesend,dialog.cur.con) == $2) { did -o filesend 24 1 $str(:,30) var %pos = $hget(filesend,dialog.ul.filelist.id-pos. $+ $3) did $iif($did(filesend,124,%pos).state,-cko,-o) filesend 124 %pos $iif(%s,Uploading,File missing) } fs.dlg.addlog $2 $iif(%s,Starting,Couldn't start) upload of $hget(filesend,dialog.ul.filelist.name. $+ $3) $+ $iif($hget(filesend,dialog.ul.filelist.type. $+ $3) !== $null,. $+ $v1) $iif(%s,$bytes($hget(filesend,dialog.ul.filelist.size. $+ $3),3).suf,(file missing)) } if ($1 == sendfile.done) { ; $2 = sockname $3- = path\filename var %fid = $hget(filesend,dialog.ul.curfile.id. $+ $2) , %id = $+(%fid,.,$2) , %file = $nopath($3-) , %size = $hget(filesend,dialog.ul.curfile.size. $+ $2) hdel filesend dialog.ul.curfile.size. $+ $2 hdel filesend dialog.ul.curfile.id. $+ $2 fs.dlg.addlog $2 Done uploading of $3- $bytes(%size,3).suf hinc filesend dialog.uled.filelist.listlength. $+ $2 if ($hget(filesend,dialog.ul.filelist.id-pos. $+ %fid)) { hadd filesend dialog.ul.filelist.status. $+ %id Done if ($hget(filesend,dialog.cur.con) == $2) { var %pos = $hget(filesend,dialog.ul.filelist.id-pos. $+ %fid) did $iif($did(filesend,124,%pos).state,-cko,-o) filesend 124 %pos Done } } } ;;;;;;; QUEUE ;;;;;;; if ($1 == queue) { ; $2 = sockname $3 = status (idle/requesting/listing/sending) $4- = queue var %i = 1 , %max = $numtok($4-,44) , %items = 0 , %sf.first if ($hget(filesend,dialog.cur.con) == $2) { did -r filesend 131 } while (%i <= %max) { var %it = $gettok($4-,%i,44) if ($gettok(%it,1,32) == sl) { var %it = Send list of shared files } elseif ($gettok(%it,1,32) == rl) { var %it = Request list of downloadable files } elseif ($gettok(%it,1,32) == rf) { var %id = $+($gettok(%it,2,32),.,$2) if ($3 !== requesting) || (%i > 1) { var %it = Request file $hget(filesend,dialog.dl.filelist.name. $+ %id) $+ $iif($hget(filesend,dialog.dl.filelist.type. $+ %id) !== $null,. $+ $v1) hadd filesend dialog.dl.filelist.status. $+ %id Queued if ($hget(filesend,dialog.cur.con) == $2) { var %pos = $hget(filesend,dialog.dl.filelist.id-pos. $+ %id) did $iif($did(filesend,114,%pos).state,-cko,-o) filesend 114 %pos Queued } } else { var %it } } elseif ($gettok(%it,1,32) == sf) { var %id = $gettok(%it,2,32) if (%sf.first == done) || ($3 !== sending) { var %it = Send file $hget(filesend,dialog.ul.filelist.name. $+ %id) $+ $iif($hget(filesend,dialog.ul.filelist.type. $+ %id) !== $null,. $+ $v1) hadd filesend $+(dialog.ul.filelist.status.,%id,.,$2) Queued if ($hget(filesend,dialog.cur.con) == $2) { var %pos = $hget(filesend,dialog.ul.filelist.id-pos. $+ %id) did $iif($did(filesend,124,%pos).state,-cko,-o) filesend 124 %pos Queued } } else { var %it , %sf.first = done } } if (%it !== $null) { inc %items hadd filesend $+(dialog.queue.,%items,.,$2) %it if ($hget(filesend,dialog.cur.con) == $2) { did -a filesend 131 %it } } inc %i } hadd filesend dialog.queue.0. $+ $2 %items } if ($1 == requestedfile) { ; $2 = sockname $3 = fileID var %id = $+($3,.,$2) hadd filesend dialog.dl.filelist.status. $+ %id Requested if ($hget(filesend,dialog.cur.con) == $2) { var %pos = $hget(filesend,dialog.dl.filelist.id-pos. $+ %id) did $iif($did(filesend,114,%pos).state,-cko,-o) filesend 114 %pos Requested } fs.dlg.addlog $2 Requested file $hget(filesend,dialog.dl.filelist.name. $+ %id) $+ $iif($hget(filesend,dialog.dl.filelist.type. $+ %id) !== $null,. $+ $v1) } if ($1 == requestedlist) { ; $2 = sockname fs.dlg.addlog $2 Requested downloadable files list } if ($1 == sendlist) { ; $2 = sockname fs.dlg.addlog $2 Sending list of shared files } ;;;;;;; ERRORS ;;;;;;; if ($1 == error) { if ($2 == sock.notfree) { ; $3 = sockname fs.dlg.adderrlog $gettok($3,2,46) unable open connection: sockname $3 is in use. } elseif ($2 == dl.path) { ; $3 = sockname $4- = dl path fs.dlg.adderrlog $gettok($3,2,46) invalid folder: $4- } elseif ($2 == port.notfree) { ; $3 = sockname $4 = port $5 = port.retry.cur $6 = retry.port if ($5 <= $6) { fs.dlg.adderrlog $gettok($3,2,46) Port $4 is not free. Autoretry ( $+ $5 $+ / $+ $6 $+ ) in $calc($5 * 10) seconds. } else { fs.dlg.adderrlog $gettok($3,2,46) Port $4 is not free. No more autoretry. } } elseif ($2 == sockopen) { ; $3 = sockname $4- = sock error message fs.dlg.adderrlog $gettok($3,2,46) unable to connect ( $+ $4- $+ ) } elseif ($2 == reconnect) { ; $3 = sockname $4 = sockerr.nr $5 = retry.con.client fs.dlg.adderrlog $gettok($3,2,46) reconnecting ( $+ $4 $+ / $+ $5 $+ ) } elseif ($2 == change.flist) { noop $input(You can't change the shared file list at this moment $+ $chr(44) try again later.,ou,Filesend) } elseif ($2 == addfile) { ; $3- = filename fs.dlg.adderrlog Error can't add file $qt($3-) it doesn't exist, or contains double spaces. } else { ; $2 = sockname fs.dlg.adderrlog $gettok($3,2,46) error } } } ; $1 = sockname $2 = fileID $3 = bytesleft $4 = bytes read on *:SIGNAL:filesend.getfile:{ if ($hget(filesend,dialog.dl.speed. $+ $1) == $null) { .timer $+ filesend.dl. $+ $1 -o 1 2 fs.dlg.dl.speed $1 } hinc filesend dialog.dl.speed. $+ $1 $4 if ($hget(filesend,dialog.cur.con) !== $1) { return } var %n = $int($calc(30 * $3 / $hget(filesend,dialog.dl.curfile.size. $+ $1))) did -o filesend 23 1 $str(|,$calc(30 - %n)) $+ $str(:,%n) } ; $1 = sockname $2 = pos (total bytes read) $3 = bytes sent on *:SIGNAL:filesend.sendfile:{ if ($hget(filesend,dialog.ul.speed. $+ $1) == $null) { .timer $+ filesend.ul. $+ $1 -o 1 2 fs.dlg.ul.speed $1 } hinc filesend dialog.ul.speed. $+ $1 $3 if ($hget(filesend,dialog.cur.con) !== $1) { return } var %n = $int($calc(30 * $2 / $hget(filesend,dialog.ul.curfile.size. $+ $1))) did -o filesend 24 1 $str(|,%n) $+ $str(:,$calc(30 - %n)) } ; $1 = sockname alias -l fs.dlg.dl.speed { if (!$hget(filesend)) { return } var %dl = $hget(filesend,dialog.dl.speed. $+ $1) hadd filesend dialog.dl.lastspeed. $+ $1 $iif(%dl,$v1,0) if (%dl) { if ($hget(filesend,dialog.cur.con) == $1) { did -o filesend 25 1 $bytes($calc(%dl / 2),3).suf $+ /s } hadd filesend dialog.dl.speed. $+ $1 0 .timer $+ filesend.dl. $+ $1 -o 1 2 fs.dlg.dl.speed $1 } elseif (%dl == 0) { if ($hget(filesend,dialog.cur.con) == $1) { did -o filesend 25 1 0B/s } hdel filesend dialog.dl.speed. $+ $1 } } ; $1 = sockname alias -l fs.dlg.ul.speed { if (!$hget(filesend)) { return } var %ul = $hget(filesend,dialog.ul.speed. $+ $1) hadd filesend dialog.ul.lastspeed. $+ $1 $iif(%ul,$v1,0) if (%ul) { if ($hget(filesend,dialog.cur.con) == $1) { did -o filesend 26 1 $bytes($calc(%ul / 2),3).suf $+ /s } hadd filesend dialog.ul.speed. $+ $1 0 .timer $+ filesend.ul. $+ $1 -o 1 2 fs.dlg.ul.speed $1 } elseif (%ul == 0) { if ($hget(filesend,dialog.cur.con) == $1) { did -o filesend 26 1 0B/s } hdel filesend dialog.ul.speed. $+ $1 } } alias -l fs.dlg.version { return v1.100 } on *:LOAD:{ if ($toolbar(filesend)) { toolbar -d filesend } if ($readini($fs.settings.file,settings,menus) !== 0) { writeini $qt($fs.settings.file) settings menus 1 if ($exists($fs.icon.file)) { fs.dlg.toolbar } } if ($filesend.version == $null) { noop $input(To run filesend you need to load filesend.mrc first,wo,Filesend) | return } if ($filesend.version !=== $fs.dlg.version) { noop $input(Filesend version ( $+ $filesend.version $+ ) differs from Filesend dialog version ( $+ $fs.dlg.version $+ ),ow,filesend) | return } if ($input(Welcome to filesend $filesend.version $crlf $+ Would you like to set up filesend now?,yk60,Filesend)) { filesend settings } } on *:UNLOAD:{ if ($toolbar(filesend)) { toolbar -d filesend } } on *:START:{ if ($readini($fs.settings.file,settings,menus)) && (!$toolbar(filesend)) && ($exists($fs.icon.file)) { fs.dlg.toolbar } } alias -l fs.dlg.toolbar { toolbar -az1 filesend Filesend $qt($fs.icon.file) /filesend @filesend } MENU @filesend { Start filesend { filesend } Settings { if ($dialog(filesend)) { did -f filesend 106 | did -h filesend 91-96 | did -h filesend 14 | did -tvo filesend 15 1 Apply } | else { filesend settings } } Start server { if ($dialog(filesend)) { fs.dlg.server } | else { filesend server } } } MENU nicklist { $iif($readini($fs.settings.file,settings,menus) && ($status == connected) && ($1),Filesend) . $+ $iif($readini($fs.settings.file,settings,menus),version) { ctcp $1 Filesend version } . $+ $iif($readini($fs.settings.file,settings,menus),invite) { fs.dlg.invite $1 $cid } } alias -l fs.dlg.invite { ; $1 = nick $2 = cid var %ip = $nocontrol($iif($hget(filesend.set),$hget(filesend.set,server.ip),$readini($fs.settings.file,settings,server.ip))) if (%ip == $null) || (%ip == fill_in_your_own_address) { if ($dialog(filesend)) { dialog -v filesend } var %ip = $nocontrol($input(Enter your own address/ip,$iif($dialog(filesend),eou,eo),filesend)) if (%ip == $null) { noop $input(Invalid address,$iif($dialog(filesend),owu,ow),filesend) | return } writeini $qt($fs.settings.file) settings server.ip %ip if ($dialog(filesend)) { did -o filesend 646 1 %ip } if ($hget(filesend.set)) { hadd filesend.set server.ip %ip } } if ($sock(filesend.listen)) && ($hget(filesend,dialog.conlist.name-pos.socklisten)) { notice $1 Filesend invite %ip $hget(filesend,port.filesend.listen) $hget(filesend,pw.filesend.listen) return } if ($dialog(filesend)) { fs.dlg.server } else { filesend server } hadd filesend dialog.invite $1 $2 %ip } on *:KICK:#:{ tokenize 32 $hget(filesend,dialog.invite) if ($cid == $2) && (($knick == $1) || ($knick == $me)) && (!$comchan($1,2)) { hdel filesend dialog.invite } } on *:PART:#:{ tokenize 32 $hget(filesend,dialog.invite) if ($cid == $2) && (($nick == $1) || ($nick == $me)) && (!$comchan($1,2)) { hdel filesend dialog.invite } } on *:QUIT:{ tokenize 32 $hget(filesend,dialog.invite) if ($cid == $2) && ($nick == $1) && ($hget(filesend)) { hdel filesend dialog.invite } } on *:NICK:{ tokenize 32 $hget(filesend,dialog.invite) if ($cid == $2) && ($nick == $1) { hadd filesend dialog.invite $newnick $2- } } on *:DISCONNECT:{ if ($cid == $gettok($hget(filesend,dialog.invite),2,32)) { hdel filesend dialog.invite } } on *:NOTICE:Filesend invite & & &:?:{ if (!$dialog(fs.invited)) { dialog -m fs.invited fs.invited did -o fs.invited 1 1 $nick invites you to connect to his server. did -o fs.invited 2 1 Address: $3 did -o fs.invited 3 1 Port: $4 did -oh fs.invited 7 1 $5 } } dialog -l fs.invited { title "Filesend" icon $fs.icon.file ,0 size -1 -1 150 58 option dbu text " invites you to connect to his server.", 1, 5 5 140 8 text "Address:", 2, 5 12 140 8 ,nowrap text "Port:", 3, 5 19 140 8 text "Do you want to connect now?", 4, 5 26 140 8 button "Yes", 5, 35 41 35 12 button "No", 6, 80 41 35 12 text "" , 7, 0 50 1 1 } on *:DIALOG:fs.invited:sclick:6:{ dialog -x $dname } on *:DIALOG:fs.invited:sclick:5:{ if ($dialog(filesend)) { fs.dlg.invited $gettok($did(2),2,32) $gettok($did(3),2,32) $did(7) } else { filesend connect $gettok($did(2),2,32) $gettok($did(3),2,32) $did(7) } dialog -x $dname }