Filesend — File Browser
Filesendv1.100 / Filesendv1.100 / filesend.dialog.mrc
filesend.dialog.mrc — 100.68 KB — Download this file
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 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
}