aIRC — File Browser
aIRCv0.8.69 / aIRCv0.8.69 / script / servers.mrc
servers.mrc — 6.04 KB — Download this file
;/**********************************************************************
; *
; * aIRC
; * Servers List
; *
; **********************************************************************/
alias _servers.dialog {
var %ifile = $_mini(files,servers),%ofile = $_usrdir(snets.ini),%line
if (%ifile == $null) { %ifile = servers.ini }
if ($_not($isfile(%ifile))) {
error.a Servers INI file not found. $iif(%ifile != $null,$^'(%ifile))
return
}
if ($isfile(%ofile)) {
%line = $read -nl1 %ofile
if (;* !iswm %line) || ($remove(%line,;) != $crc($_mini(files,servers))) { _servers.netr Updating servers index file... }
}
else { _servers.netr Creating servers index file... }
_dialog -m _servers _servers
}
dialog _servers {
size -1 -1 255 120
option dbu
title "Servers"
box "&Network",1,5 5 85 112
list 2,10 15 75 83
button "",3,10 100 75 12,hide
box "&Server",11,95 5 155 112
list 12,100 15 100 83
text "",13,100 102 100 12,center
text "&Port:",14,205 15 20 10
combo 15,205 25 40 100,drop
button "&Connect",400,205 43 40 15
button "&IRC Sock",401,205 63 40 15,ok
button "Cancel",405,205 83 40 15,cancel
text "",402,100 100 100 12,hide
}
ON *:DIALOG:_servers:*:*:{
if ($devent == init) {
_mdx.init $_icofile(server.ico)
_dummy $_lang.loaddialog($dname,$dname,00086969,main.lang,$scriptdir)
_servers.dinit
}
elseif ($devent == sclick) {
if ($did = 2) { _servers.dsclick2 }
elseif ($did == 3) {
var %win = @__serversrsd3,%file = $_usrdir(sstatus.mrc),%s = $did(2,$did(2,1).sel)
if (%s != $null) {
_openwins %win
loadbuf -tnets %win $"(%file)
if ($fline(%win,%s,0)) { _servers.sstatus 0 %s }
else { _servers.sstatus 1 %s }
_servers.dsclick2
close -@ %win
}
}
elseif ($did == 12) {
var %i = 1,%n,%p,%win = @__serversrs,%file = $_mini(files,servers),%net = $did(2,$did(2,1).sel),%desc = $did(12,$did(12,1).sel),%server,%line,%ports
close -@ %win
window -hs %win
filter -fw %file %win *= $+ %desc $+ SERVER:*
if ($line(%win,1) != $null) {
%line = $gettok($ifmatch,2-,61)
%server = $gettok(%line,$calc($findtok(%line,$wildtok(%line,*SERVER,1,58),1,58) + 1),58)
%ports = $_range($removecs($wildtok(%line,*GROUP,$wildtok(%line,*GROUP,0,58),58),GROUP),20)
did -o $dname 13 1 %server
did -o $dname 402 1 %server
did -r $dname 15
%n = $numtok(%ports,44)
while (%i <= %n) {
%p = $gettok(%ports,%i,44)
if (%p == 6667) || ((%p == 7000) && (*.dal.net iswm %server)) { did -ac $dname 15 %p }
else { did -a $dname 15 %p }
inc %i
}
if ($did(15,0).sel == 0) { did -c $dname 15 1 }
}
close -@ %win
}
elseif ($did == 400) || ($did == 401) {
if ($did(402) == $null) { halt }
elseif ($_not($_ishost($did(402)))) { error.a $did(402) is an invalid host }
else { $iif($did == 400,server,irc) $did(402) $iif($_isint($did(15)),$did(15)) }
_quickunload _servers $script
}
elseif ($did == 405) { _quickunload _servers $script }
}
elseif ($devent == dclick) {
if ($did == 12) { dialog -k $dname }
}
did $iif($did(402) != $null,-e,-b) $dname 400
if ($did(402) != $null) && ($_irc.addonver) { did -e $dname 401 }
else { did -b $dname 401 }
}
alias _servers.dinit {
did -r $dname 2,12,13,402,15
var %win = @__serversinit,%currnet = %.network,%i
close -@ %win
window -hs %win
loadbuf 2-9999 %win $_usrdir(snets.ini)
_win2dialog %win $dname 2 *
clear %win
if (%currnet == $null) { %currnet = $gettok($_mini(mirc,host),$calc($findtok($_mini(mirc,host),$wildtok($_mini(mirc,host),*group,$wildtok($_mini(mirc,host),*group,0,58),58),58) + 1),58) }
if (%currnet != $null) {
%i = $did($dname,2).lines
if ($didwm($dname,2,%currnet,1)) {
did -c $dname 2 $ifmatch
_servers.dsclick2
}
}
close -@ %win
}
alias _servers.dsclick2 {
did -r $dname 12
var %i,%n,%win = @__serversr,%win2 = @__serversr2,%win3 = @__serversr3,%file = $_mini(files,servers),%s = $did(2,$did(2,1).sel)
_openwins %win %win2 %win3
_servers.f *=Random & %s server*
_servers.f *GROUP: $+ %s
_win2dialog %win3 $dname 12 random *
clear %win2
filter -wwx %win3 %win2 random *
clear %win3
filter -ww %win2 %win3 *
_win2dialog %win3 $dname 12 * random *
clear %win2
filter -wwx %win3 %win2 * random *
clear %win3
filter -ww %win2 %win3 *
_win2dialog %win2 $dname 12 *
clear %win
%file = $_usrdir(sstatus.mrc)
loadbuf -tnets %win $"(%file)
if ($fline(%win,%s,0)) { did -ov $dname 3 1 &Remove net from status menu }
else { did -ov $dname 3 1 &Add net to status menu }
close -@ %win
close -@ %win2
close -@ %win3
did -r $dname 13,402,15
}
alias _servers.f {
var %i = 1,%n,%win = @__serversr,%win2 = @__serversr2,%win3 = @__serversr3,%file = $_mini(files,servers),%l,%tok,%a,%m,%s = $did(2,$did(2,1).sel)
if (%file == $null) { %file = servers.ini }
clear %win
clear %win2
if ($isfile(%file)) { filter -fw $"(%file) %win $1- }
%n = $line(%win,0)
while (%i <= %n) {
%l = $line(%win,%i)
%tok = 1- $+ $findtok(%l,$wildtok(%l,*SERVER,1,58),1,58)
aline %win2 $left($gettok($gettok(%l,%tok,58),2,61),-6)
inc %i
}
filter -ww %win2 %win3 *
}
alias _servers.netr {
var %i = 1,%n = $server(0),%s,%ifile = $_mini(files,servers),%ofile = $_usrdir(snets.ini),%line,%d,%old
_progress.init $1-
_progress 0
write -c $"(%ofile) ; $+ $crc(%ifile)
while (%i <= %n) {
%s = $server(%i).group
if (%i == 1) || (30 // %i) { _progress2 %i %n %i / %n }
%old = %s
if (%s isnum) {
%d = $server(%i).desc
if ($numtok(%d,32) > 3) && ($gettok(%d,1,32) == random) && ($gettok(%d,$numtok(%d,32),32) == server) { %s = $gettok(%d,$calc($numtok(%d,32) - 1),32) }
else { var %s }
}
if (%s != $null) { write -s $+ %s $"(%ofile) %s }
inc %i
}
_progress 100 Done!
return 0
}