Dialog -l Connected { Title "CloneX by Marko" Size -1 -1 140 160 Option dbu Box "", 1, 5 3 130 150 List 2, 12 13 115 125, Extsel Sort Size Text "Connected", 3, 12 140 30 9 Text "0", 4, 50 140 20 9 } On *:Dialog:Connected:Init:*:{ Connected } Dialog -l Commands { Title "CloneX by Marko" Size -1 -1 200 200 Option dbu } Dialog -l Grabber { Title "CloneX by Marko" Size -1 -1 100 158 Option dbu Box "", 1, 5 3 89 148 List 2, 12 13 75 100, Extsel Sort Size Text "Site", 3, 12 120 20 9 Edit "", 4, 40 120 47 9, Autohs Button "Search", 5, 12 133 75 11 } On *:Sockopen:Grabber.*:{ Sockwrite -nt $Sockname GET $Chr(47) $+ $Gettok($Remove($Did(Grabber,4),http://),2-,47) HTTP/1.0 Sockwrite -nt $Sockname Host: $Gettok($Regsubex($Did(Grabber,4),/http:///g,),1,47) Sockwrite -nt $Sockname $Crlf } On *:Sockread:Grabber.*:{ Sockread %Grabber If ($Regex(%Grabber,/(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}[: ]\d{1,5})/)) && (!$Didwm(Grabber,2,$Regml(1))) { Did -a Grabber 2 $Regml(1) } } On *:Dialog:Grabber:Sclick:5:{ Sockopen Grabber. $+ $Ticks $Gettok($Remove($Did(Grabber,4),http://),1,47) 80 } Menu * { CloneX:CloneX } Alias CloneX { If (!$Dialog(CloneX)) { Dialog -md CloneX CloneX } Elseif ($Dialog(CloneX)) { Dialog -v CloneX } } Dialog -l CloneX { Title "CloneX by Marko" Size -1 -1 225 200 Option dbu Tab "Configuration", 1, 5 5 215 175 Tab "Commands", 2 Tab "Status", 3 Box "", 4, 10 20 204 155, Tab 1 Text "Server", 5, 15 30 20 9, Tab 1 Edit "irc.swiftirc.net", 6, 50 29 50 9, Autohs Tab 1 Text "Port", 7, 15 41 20 9, Tab 1 Edit "6667", 8, 50 40 22 9, Limit 5 Number Tab 1 Text "Connections", 9, 15 52 30 9, Tab 1 Edit "1", 10, 50 51 22 9, Limit 3 Number Tab 1 Text "Protocol", 11, 15 74 20 9, Tab 1 Combo 12, 50 73 35 9, Drop Tab 1 Box "", 13, 15 85 90 42, Tab 1 Text "Identd", 14, 20 93 20 9, Tab 1 Edit "BoT", 15, 50 92 35 9, Autohs Limit 9 Tab 1 Text "Nick", 16, 20 104 20 9, Tab 1 Edit "BoT#####", 17, 50 103 50 9, Autohs Tab 1 Text "Realname", 18, 20 115 25 9, Tab 1 Edit "BoT", 19, 50 114 50 9, Autohs Limit 50 Tab 1 Text "Raw", 20, 52 134 33 9, Tab 1 Edit "Join #chan", 21, 20 143 80 23, Multi Return Autohs Vsbar Tab 1 Text "Delay", 22, 15 63 20 9, Tab 1 Edit "0", 23, 50 62 22 9, Number Limit 3 Tab 1 Box "", 24, 15 129 90 41, Tab 1 List 25, 128 44 75 100, Extsel Sort Size Tab 1 Box "", 26, 122 25 87 136, Tab 1 Button "&Import", 27, 130 32 35 11, Tab 1 Button "Export", 28, 166 32 35 11, Tab 1 Button "Copy", 29, 130 145 35 11, Tab 1 Button "Paste", 30, 166 145 35 11, Tab 1 Combo 31, 55 184 45 11, Drop Button "Connect", 32, 5 184 45 11, Drop Text "Connected", 33, 140 181 60 9 Text "0", 34, 180 181 30 9 Text "Connections", 35, 140 190 60 9 Text "0", 36, 180 190 30 9 Box "", 37, 10 20 87 128, Tab 2 List 38, 16 29 75 100, Extsel Sort Size Tab 2 Text "Command", 39, 16 133 25 9, Tab 2 Combo 40, 55 131 35 9, Drop Tab 2 Button "Raw", 41, 100 23 35 11, Tab 2 Edit "", 42, 142 24 70 9, Autohs Tab 2 Box "", 43, 10 20 204 155, Tab 3 Edit "", 44, 16 30 192 139, Multi Return Hsbar Vsbar Tab 3 Menu "Dialogs", 45 Item "&Connected", 46 Item "&Commands", 47 Item "&Grabber", 48 Text "CloneX by Marko", 50, 139 163 70 9, Disable Tab 1 } On *:Dialog:CloneX:Init:*:{ Did -a $Dname 12 Normal Did -a $Dname 12 Proxy Did -a $Dname 12 Sock Did -c $Dname 12 1 Did -a $Dname 31 Connect Did -a $Dname 31 Disconnect Did -a $Dname 31 Close Sockets Did -a $Dname 31 Exit Did -a $Dname 31 All Did -c $Dname 31 1 Did -a $Dname 40 All Did -a $Dname 40 Selected Did -c $Dname 40 1 Statistics } On *:Dialog:CloneX:Sclick:*:{ If ($Did == 27) { Var %h = $Sfile($Mircdir,$Dname,Import) If (%h) { Var %g = 1 While ($Read(%h,%g)) { If ($Regex($Read(%h,%g),/(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}[: ]\d{1,5})/)) && (!$Didwm(25,$Regml(1))) { Did -a $Dname 25 $Replace($Regml(1),$Chr(32),$Chr(58)) } Inc %g = 1 } } } Elseif ($Did == 28) { If ($Did(25).Lines) { Var %Input = $Input(Do you want to save the list before you clear it?,nv,$Dname) If (%Input == $yes) { Var %Savedir = $Mircdir $+ $Did(12) $+ $Chr(46) $+ $Replace($Date(mm dd yy),$Chr(32),$Chr(46)) $+ .ini Var %i = 1 While ($Did(25,%i)) { If (!$Read(%Savedir,w,$Did(25,%i))) { Write %Savedir $Did(25,%i) If (%i == $Did(25).Lines) { Did -r $Dname 25 } } Inc %i = 1 } } Elseif (%Input == $no) { Did -r $Dname 25 } } } Elseif ($Did == 29) { If ($Did(25).Lines) { Clipboard Var %j = 1 While ($Did(25,%j)) { Clipboard -an $Did(25,%j) Inc %j = 1 } } } Elseif ($Did == 30) { Var %f = 1 While (%f <= $Cb(0)) { If ($Regex($Cb(%f),/(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}[: ]\d{1,5})/)) && (!$Didwm(25,$Regml(1))) { Did -a $Dname 25 $Replace($Regml(1),$Chr(32),$Chr(58)) } Inc %f = 1 } } Elseif ($Did == 31) { If ($Did($Did) != All) { Did -ra $Dname 32 $Did($Did) } If ($Did(32) == Connect) { If (!$Did($Did,5)) && (!$Did($Did,6)) { Did -a $Dname $Did All } } Elseif ($Did(32) != Connect) { If ($Did($Did,5)) { Did -d $Dname $Did 5 } } } Elseif ($Did == 32) { If ($Did($Did) == Connect) { If ($Did(8) !isnum 1-65535) { Return $Error(Invalid port number.) } Elseif (*.*.* !iswm $Did(6)) { Return $Error(Invalid server name.) } Elseif ($Left($Did(17),1) isnum) { Return $Error(The first character of a nick cannot contain a number.) } Elseif ($Did(10) !isnum 1-999) { Return $Error(Invalid amount of connections.) } Elseif ($Did(12) != Normal) && (!$Did(25).Lines) { Return $Error(Enter a $Did(12) in the $Did(12) list.) } Elseif (*?.?* iswm $Did(17)) && (!$Isfile($Did(17))) { Return $Error(The file $Qt($Did(17)) does not exist.) } Elseif (!$Longip($Did(6))) { .Enable #Dns .Dns -c $Did(6) } Else { If ($Did(31) == All) && ($Did(12) != Normal) { Var %All = 1 While ($Did(25,%All)) { Sockopen $Dname $+ $Chr(46) $+ $Did(12) $+ $Chr(46) $+ $Ticks $Replace($Did(25,%All),$Chr(58),$Chr(32)) Inc %All = 1 } } Else { .Timer $+ $Dname $Did(10) $Did(23) Connect } } Statistics } Elseif ($Did($Did) == Disconnect) { If ($Sock($Dname $+ .*,0)) { .Timers off Sockwrite -nt $Dname $+ .* Quit $Dname Sockclose $Dname $+ .* Did -ra $Dname 34 0 Did -ra $Dname 36 0 Did -r $Dname 38 } } Elseif ($Did($Did) == Close Sockets) { .Timers off Var %c = 1 While ($Sock($Dname $+ .*,%c)) { If (!$Sock($Dname $+ .*,%c).Mark) { Sockclose $Sock($Dname $+ .*,%c) } Inc %c = 1 } Statistics } Elseif ($Did($Did) == Exit) { .Timers off Sockclose $Dname $+ .* Dialog -x $Dname } } Elseif ($Did == 41) { Command $Did(40) $Did(42) } } On *:Dialog:CloneX:Dclick:*:{ If ($Did == 25) { If ($Did($Did,0).Sel) { Did -d $Dname $Did $Did($Did,$Did($Did,0).Sel).Sel } Elseif (!$Did($Did,0).Sel) { Return $Error(You have not selected any text to remove.) } } } On *:Dialog:CloneX:Menu:*:{ If ($Did == 46) { If (!$Dialog(Connected)) { Dialog -md Connected Connected } Elseif ($Dialog(Connected)) { Dialog -v Connected } } Elseif ($Did == 47) { If (!$Dialog(Commands)) { Dialog -md Commands Commands } Elseif ($Dialog(Commands)) { Dialog -v Commands } } Elseif ($Did == 48) { If (!$Dialog(Grabber)) { Dialog -md Grabber Grabber } Elseif ($Dialog(Grabber)) { Dialog -v Grabber } } } On *:Dialog:CloneX:Close:*:{ If ($Dialog(Connected)) { Dialog -c Connected } If ($Dialog(Commands)) { Dialog -c Commands } If ($Dialog(Grabber)) { Dialog -c Grabber } } #Dns off On *:Dns:{ Var %Dname = CloneX If ($Raddress) { Did -ra %Dname 6 $Raddress If ($Dialog(%Dname)) { .Timer $+ %Dname $Did(%Dname,10) $Did(%Dname,23) Connect } } Elseif (!$Raddress) { Return $Error(Dns unable to resolve $Qt($Did(%Dname,6))) } .Disable #Dns } #Dns End On *:Sockopen:CloneX.*:{ If ($Sockerr) { Sockclose $Sockname } If ($Gettok($Sockname,2,46) == Normal) { Info $Sockname } If ($Gettok($Sockname,2,46) == Proxy) { Sockwrite $Sockname Connect $Did($Gettok($Sockname,1,46),6) $+ $Chr(58) $+ $Did($Gettok($Sockname,1,46),8) HTTP/1.0 Sockwrite $Sockname $Crlf $+ $Crlf $+ $Crlf Info $Sockname } Elseif ($Gettok($Sockname,2,46) == Sock) { Bset &Clone 1 5 1 0 Sockwrite $Sockname &Clone } } On *:Sockread:CloneX.*:{ If ($Sockerr) { Sockclose $Sockname } If ($Gettok($Sockname,2,46) == Sock) && (!$Sock($Sockname).Mark) { Sockread &Read If ($Bvar(&Read,1,2) == 5 0) && ($Bvar(&Read,3)) { Var %Server = $Replace($Did($Gettok($Sockname,1,46),6),$Chr(46),$Chr(32)) Var %Port = $Gettok($Longip($Did($Gettok($Sockname,1,46),8)),3,46) $Gettok($Longip($Did($Gettok($Sockname,1,46),8)),4,46) Bset &Clone.Send 1 5 1 0 1 %Server %Port Sockwrite $Sockname &Clone.Send } If ($Bvar(&Read,1,3) == 5 0 0) { Sockmark $Sockname 001 Info $Sockname } } Sockread %CloneX Tokenize 32 %CloneX If ($1 == Ping) { Sockwrite -nt $Sockname Pong : $+ $Gettok($2,1,58) } Elseif ($2 == Privmsg) { If ($Count($4,$Chr(58)) == 1) { If ($Gettok($4,2,1) == Ping) && ($5) { Sockwrite -nt $Sockname Notice $Gettok($Gettok($1,1,33),1,58) $4 $5 } Elseif ($Gettok($4,2,1) == Time) { Sockwrite -nt $Sockname $2 $Gettok($Gettok($1,1,33),1,58) $Left($4,-1) $Asctime } Elseif ($Gettok($4,2,1) == Version) { Sockwrite -nt $Sockname $2 $Gettok($Gettok($1,1,33),1,58) $Left($4,-1) $Gettok($Sockname,1,46) } } } Elseif ($2 == Nick) { If ($Sock($Sockname).Mark == $Gettok($Gettok($1,1,33),1,58)) { If ($Dialog($Gettok($Sockname,1,46))) { Did -o $Gettok($Sockname,1,46) 38 $Didwm($Gettok($Sockname,1,46),38,$Sock($Sockname).Mark) $Gettok($Gettok($3,1,33),1,58) } Sockmark $Sockname $Gettok($Gettok($3,1,33),1,58) } } Elseif ($2 == 001) { If ($3) { If ($Dialog($Gettok($Sockname,1,46))) { Did -a $Gettok($Sockname,1,46) 38 $3 } Var %b = 1 While ($Did($Gettok($Sockname,1,46),21,%b)) { Command $Sockname $Replace($Gettok($Did($Gettok($Sockname,1,46),21,%b),1,47),$!Nick,$3) Inc %b = 1 } Sockmark $Sockname $3 } Statistics Connected } Elseif (43? iswm $2) { If (!$Sock($Sockname).Mark) { Var %Nick = $Regsubex($Str(-,10),/-/g,$Rand(a,z)) If ($Did($Gettok($Sockname,1,46),17)) { Var %Nick = $Regsubex($Regsubex($Did($Gettok($Sockname,1,46),17),/#/g,$Rand(0,9)),/&/g,$Rand(a,z)) $+ $Regsubex($Str(-,5),/-/g,$Rand(0,9)) } Elseif ($Isfile($Did($Gettok($Sockname,1,46),17))) { Var %Nick = $Read($Did($Gettok($Sockname,1,46),17)) } Sockwrite -nt $Sockname Nick %Nick Sockmark $Sockname $2 } Elseif (43? iswm $Sock($Sockname).Mark) { Sockwrite -nt $Sockname Nick $Regsubex($Str(-,10),/-/g,$Rand(a,z)) } } If ($Dialog($Gettok($Sockname,1,46))) { If (%CloneX) && ($Sock($Sockname).Mark !isnum) { Did -i $Gettok($Sockname,1,46) 44 $Did($Gettok($Sockname,1,46),44).Lines %CloneX } Did -ra $Gettok($Sockname,1,46) 36 $Sock($Gettok($Sockname,1,46) $+ .*,0) } Unset %CloneX } On *:Sockclose:CloneX.*:{ If ($Sock($Sockname).Mark !isnum) { If ($Dialog($Gettok($Sockname,1,46))) && ($Didwm($Gettok($Sockname,1,46),38,$Sock($Sockname).Mark)) { Did -d $Gettok($Sockname,1,46) 38 $Didwm($Gettok($Sockname,1,46),38,$Sock($Sockname).Mark) } } Statistics Connected } Alias -l Error { Return $Input($1-,o,CloneX) } Alias -l Statistics { If ($Dialog(CloneX)) { Did -ra CloneX 36 $Sock(CloneX.*,0) Did -r CloneX 38 Var %k = 1 While ($Sock(CloneX.*,%k)) { If ($Sock(CloneX.*,%k).Mark) && ($Sock(CloneX.*,%k).Mark !isnum) { If (!$Didwm(CloneX,38,$Sock(CloneX.*,%k).Mark)) { Did -a CloneX 38 $Sock(CloneX.*,%k).Mark } } Inc %k = 1 } Did -ra CloneX 34 $Did(CloneX,38).Lines } } Alias -l Connected { If ($Dialog(Connected)) { Did -r Connected 2 Var %Connected = 1 While ($Sock(CloneX.*,%Connected)) { If ($Sock(CloneX.*,%Connected).Mark) && ($Sock(CloneX.*,%Connected).Mark !isnum) && ($Gettok($Sock(CloneX.*,%Connected),2,46) != Normal) { If ($Didwm(Connected,2,$Sock(CloneX.*,%Connected).Ip $+ $Chr(58) $+ $Sock(CloneX.*,%Connected).Port $+ $Chr(42))) { Did -o Connected 2 $V1 $Gettok($Did(Connected,2,$V1),1,1) $Chr(1) $Gettok($Sock(CloneX.*,%Connected),2,46) $Chr(1) $Calc($Gettok($Did(Connected,2,$V1),3,1) + 1) } Else { Did -a Connected 2 $Sock(CloneX.*,%Connected).Ip $+ $Chr(58) $+ $Sock(CloneX.*,%Connected).Port $Chr(1) $Gettok($Sock(CloneX.*,%Connected),2,46) $Chr(1) 1 } } Inc %Connected = 1 } Did -a Connected 4 $Did(Connected,2).Lines } } Alias -l Connect { Var %d = $Ticks If ($Did(CloneX,12) == Normal) { Sockopen CloneX $+ $Chr(46) $+ $Did(CloneX,12) $+ $Chr(46) $+ %d $Did(CloneX,6) $Did(CloneX,8) } Else { If (!$Hget(List)) { Hadd -m List 1 1 } Elseif (!$Did(CloneX,25,$Hget(List,1))) { Hadd List 1 1 } Sockopen CloneX $+ $Chr(46) $+ $Did(CloneX,12) $+ $Chr(46) $+ %d $Replace($Did(CloneX,25,$Hget(List,1)),$Chr(58),$Chr(32)) Hinc List 1 } } Alias -l Info { Var %Nick = $Regsubex($Str(-,10),/-/g,$Rand(a,z)), %User = $Left(%Nick,9), %Name = %Nick If ($Did($Gettok($1,1,46),17)) { Var %Nick = $Regsubex($Regsubex($Did($Gettok($1,1,46),17),/#/g,$Rand(0,9)),/&/g,$Rand(a,z)) } Elseif ($Isfile($Did($Gettok($1,1,46),17))) { Var %Nick = $Read($Did($Gettok($1,1,46),17)) } If ($Did($Gettok($1,1,46),15)) { Var %User = $Regsubex($Regsubex($Did($Gettok($1,1,46),15),/#/g,$Rand(0,9)),/&/g,$Rand(a,z)) } If ($Did($Gettok($1,1,46),19)) { Var %Name = $Did($Gettok($1,1,46),19) } Sockwrite -nt $1 User %User "" "" : $+ %Name Sockwrite -nt $1 Nick %Nick } Alias -l Command { Var %Command = 1 While ($Sock(CloneX.*,%Command)) { If ($Sock(CloneX.*,%Command).Mark !isnum) { If ($1 == All) { Var %Sockname = $Sock(CloneX.*,%Command) } Elseif ($1 == Selected) { Var %e = 1, %Dname = CloneX While ($Did(%Dname,38,%e)) { If ($Did(%Dname,38,%e).State == 1) && ($Did(%Dname,38,%e) == $Sock(CloneX.*,%Command).Mark) { Var %Sockname = $Sock(CloneX.*,%Command) Goto Command } Inc %e = 1 } } } Elseif ($Gettok($1,1,46) == CloneX) { Var %Sockname = $1 } :Command If (%Sockname) { If ($Gettok($2,1,47) == Join) { Sockwrite -nt %Sockname Join $3 } Elseif ($Gettok($2,1,47) == Part) { Sockwrite -nt %Sockname Part $3 : $+ $4- } Elseif ($Gettok($2,1,47) == Notice) { Sockwrite -nt %Sockname Notice $3 : $+ $4- } Elseif ($Gettok($2,1,47) == Msg) { Sockwrite -nt %Sockname Privmsg $3 : $+ $4- } Elseif ($Gettok($2,1,47) == Action) { Sockwrite -nt %Sockname Privmsg $3 : $+ $Chr(1) $+ Action $4- } Elseif ($Gettok($2,1,47) == Ctcp) { Sockwrite -nt %Sockname Privmsg $3 $Chr(1) $+ $4- $+ $Chr(1) } Elseif ($Gettok($2,1,47) == Dccsend) { Sockwrite -nt %Sockname Privmsg $3 : $+ $Chr(1) $+ Dcc Send $4 ? 1024 } Elseif ($Gettok($2,1,47) == Dccchat) { Sockwrite -nt %Sockname Privmsg $3 : $+ $Chr(1) $+ Dcc Chat ? ? 1024 } Elseif ($Gettok($2,1,47) == Hop) { Sockwrite -nt %Sockname Join $3 Sockwrite -nt %Sockname Part $3 : $+ $4- } Elseif ($Gettok($2,1,47) == Nick) { Var %Nick = $Regsubex($Str(-,10),/-/g,$Rand(a,z)) If ($3) { Var %Nick = $Regsubex($3,/#/g,$Rand(0,9)),/&/g,$Rand(a,z)) } Elseif ($Isfile($3)) { Var %Nick = $Read($3) } Sockwrite -nt %Sockname Nick %Nick } Else { Sockwrite -nt %Socklname $Gettok($2,1,47) $Replace($3-,$!Nick,$Sock(CloneX.*,%Command).Mark) } } Inc %Command = 1 } }