;/********************************************************************** ; * ; * aIRC ; * FTP Client file 2 ; * ; **********************************************************************/ ; dialog _ftpclient { size -1 -1 %~ftpw %~ftph title "aIRC FTP Client" option dbu list 1000,1 1 319 12,size ; box "",1001,159 12 1 178 combo 1010,1 15 158 200,drop edit ; visible list list 1011,1 25 158 100,size extsel ; statusbar1 list 1012,1 125 156 8,size ; statusbar2 list 1013,1 133 156 8,size hide ; 1=currentdir 2=filter 3=totalbytes 4=sortflags 5=totalfiles list 1014,1 133 156 8,size hide ; dirs list 1015,1 133 156 8,size hide sort ; files list 1016,1 133 156 8,size hide combo 1020,161 15 158 200,drop edit list 1021,161 25 158 100,size extsel list 1022,162 125 156 8,size list 1023,162 133 156 8,size hide list 1024,162 133 156 8,size hide list 1025,162 133 156 8,size hide sort list 1026,162 133 156 8,size hide list 1030,1 136 158 57,size edit "",1040,161 136 158 57,autohs multi read vsbar hsbar ; menu "FTP",2700 ; item "blah",2701 button "ok",2990,-20 -20 1 1,ok hide button "cancel",2991,-20 -20 1 1,cancel hide list 2992,1 194 319 12,size button "MDX Positioner",2993,10 10 10 10,hide ; 1= server ; 2= login ; 3= password ; 4= /dir/file (initial) ; 5= LFTP sockname ; 6= action after PORT|PASV [LIST...|RETR...|STOR...] ; 7= useless ; 8= PORT after SIZE ; 9= anonymous ; 10= new filename ; 11= server supports RETR (resuming) ; 12= server supports SIZE (get filesize) ; 13= logged=0 ; 14= currlist ; 15= refresh dirs after actions... ; 16= last listed directory ; 17= Waiting PWD reply for LIST ; 18= transfering queue list 2994,999 999 999 999,hide ; oldqueue: list 2250,1 136 156 57,size hide ; remote directory: list 2251,999 999 999 999,hide } ON *:DIALOG:ftp*:sclick:2993:{ if ($istok(size minimize maximize restore,$gettok($did($dname,$did),1,32),32)) { .timer $+ $dname $+ _resizedialog -mo 1 50 _ftp.resizedialog $dname ;;; _ftp.resizedialog $dname } } alias _ftp.resizedialog { var %dname = $1 if ($dialog(%dname) == $null) { return } var %dw = $dialog(%dname).cw,%dh = $dialog(%dname).ch,%width = $calc((%dw - 2 * $dbuw ^ 2) / 2),%wwidth = %dw - 1 * $dbuw ^ 2,%row5 = $calc(%dh - 6 * $dbuh ^ 2),%col2 = $calc(2 + %dw / 2),%height2 = %dh / 2,%row3 = $calc(%height2 + 25 * $dbuh),%row4 = $calc(%row3 + 9 * $dbuh),%height4 = %row5 - %row4 _mdx.MoveControl %dname 1010 * * %width * _mdx.MoveControl %dname 1020 %col2 * %width * _mdx.MoveControl %dname 1011 * * %width %height2 _mdx.MoveControl %dname 1021 %col2 * %width %height2 _mdx.MoveControl %dname 1012 * %row3 %width * _mdx.MoveControl %dname 1022 %col2 %row3 %width * _mdx.MoveControl %dname 1030 * %row4 %width %height4 _mdx.MoveControl %dname 2250 * %row4 %width %height4 _mdx.MoveControl %dname 1040 %col2 %row4 %width %height4 _mdx.MoveControl %dname 1000 * * %wwidth * _mdx.MoveControl %dname 2992 * %row5 %wwidth * } ON *:DIALOG:ftp*:init:0:{ _mdx.init $_icofile(ftp.ico,$scriptdir) title border sysmenu minbox _mdx.SetControlMDX dialog.mdx $dname 2993 positioner maxbox minbox size _mdx.SetControlMDX bars.mdx $dname 2992 StatusBar _mdx.SetControlMDX bars.mdx $dname 1012 StatusBar _mdx.SetControlMDX bars.mdx $dname 1022 StatusBar _mdx.SetBorderStyle $dname 1012 _mdx.SetBorderStyle $dname 1022 _mdx.SetControlMDX bars.mdx $dname 1000 ToolBar arrows flat wrap noresize list _mdx.SetBorderStyle $dname 1000 _mdx.SetBorderStyle $dname 1010 _mdx.SetBorderStyle $dname 1020 _mdx.SetBorderStyle $dname 1011 border _mdx.SetBorderStyle $dname 1021 border _mdx.SetBorderStyle $dname 1030 border _mdx.SetBorderStyle $dname 1040 border did -o $dname 1014,1024 1 $null did -o $dname 1014,1024 2 $null did -o $dname 1014,1024 3 0 did -o $dname 1014,1024 4 te did -o $dname 1014,1024 5 0 var %9+0 = $chr(9) $+ +l 0,%9r0 = $chr(9) $+ +r 0 _mdx.SetControlMDX views.mdx $dname 1011 ListView report rowselect showsel nosortheader autoarrange did -i $dname 1011 1 header $_mdx.fixtablengths(80,40) + 0 Name $+ %9r0 Size _mdx.SetControlMDX views.mdx $dname 1021 ListView report rowselect showsel nosortheader autoarrange did -i $dname 1021 1 header $_mdx.fixtablengths(80,40,54,36,36,36,36) + 0 Name $+ %9r0 Size $+ %9+0 Date $+ %9+0 Attrib $+ %9+0 Owner $+ %9+0 Group $+ %9+0 Comment _mdx.SetControlMDX views.mdx $dname 1030 ListView report rowselect showsel nosortheader autoarrange did -i $dname 1030 1 header $_mdx.fixtablengths(80,80,36,150) + 0 From $+ %9+0 Target $+ %9r0 Size $+ %9+0 Server did -i $dname 1011,1021 1 seticon 0 $_icofile(cdup.ico) did -i $dname 1011,1021 1 seticon 0 $_icofile(folder.ico) did -i $dname 1011,1021 1 seticon 0 $_icofile(file.ico) did -i $dname 1011,1021 1 seticon 0 $_icofile(drivefloppy.ico) did -i $dname 1011,1021 1 seticon 0 $_icofile(drivehard.ico) did -i $dname 1011,1021 1 seticon 0 $_icofile(drivecd.ico) did -i $dname 1000 1 bmpsize 16 16 did -i $dname 1000 1 setimage 0 icon small 3, $+ $mircexe did -i $dname 1000 1 setimage 0 icon small 4, $+ $mircexe did -i $dname 1000 1 setimage 0 icon small $_icofile(stop.ico) did -i $dname 1000 1 setimage 0 icon small 9, $+ $mircexe did -i $dname 1000 1 setimage 0 icon small 7, $+ $mircexe did -i $dname 1000 1 setimage 0 icon small 8, $+ $mircexe did -i $dname 1000 1 setimage 0 icon small $_icofile(dtwindow_Trffc10a.ico) did -i $dname 1000 1 setimage 0 icon small $_icofile(folder.ico) did -i $dname 1000 1 setimage 0 icon small $_icofile(rename.ico) did -i $dname 1000 1 setimage 0 icon small $_icofile(remove.ico) var %atb = did -a $dname 1000 %atb +a 1 Connect $+ $chr(9) $+ Connect to a FTP Server %atb - %atb +a 3 Stop $+ $chr(9) $+ Stop Current Operation %atb - %atb +a 4 Refresh $+ $chr(9) $+ Refresh Folder %atb - %atb +a 5 Send $+ $chr(9) $+ Add File or Folder to the Send Queue %atb +a 6 Receive $+ $chr(9) $+ Add File or Folder to the Get Queue %atb +a 7 Start $+ $chr(9) $+ Transfer Files in Queue %atb - %atb +a 8 New Folder $+ $chr(9) $+ Create New Folder %atb +a 9 Rename $+ $chr(9) $+ Rename File or Folder %atb +a 10 Delete $+ $chr(9) $+ Delete File or Folder did -i $dname 1030 1 seticon 0 7, $+ $mircexe did -i $dname 1030 1 seticon 0 8, $+ $mircexe _mdx.SetFont $dname 1000,1010,1011,1012,1020,1021,1022,1030,1040 + 13 400 Tahoma did -i $dname 1012,1022 1 separts -1 did -i $dname 1012,1022 2 +p 0 Waiting... _ftp.reflocal $dname $getdir _ftp.resizedialog $dname did -f $dname 1011 } ON *:DIALOG:ftp*:sclick:2990:{ var %text1 = $did($dname,1010).text,%text2 = $did($dname,1020).text if (%text1 != $null) && (%text1 != $did($dname,1014,1)) { _ftp.reflocal $dname %text1 } if (%text2 != $null) && (%text2 != $did($dname,1024,1)) { _ftp.com $dname CWD %text2 } halt } ON *:DIALOG:ftp*:sclick:1000:{ var %button = $did($dname,1000).sel,%remote = 0,%lor = local,%com if ($istok(4 8 9 10,%button,32)) || ($did($dname,2994,14) == 1021) { var %remote = 1,%lor = remote } if (%button != 2) && (%remote) && ($_ftp.remote.disconnected) { return } if (%button == 2) { if ($gettok($gettok($did($dname,1000,2),1,9),3,32) == connect) { var %string if ($did($dname,2994,9)) { %string = ftp:// } else { %string = ftp:// $+ $did($dname,2994,2) $+ @ $+ $did($dname,2994,3) $+ : } %string = %string $+ $did($dname,2994,1) $+ $did($dname,1024,1) ftp %string _ftp.addlog.info $dname Connecting to $did($dname,2994,1) } else { _ftp.disconnect $dname } } elseif (%button == 4) { %com = _ftp.com $dname ABOR sockclose ? $+ $dname _dialog-x T $+ $dname did -o $dname 2994 18 0 } elseif (%button == 6) { %com = _ftp. $+ %lor $+ .refresh } elseif (%button == 8) { _ftp.local.transfer } elseif (%button == 9) { _ftp.remote.transfer } elseif (%button == 10) { _ftp.queue.start } elseif (%button == 12) { %com = _ftp. $+ %lor $+ .mkdir } elseif (%button == 13) { %com = _ftp. $+ %lor $+ .ren } elseif (%button == 14) { %com = _ftp. $+ %lor $+ .del } if (%com != $null) { %com } } ON *:DIALOG:ftp*:sclick:1010:{ if ($did($dname,1010,$did($dname,1010,1).sel) != $did($dname,1014,1)) { _ftp.reflocal $dname $ifmatch } } ON *:DIALOG:ftp*:sclick:1020:{ if ($did($dname,1020,$did($dname,1020,1).sel) != $did($dname,1024,1)) { _ftp.com $dname CWD $ifmatch } } ON *:DIALOG:ftp*:sclick:1011:{ var %d = $dname,%header = $did(%d,1011,1),%lastevent = $gettok(%header,1,32) if ($did(%d,2994,14) != 1011) { did -i %d 1012 1 setbkcolor 65535 did -i %d 1022 1 setbkcolor $rgb(face) did -o %d 2994 14 1011 } if (%lastevent == rclick) { var %menu1 = FTPLOCALDIR,%menu2 = %menu1 $+ arrangeicons,%menu3 = %menu1 $+ viewmodes,%result,%sflags = $did(%d,1014,4) _popupdll.New %menu2 16 16 _popupdll.AddItem %menu2 end $iif(n isin %sflags,+xr,+) 0 0 by &name $cr _ftp.localsortfiltertoggle %d n _popupdll.AddItem %menu2 end $iif(s isin %sflags,+xr,+) 0 0 by &size $cr _ftp.localsortfiltertoggle %d s _popupdll.AddItem %menu2 end $iif(t isin %sflags,+xr,+) 0 0 by &type $cr _ftp.localsortfiltertoggle %d t _popupdll.AddItem %menu2 end _popupdll.AddItem %menu2 end $iif(d !isin %sflags,+xr,+) 0 0 &ascending $cr _ftp.localsortfiltertoggle %d -d _popupdll.AddItem %menu2 end $iif(d isin %sflags,+xr,+) 0 0 &descending $cr _ftp.localsortfiltertoggle %d +d _popupdll.New %menu3 16 16 _popupdll.AddItem %menu3 end $iif(b isin %sflags,+xr,+) 0 0 &large icons $cr _ftp.localsortfiltertoggle %d b _popupdll.AddItem %menu3 end $iif(i isin %sflags,+xr,+) 0 0 &small icons $cr _ftp.localsortfiltertoggle %d i _popupdll.AddItem %menu3 end $iif(l isin %sflags,+xr,+) 0 0 &list $cr _ftp.localsortfiltertoggle %d l _popupdll.AddItem %menu3 end $iif(e isin %sflags,+xr,+) 0 0 &details $cr _ftp.localsortfiltertoggle %d e _popupdll.New %menu1 8 8 _popupdll.AddItem %menu1 end +D 0 0 &transfer $cr _ftp.local.transfer _popupdll.AddItem %menu1 end + 0 0 &queue $cr _ftp.local.queue _popupdll.AddItem %menu1 end _popupdll.AddItem %menu1 end + 0 0 de&lete $cr _ftp.local.del _popupdll.AddItem %menu1 end + 0 0 re&name $cr _ftp.local.ren _popupdll.AddItem %menu1 end +> 0 0 arran&ge $cr %menu2 _popupdll.AddItem %menu1 end +> 0 0 &view $cr %menu3 _popupdll.AddItem %menu1 end _popupdll.AddItem %menu1 end + 0 0 make &dir $cr _ftp.local.mkdir _popupdll.AddItem %menu1 end + 0 0 &change dir $cr _ftp.local.chdir _popupdll.AddItem %menu1 end + 0 0 cd&up $cr _ftp.local.cdup _popupdll.AddItem %menu1 end _popupdll.AddItem %menu1 end + 0 0 &refresh $cr _ftp.local.refresh _popupdll.Popup %menu1 + $mouse.dx $mouse.dy %result = $result _popupdll.Destroy %menu1 _popupdll.Destroy %menu2 _popupdll.Destroy %menu3 if ($gettok(%result,1,32) == OK) && ($gettok(%result,4-,32) != $null) { $ifmatch } } if ($istok(item sclick,%lastevent,32)) { .timer $+ $dname $+ _ $+ $devent $+ $sclick -mo 1 50 _ftp.dirstatus %d 1012 1011 1015 1016 1014 } } ON *:DIALOG:ftp*:sclick:1021:{ var %d = $dname,%header = $did(%d,1021,1),%lastevent = $gettok(%header,1,32) if ($did(%d,2994,14) != 1021) { did -i %d 1012 1 setbkcolor $rgb(face) did -i %d 1022 1 setbkcolor 65535 did -o %d 2994 14 1021 } if (%lastevent == rclick) { var %menu1 = FTPLOCALDIR,%menu2 = %menu1 $+ arrangeicons,%menu3 = %menu1 $+ viewmodes,%result,%sflags = $did(%d,1024,4) _popupdll.New %menu2 16 16 _popupdll.AddItem %menu2 end $iif(n isin %sflags,+xr,+) 0 0 by &name $cr _ftp.remotesortfiltertoggle %d n _popupdll.AddItem %menu2 end $iif(s isin %sflags,+xr,+) 0 0 by &size $cr _ftp.remotesortfiltertoggle %d s _popupdll.AddItem %menu2 end $iif(t isin %sflags,+xr,+) 0 0 by &type $cr _ftp.remotesortfiltertoggle %d t _popupdll.AddItem %menu2 end $iif(m isin %sflags,+xr,+) 0 0 by &date $cr _ftp.remotesortfiltertoggle %d m _popupdll.AddItem %menu2 end $iif(a isin %sflags,+xr,+) 0 0 by &attrib $cr _ftp.remotesortfiltertoggle %d a _popupdll.AddItem %menu2 end $iif(o isin %sflags,+xr,+) 0 0 by &owner $cr _ftp.remotesortfiltertoggle %d o _popupdll.AddItem %menu2 end $iif(g isin %sflags,+xr,+) 0 0 by &group $cr _ftp.remotesortfiltertoggle %d g _popupdll.AddItem %menu2 end $iif(c isin %sflags,+xr,+) 0 0 by &comment $cr _ftp.remotesortfiltertoggle %d c _popupdll.AddItem %menu2 end _popupdll.AddItem %menu2 end $iif(d !isin %sflags,+xr,+) 0 0 &ascending $cr _ftp.remotesortfiltertoggle %d -d _popupdll.AddItem %menu2 end $iif(d isin %sflags,+xr,+) 0 0 &descending $cr _ftp.remotesortfiltertoggle %d +d _popupdll.New %menu3 16 16 _popupdll.AddItem %menu3 end $iif(b isin %sflags,+xr,+) 0 0 &large icons $cr _ftp.remotesortfiltertoggle %d b _popupdll.AddItem %menu3 end $iif(i isin %sflags,+xr,+) 0 0 &small icons $cr _ftp.remotesortfiltertoggle %d i _popupdll.AddItem %menu3 end $iif(l isin %sflags,+xr,+) 0 0 &list $cr _ftp.remotesortfiltertoggle %d l _popupdll.AddItem %menu3 end $iif(e isin %sflags,+xr,+) 0 0 &details $cr _ftp.remotesortfiltertoggle %d e _popupdll.New %menu1 8 8 _popupdll.AddItem %menu1 end +D 0 0 &transfer $cr _ftp.remote.transfer _popupdll.AddItem %menu1 end + 0 0 &queue $cr _ftp.remote.queue _popupdll.AddItem %menu1 end _popupdll.AddItem %menu1 end + 0 0 de&lete $cr _ftp.remote.del _popupdll.AddItem %menu1 end + 0 0 re&n/move $cr _ftp.remote.ren _popupdll.AddItem %menu1 end + 0 0 copy &url $cr _ftp.remote.copyurl _popupdll.AddItem %menu1 end +d 0 0 chm&od $cr _ftp.remote.chmod _popupdll.AddItem %menu1 end + 0 0 "e $cr _ftp.remote.quote _popupdll.AddItem %menu1 end +> 0 0 arran&ge $cr %menu2 _popupdll.AddItem %menu1 end +> 0 0 &view $cr %menu3 _popupdll.AddItem %menu1 end _popupdll.AddItem %menu1 end + 0 0 make &dir $cr _ftp.remote.mkdir _popupdll.AddItem %menu1 end + 0 0 &change dir $cr _ftp.remote.chdir _popupdll.AddItem %menu1 end + 0 0 cd&up $cr _ftp.remote.cdup _popupdll.AddItem %menu1 end _popupdll.AddItem %menu1 end + 0 0 &refresh $cr _ftp.remote.refresh _popupdll.Popup %menu1 + $mouse.dx $mouse.dy %result = $result _popupdll.Destroy %menu1 _popupdll.Destroy %menu2 _popupdll.Destroy %menu3 if ($gettok(%result,1,32) == OK) && ($gettok(%result,4-,32) != $null) { $ifmatch } } if ($istok(item sclick,%lastevent,32)) { .timer $+ $dname $+ _ $+ $devent $+ $sclick -mo 1 50 _ftp.dirstatus %d 1022 1021 1025 1026 1024 } } ON *:DIALOG:ftp*:sclick:1030:{ var %d = $dname,%lastevent = $gettok($did(%d,1030,1),1,32) if (%lastevent == rclick) { var %menu1 = FTPQUEUE,%menu2 = %menu1 $+ remove,%menu3 = %menu1 $+ move,%result,%sflags = $did(%d,1014,4) _popupdll.New %menu2 16 16 _popupdll.AddItem %menu2 end + 0 0 &selected $cr _ftp.queuelist.del.sel %d _popupdll.AddItem %menu2 end _popupdll.AddItem %menu2 end + 0 0 &uploads $cr _ftp.queuelist.del.downupl %d 0 _popupdll.AddItem %menu2 end + 0 0 &downloads $cr _ftp.queuelist.del.downupl %d 1 _popupdll.AddItem %menu2 end _popupdll.AddItem %menu2 end + 0 0 &all $cr _ftp.queuelist.del.all %d _popupdll.New %menu3 16 16 _popupdll.AddItem %menu3 end + 0 0 &up $cr _ftp.queuelist.move.up %d _popupdll.AddItem %menu3 end + 0 0 &down $cr _ftp.queuelist.move.down %d _popupdll.AddItem %menu3 end + 0 0 to &top $cr _ftp.queuelist.move.top %d _popupdll.AddItem %menu3 end + 0 0 to &bottom $cr _ftp.queuelist.move.bottom %d _popupdll.AddItem %menu3 end _popupdll.AddItem %menu3 end + 0 0 &uploads to top $cr _ftp.queuelist.move.downupl %d 0 _popupdll.AddItem %menu3 end + 0 0 &downloads to top $cr _ftp.queuelist.move.downupl %d 1 _popupdll.New %menu1 8 8 _popupdll.AddItem %menu1 end +D 0 0 &transfer $cr _ftp.queue.start %d _popupdll.AddItem %menu1 end +> 0 0 &delete $cr %menu2 _popupdll.AddItem %menu1 end +> 0 0 &move $cr %menu3 _popupdll.AddItem %menu1 end _popupdll.AddItem %menu1 end + 0 0 queue &info $cr _ftp.queuelist.info %d _popupdll.AddItem %menu1 end + 0 0 &load queue $cr _ftp.queuelist.load %d _popupdll.AddItem %menu1 end + 0 0 &save queue $cr _ftp.queuelist.save %d _popupdll.Popup %menu1 + $mouse.dx $mouse.dy %result = $result _popupdll.Destroy %menu1 _popupdll.Destroy %menu2 _popupdll.Destroy %menu3 if ($gettok(%result,1,32) == OK) && ($gettok(%result,4-,32) != $null) { $ifmatch } } } ON *:DIALOG:ftp*:sclick:2991:{ if ($sock($dname)) { info.a Closing FTP session $remove($dname,FTP) } showmirc -s _ftp.disconnect $dname } alias -l _ftp.localsortfiltertoggle { var %d = $1,%old = $did(%d,1014,4) if ($istok(n s t,$2,32)) { if ($remove(%old,n,s,t) != $null) { did -o %d 1014 4 $ifmatch $+ $2 } else { did -o %d 1014 4 $2 } } elseif ($istok(b i l e,$2,32)) { if ($remove(%old,b,i,l,e) != $null) { did -o %d 1014 4 $ifmatch $+ $2 } else { did -o %d 1014 4 $2 } } else { %old = $remove(%old,d) if (+d isin $2) { %old = %old $+ d } did -o %d 1014 4 %old } _ftp._reflocal.ref %d } alias -l _ftp.remotesortfiltertoggle { var %d = $1,%old = $did(%d,1024,4) if ($istok(n s t m a o g c,$2,32)) { if ($remove(%old,n,s,t,m,a,o,g,c) != $null) { did -o %d 1024 4 $ifmatch $+ $2 } else { did -o %d 1024 4 $2 } } elseif ($istok(b i l e,$2,32)) { if ($remove(%old,b,i,l,e) != $null) { did -o %d 1024 4 $ifmatch $+ $2 } else { did -o %d 1024 4 $2 } } else { %old = $remove(%old,d) if (+d isin $2) { %old = %old $+ d } did -o %d 1024 4 %old } _ftp._refremote.ref %d } ON *:DIALOG:ftp*:dclick:1011:{ var %d = $dname,%line = $did(%d,$did,$did(%d,$did,1).sel),%oldpath = $did(%d,1014,1),%path = %oldpath,%icon = $gettok(%line,2,32),%name = $gettok($gettok(%line,1,9),3-,32) if (%icon == 1) { %path = $deltok(%path,-1,92) } elseif (%icon == 2) { %path = %oldpath $+ %name $+ \ } elseif (%icon == 3) { _ftp.localdir.filedclick %d %oldpath $+ %name return } else { %path = $mid($gettok(%name,-1,32),2,2) $+ \ } _ftp.reflocal %d %path } ON *:DIALOG:ftp*:dclick:1021:{ var %d = $dname,%line = $did(%d,$did,$did(%d,$did,1).sel),%oldpath = $did(%d,1024,1),%path = %oldpath,%icon = $gettok(%line,2,32),%name = $gettok($gettok(%line,1,9),3-,32) if (%icon == 1) { _ftp.com $dname cdup } elseif (%icon == 2) { _ftp.com $dname CWD %name } else { _ftp.remotedir.filedclick %d %oldpath $+ %name } } ; /_ftp.dirstatus dname statusdid listdid dirdid filedid free alias -l _ftp.dirstatus { var %d = $1 if ($dialog(%d) == $null) { return } var %folders = $did(%d,$4).lines,%files = $did(%d,$5).lines,%sels = $did(%d,$3,0).sel,%totalbytes = $bytes($did(%d,$6,3),3).suf,%showfree = 0,%showtotal = 0,%com %com = did -i %d $2 2 +p 0 $_nsingoplur(%folders,Folder,Folders) $+ , $_nsingoplur(%files,File,Files) $+ , $calc(%folders + %files) Total if (%totalbytes == $null) { %totalbytes = 0b } if (%sels) { %com ( $+ %totalbytes $+ , $_nsingoplur(%sels,item,items) selected) } else { if ($6 == 1014) { %com ( $+ %totalbytes $+ , free: $bytes($disk($did(%d,$6,1)).free,3).suf $+ ) } else { %com ( $+ %totalbytes $+ ) } } } alias -l _ftp.localdir.filedclick { } alias -l _ftp.remotedir.filedclick { } alias _ftp.reflocal { var %m,%i,%d = $1,%path = $2- if ($disk($left(%path,1)).type == $null) || ($isdir(%path) == $false) { _ftp.addlog.error %d Local directory " $+ %path $+ " not found return } if (*\ !iswm %path) { %path = %path $+ \ } did -r %d 1015,1016 did -o %d 1014 1 %path _dialog.add1 %d 1010 %path if (ftp* iswm $dname) && ($did(%d,1014,2) != $null) { %m = $ifmatch } else { %m = * } did -i %d 1012 2 +p 0 Gathering dir info... ;;; "/set -u %var" will behave oddly here ;;; Only Khaled knows why %~ftptotalbytes = 0 %~ftptotalfiles = 0 _dummy $finddir(%path,*,0,1,_ftp._reflocal.adddir %d $1-) _dummy $findfile(%path,%m,0,1,_ftp._reflocal.addfile %d $1-) did -o %d 1014 3 $round(%~ftptotalbytes,0) did -o %d 1014 5 $round(%~ftptotalfiles,0) unset %~ftptotalbytes %~ftptotalfiles _ftp._reflocal.ref %d } alias _ftp._reflocal.adddir { did -a $1 1015 - 2 $nopath($2-) } alias _ftp._reflocal.addfile { var %size = $file($2-).size,%nopath = $nopath($2-),%ext = $gettok(%nopath,-1,46) if ($numtok(%nopath,46) == 1) { var %ext } did -a $1 1016 - 3 %nopath $+ $chr(9) $+ 0 $bytes(%size,b) $+ $chr(9) $+ %size $+ $chr(9) $+ %ext if (%size) { inc %~ftptotalbytes $ifmatch } inc %~ftptotalfiles } alias _ftp.liststyle { var %l = showsel autoarrange rowselect if (b isin $1) { %l = %l icon } elseif (i isin $1) { %l = %l icon smallicon } elseif (l isin $1) { %l = %l list } else { %l = %l nosortheader report nosortheader } return %l } alias _ftp._reflocal.ref { var %d = $1,%i did -r %d 1011 _mdx.SetMDXStyle %d 1011 $_ftp.liststyle($did(%d,1014,4)) %i = 67 while (%i <= 90) { if ($disk($chr(%i)).type != $null) { var %drive = $chr(%i),%label = $disk(%drive).label,%pd = ( $+ %drive $+ :) if (%drive isin ab) { did -a %d 1011 + 4 Floppy Drive %pd } elseif ($disk(%drive).type == cdrom) { did -a %d 1011 + 6 %label %pd } else { did -a %d 1011 + 5 %label %pd } } inc %i } if ($numtok($did(%d,1014,1),92) > 1) { did -a %d 1011 + 1 Up } var %sflags = $did(%d,1014,4),%col,%fflags = -iot if (d isin %sflags) { %fflags = -iote } if (n isin %sflags) { %col = 1 } elseif (s isin %sflags) { var %col = 3,%fflags = %fflags $+ u } else { %col = 4 } filter %fflags %col 9 %d 1015 %d 1011 filter %fflags %col 9 %d 1016 %d 1011 _ftp.dirstatus %d 1012 1011 1015 1016 1014 } alias _ftp.gftp.sr { var %d = $_ftp.nums,%name = $9-,%isdir = 0,%isv = 0 did -a %d 2251 $1- if (%name != $null) { if (d* iswm $1) { if ($istok(. ..,$9-,32) == $false) { %isdir = 1 } else { return } } elseif ($istok($9-,->,32)) { var %a = $findtok($9-,->,1,32) $+ - $+ $numtok($9-,32),%b = 1- $+ $findtok($9-,->,1,32),%a = $deltok($9-,%a,32),%b = $deltok($9-,%b,32),%name = %a if (*.* !iswm %b) { %isdir = 1 } %isv = 1 } var %c9 = $chr(9),%90 = %c9 $+ 0,%date = $6-7,%time,%year if (*:* iswm $8) { var %time = $8,%year = $asctime($ctime,yyyy) } else { var %time = 00:00,%year = $8 } var %ctime = %date %year %time,%ctime = $ctime(%ctime),%asctime = $asctime(%ctime,dd/mmm/yyyy HH:nn) if (%isdir) { did -a %d 1025 - 2 %name $+ %90 $bytes($5,b) $+ %90 %asctime $+ %90 $1 $+ %90 $3 $+ %90 $4 $+ %90 $+ %c9 $+ $5 $+ %c9 $+ %ctime $+ %c9 } else { var %ext = $gettok(%name,-1,46) if ($numtok(%name,46) == 1) { var %ext } did -a %d 1026 - 3 %name $+ %90 $bytes($5,b) $+ %90 %asctime $+ %90 $1 $+ %90 $3 $+ %90 $4 $+ %90 $+ %c9 $+ $5 $+ %c9 $+ %ctime $+ %c9 $+ %ext did -o %d 1024 3 $calc($did(%d,1024,3) + $5) did -o %d 1024 5 $calc($did(%d,1024,5) + 1) } } } alias _ftp._refremote.ref { var %d = $1 did -r %d 1021 did -a %d 1021 + 1 Up _mdx.SetMDXStyle %d 1021 $_ftp.liststyle($did(%d,1024,4)) var %sflags = $did(%d,1024,4),%col,%fflags = -iot if (d isin %sflags) { %fflags = -iote } if (n isin %sflags) { %col = 1 } elseif (s isin %sflags) { var %col = 8,%fflags = %fflags $+ u } elseif (m isin %sflags) { var %col = 9,%fflags = %fflags $+ u } elseif (a isin %sflags) { %col = 4 } elseif (o isin %sflags) { %col = 5 } elseif (g isin %sflags) { %col = 6 } elseif (c isin %sflags) { %col = 7 } else { %col = 10 } filter %fflags %col 9 %d 1025 %d 1021 filter %fflags %col 9 %d 1026 %d 1021 _ftp.dirstatus %d 1022 1021 1025 1026 1024 } alias -l _ftp.local.transfer { if ($_ftp.remote.disconnected) { return } _ftp.local.queue +t _ftp.queue.start } alias -l _ftp.local.queue { if ($_ftp.remote.disconnected) { return } var %d = $dname,%icon,%name,%l,%t,%parent = $did($dname,1014,1),%z,%c = 0,%text,%z = $did(%d,1011,0).sel,%xxx,%remotedir = $did(%d,1024,1),%remotefile,%server = ftp:// $+ $did(%d,2994,1) $+ : $+ $sock(%d).port if (%z) { did -i %d 1012 2 +p 0 Adding $_nsingoplur(%z,item,items) to the queue... please wait while (%z) { var %l = $did(%d,1011,%z).sel,%t = $did(%d,1011,%l),%icon = $gettok(%t,2,32),%name = $gettok($gettok(%t,1,9),3-,32) if (%icon == 3) { %remotefile = %remotedir $+ %name %name = %parent $+ %name %xxx = $_ftp.queue.add($dname,0,%name,%remotefile,$gettok($gettok(%t,2,9),2,32),%server) inc %c } dec %z } _ftp.dirstatus $dname 1012 1011 1015 1016 1014 } if (%c == 0) { _ftp.status.error $dname No local files selected to $iif(t isin $1,transfer,queue) } } alias -l _ftp.local.del { var %d = $dname,%icon,%name,%l,%t,%parent = $did($dname,1014,1),%z,%c = 0,%text if ($did(%d,1011,0).sel) { var %z = $ifmatch,%text = Remove $_nsingoplur(%z,selected item?,selected items?) if ($_not($_yesno(1,FTP Client [/ftp],1,%text))) { return } did -i %d 1012 2 +p 0 Removing %z items... please wait while (%z) { var %l = $did(%d,1011,%z).sel,%t = $did(%d,1011,%l),%icon = $gettok(%t,2,32),%name = $gettok($gettok(%t,1,9),3-,32) if (%icon == 2) { _rmdir " $+ %parent $+ %name $+ " inc %c } elseif (%icon == 3) { .remove " $+ %parent $+ %name $+ " inc %c } dec %z } } if (%c) { _ftp.status.info $dname $_nsingoplur(%c,item,items) removed _ftp.local.refresh } else { _ftp.status.error $dname No directories/files selected to remove _ftp.dirstatus $dname 1012 1011 1015 1016 1014 } } alias -l _ftp.local.ren { var %t,%oldir = $did($dname,1014,1),%line = $did($dname,1011,$did($dname,1011,1).sel),%new,%icon = $gettok(%line,2,32),%file = $gettok($gettok(%line,1,9),3-,32) if (%icon == 3) { %new = $_parameter($null,1,FTP Client [/ftp],isvalidfilename,%file,New name for local file: [ %file ] ) if ($dialog($dname) == $null) { return } %t = %oldir $+ %new if (%new != $null) { if ($isfile(%t) == $false) { .rename " $+ %oldir $+ %file $+ " " $+ %oldir $+ %new $+ " _ftp.reflocal $dname %oldir } elseif (%new == %file) { _ftp.status.error $dname Cannot rename local file ' $+ %file $+ ' - Same filename! } else { _ftp.status.error $dname Cannot rename local file ' $+ %file $+ ' - Already exists file ' $+ %new $+ ' } } } else { _ftp.status.error $dname Only files can be renamed } } alias -l _ftp.local.mkdir { var %newdir,%localdir = $did($dname,1014,1),%createdir if (*\ !iswm %localdir) { %localdir = %localdir $+ \ } %newdir = $_parameter($null,1,FTP Client [/ftp],len < 250,$null,Local directory to create inside [ %localdir ] ) if ($dialog($dname) == $null) { return } %createdir = %localdir $+ %newdir if (/ !isin %newdir) && (\ !isin %newdir) && ($_fixdir(%createdir)) { .mkdir " $+ %createdir $+ " _ftp.local.refresh } else { _ftp.status.error $dname Invalid directory: %createdir } } alias -l _ftp.local.chdir { var %dir = $$sdir="Change Local Directory in FTP Session [ $_ftp.num ] " $did($dname,1014,1) if ($dialog($dname) == $null) { return } if ($istok(a b,$left(%dir,1),32) == $false) { _ftp.reflocal $dname %dir } else { _ftp.status.error $dname Please don't use diskettes! } } alias -l _ftp.local.cdup { if ($deltok($did($dname,1014,1),-1,92) != $null) { _ftp.reflocal $dname $ifmatch } } alias -l _ftp.local.refresh { _ftp.reflocal $dname $did($dname,1014,1) } alias -l _ftp.remote.transfer { if ($_ftp.remote.disconnected) { return } _ftp.remote.queue +t _ftp.queue.start } alias -l _ftp.remote.queue { if ($_ftp.remote.disconnected) { return } var %d = $dname,%icon,%name,%l,%t,%parent = $did($dname,1024,1),%z,%c = 0,%text,%z = $did(%d,1021,0).sel,%xxx,%localdir = $did(%d,1014,1),%localfile,%server = ftp:// $+ $did(%d,2994,1) $+ : $+ $sock(%d).port if (%z) { did -i %d 1022 2 +p 0 Adding $_nsingoplur(%z,item,items) to the queue... please wait while (%z) { var %l = $did(%d,1021,%z).sel,%t = $did(%d,1021,%l),%icon = $gettok(%t,2,32),%name = $gettok($gettok(%t,1,9),3-,32) if (%icon == 3) { %localfile = %localdir $+ %name %name = %parent $+ %name %xxx = $_ftp.queue.add($dname,1,%localfile,%name,$gettok($gettok(%t,2,9),2,32),%server) inc %c } dec %z } _ftp.dirstatus $dname 1022 1021 1025 1026 1024 } if (%c == 0) { _ftp.status.error $dname No remote files selected to $iif(t isin $1,transfer,queue) } } alias -l _ftp.remote.del { if ($_ftp.remote.disconnected) { return } var %d = $dname,%icon,%name,%l,%t,%parent = $did($dname,1024,1),%z,%c = 0,%text if ($did(%d,1021,0).sel) { var %z = $ifmatch,%text = Remove $_nsingoplur(%z,selected item?,selected items?) if ($_not($_yesno(1,FTP Client [/ftp],1,%text))) { return } while (%z) { var %l = $did(%d,1021,%z).sel,%t = $did(%d,1021,%l),%icon = $gettok(%t,2,32),%name = $gettok($gettok(%t,1,9),3-,32) if (%icon == 2) { did -a $dname 2250 _ftp.com $dname rd %name inc %c } elseif (%icon == 3) { did -a $dname 2250 _ftp.com $dname del %name inc %c } dec %z } } if (%c) { _ftp.sigue $dname 0 did -o $dname 2994 15 1 } else { _ftp.status.error $dname No directories/files selected to remove } } alias -l _ftp.remote.ren { if ($_ftp.remote.disconnected) { return } var %t,%oldir = $did($dname,1024,1),%line = $did($dname,1021,$did($dname,1021,1).sel),%new,%icon = $gettok(%line,2,32),%file = $gettok($gettok(%line,1,9),3-,32) if (%icon isin 23) { if (%icdon == 2) { %c.ftpren.esdir = 1 } _ftp.com $dname ren %file } else { _ftp.status.error $dname Only files or directories can be renamed } } alias -l _ftp.remote.copyurl { if ($_ftp.remote.disconnected) { return } if ($did($dname,2994,1) != $null) { var %server = $ifmatch,%dir = $did($dname,1024,1),%line = $did($dname,1021,$did($dname,1021,1).sel),%icon = $gettok(%line,2,32),%file = $gettok($gettok(%line,1,9),3-,32),%cb = ftp:// $+ %server $+ %dir if (*/ !iswm %cb) { %cb = %cb $+ / } if (%icon == 3) { %cb = %cb $+ %file } clipboard %cb } else { _ftp.status.error $dname Unknown server } } alias -l _ftp.remote.chmod { if ($_ftp.remote.disconnected) { return } ;;; } alias -l _ftp.remote.quote { if ($_ftp.remote.disconnected) { return } var %q = $_parameter($null,1,FTP Client [/ftp],normal,$_randtok(help syst,32),Command to execute in server:) if ($dialog($dname)) { _ftp.com $dname %q } } alias -l _ftp.remote.mkdir { if ($_ftp.remote.disconnected) { return } var %dir = $_parameter($null,1,FTP Client [/ftp],len < 250,$null,Remote directory to create inside: [ $did($dname,1024,1) ] ) if ($dialog($dname)) { _ftp.com $dname MKD %dir } } alias -l _ftp.remote.chdir { if ($_ftp.remote.disconnected) { return } var %win = @__ftpremotechdir,%dir _openwins %win filter -iw $dname 1020 %win %dir = $_rparameter($null,1,FTP Client [/ftp],normal,$line(%win,1),%win,$null,Change to remote directory:) if ($dialog($dname) != $null) && (%dir != $did($dname,1024,1)) { _ftp.com $dname CWD %dir } close -@ %win } alias -l _ftp.remote.cdup { if ($_ftp.remote.disconnected) { return } _ftp.com $dname CDUP } alias -l _ftp.remote.refresh { if ($_ftp.remote.disconnected == 0) { _ftp.com $dname dir } } alias -l _ftp.remote.disconnected { var %d = $iif($1,$1,$dname) if ($dialog(%d)) && ($sock(%d)) { return 0 } return 1 } alias -l _ftp.queuelist.del.sel { if ($did($1,1030,1).sel) && ($_not($_yesno(1,FTP Client [/ftp],1,Remove selected entries from the queue?))) { return } while ($did($1,1030,1).sel) { did -d $1 1030 $ifmatch } } alias -l _ftp.queuelist.del.downupl { var %d = $1,%downupl = $calc($2 + 1),%i = $did(%d,1030,1).lines,%icon if (%i > 1) && ($_yesno(1,FTP Client [/ftp],1,Remove [ $iif(%downupl == 2,downloads,uploads) ] from the queue?)) { while (%i > 1) { %icon = $gettok($did(%d,1030,%i),2,32) if (%icon == %downupl) { did -d %d 1030 %i } dec %i } } } alias -l _ftp.queuelist.del.all { if ($did($1,1030,1).lines > 1) && ($_yesno(1,FTP Client [/ftp],1,Clear queue?)) { did -r $1 1030 } } alias -l _ftp.queuelist.move.up { _dialog.MDXVIEWLISTup $1 1030 1030 } alias -l _ftp.queuelist.move.down { _dialog.MDXVIEWLISTdown $1 1030 1030 } alias -l _ftp.queuelist.move.top { var %d = $1,%l,%t,%c = 0,%i = 2 while ($did(%d,1030,1).sel) { var %l = $ifmatch,%t = $did(%d,1030,%l) did -d %d 1030 %l did -i %d 1030 %i %t inc %i } dec %i while (%i > 1) { did -ck %d 1030 %i dec %i } } alias -l _ftp.queuelist.move.bottom { var %d = $1,%l,%t,%c = 0,%i = 0 while ($did(%d,1030,1).sel) { var %l = $ifmatch,%t = $did(%d,1030,%l) did -d %d 1030 %l did -a %d 1030 %t inc %i } dec %i %t = $did(%d,1030).lines %i = %t - %i while (%i <= %t) { did -ck %d 1030 %i inc %i } } alias -l _ftp.queuelist.move.downupl { var %d = $1,%downupl1 = $calc($2 + 1),%downupl2 = $iif(%downupl1 == 1,2,1),%win = @__ftpqueuelistmovedownupl _openwins %win filter -iwr 2-999999999 %d 1030 %win & %downupl1 * filter -iwr 2-999999999 %d 1030 %win & %downupl2 * filter -woc %win %d 1030 } alias -l _ftp.queuelist.info { var %d = $1,%i = $did(%d,1030).lines,%dc = 0,%uc = 0,%db = 0,%ub = 0,%tc = 0,%tb = 0,%line,%icon,%size while (%i > 1) { var %line = $did(%d,1030,%i),%icon = $gettok(%line,2,32),%size = $remove($gettok($gettok(%line,3,9),2,32),$chr(44)) if (%icon == 1) { inc %uc if (%size) { inc %ub %size } } else { inc %dc if (%size) { inc %db %size } } dec %i } %tc = %uc + %dc %tb = %ub + %db if (%tc) { _ftp.addlog.info %d Queue Info: _ftp.addlog.info %d Uploads: %uc ( $+ $bytes(%ub,3).suf $+ ) _ftp.addlog.info %d Downloads: %dc ( $+ $bytes(%db,3).suf $+ ) _ftp.addlog.info %d Total: %tc ( $+ $bytes(%tb,3).suf $+ ) } else { _ftp.addlog.info %d The transfer queue is empty } } alias -l _ftp.queuelist.load { var %d = $1,%win = @__tmp,%file = $hfile="Load FTP queue from:" $_usrdir(*.afq),%line if ($isfile(%file)) { tokenize 32 $read -nl1 %file if ($0 == 3) && (//aIRCFTPqueuelist == $1) && ($2 == 2) && ($3 isnum) { filter -focr 2-9999999999999 " $+ %file $+ " %d 1030 } else { _ftp.status.error %d Invalid queue list file: ' $+ %file $+ ' } } else { _ftp.status.error %d File not found: ' $+ %file $+ ' } } alias -l _ftp.queuelist.save { var %d = $1,%win = @__tmp,%file = $hfile="Save FTP queue in:" $_usrdir(*.afq) if (%file != $null) { _openwins %win filter -iwr 2-99999999999 %d 1030 %win iline %win 1 //aIRCFTPqueuelist 2 $ctime savebuf %win " $+ %file $+ " close -@ %win } } alias _ftp.queue.start { var %d = $iif($1,$1,$dname) did -o %d 2994 18 1 if ($did(%d,1030).lines > 1) { _ftp.sigue %d 0 } else { _ftp.status.error %d The transfer queue is empty } } ; $_ftp.queue.add(session,0|1,local,remote,bytes,server) ; 0=upload 1=download alias _ftp.queue.add { var %icon = $calc($2 + 1),%local = $3,%remote = $4,%size = $5,%server = $6,%from,%target,%90 = $chr(9) $+ 0 if (%icon == 1) { var %from = %local,%target = %remote } else { var %from = %remote,%target = %local } did -a $1 1030 - %icon %from $+ %90 %target $+ %90 %size $+ %90 %server } alias _ftp.setitle { if ($2- != $null) { dialog -t $1 $2- - aIRC FTP Client } else { dialog -t $1 aIRC FTP Client } } alias _ftp.disconnect { if (ftp* iswm $1) { sockclose $1 sockclose ? $+ $1 .timer $+ $1 off .timer $+ $1 $+ _* off if ($dialog($1)) { did -o $1 1000 2 +a 1 Connect $+ $chr(9) $+ Connect to a FTP Server _ftp.setitle $1 _ftp.addlog.info $1 Disconnected! did -r $1 1020,1021,1022,1025,1026 } } }