rendered paste body
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
}
}