Peace and Protection — File Browser
PeaceandProtectionv4.22.8 / PeaceandProtectionv4.22.8 / Peace-and-Protection-master / script / alias2.mrc
alias2.mrc — 9.84 KB — Download this file
; #= P&P -a
; **********************
; Unsorted routines
; **********************
;;;###*** Not yet divided- interfaces to temporarily load ***###;;;
; Load and unload temp scripts
_load if ($script($1.mrc) == $null) .load -rs $+ $calc($script(0) - 2) "script\ $+ $1.mrc" | $2-
_unload if ($script($1.mrc)) .timer -mio 1 0 .unload -rs " $+ $ifmatch $+ "
bug _load register _bug $1-
feedback bug 2
donate _load register _donate $1-
about _load register _about $1-
wizard _load firstime _firsttime $1-
config _load config _config $1-
cfg _load config _config $1-
popups config 17
awaycfg config 2
msgs config 29
textopt config 11
protedit _load protedit _protedit $1-
;;;###*** Not yet divided ***###;;;
inv invite $1-
invite {
if ($2) {
if ($_ischan($1)) invite $_nc($2) $1
else invite $_nc($1) $2
}
elseif ($active ischan) {
if ($1) invite $_nc($1) $active
else invite $_entry(-1,$null,User to invite to $active $+ ?) $active
}
elseif ($query($active) == $active) {
if ($1) invite $active $1
else invite $active $_rentry($chr(35),0,$chan(1),Invite $active to what channel?)
}
elseif (=* iswm $active) {
if ($1) invite $right($active,-1) $1
else invite $right($active,-1) $_rentry($chr(35),0,$chan(1),Invite $right($active,-1) to what channel?)
}
else _qhelp /invite
}
who if ($1 != $null) who $1- | else _qhelp /who
myver {
if ($hget(pnp,addon.ids) == $null) me is using Peace and Protection $:ver by pai
else me is using Peace and Protection $:ver by pai
say Peace and Protection homepage- $:www
}
p&p myver
pnp myver
;
; Recent list trackers (not actively kept sync'd with other mircs)
;
; _recent type max# token value
; only first token using 'token' ascii as sep is compared in determining dupes. (0 works for 'all')
_recent {
if ($4 == $null) return
var %num = 2,%file = $_cfg($1.rct)
window -hl @.recent
aline @.recent $4-
if ($exists(%file)) loadbuf @.recent %file
%= [ $+ [ $1. ] $+ [ 1 ] ] = $4-
:loop
if ($gettok($line(@.recent,%num),1,$3) != $gettok($4-,1,$3)) { %= [ $+ [ $1. ] $+ [ %num ] ] = $line(@.recent,%num) | inc %num }
else dline @.recent %num
if ((%num <= $2) && (%num <= $line(@.recent,0))) goto loop
savebuf 1- $+ $2 @.recent %file
window -c @.recent
%= [ $+ [ $1.clr ] ] = Clear this list
}
; _recclr type
_recclr unset %= $+ $1.* | _broadcastp unset % $+ = $+ $1.* | .remove $_cfg($1.rct)
; $_rec(type,#)
_rec if (%= [ $+ [ $1. ] $+ [ $2 ] ] ) return $2. $left($replace($ifmatch,&,&&),40) $+ $iif($len($ifmatch) > 40,...) | return
_rechash {
window -hl @.recent
unset %=*
var %dir = $mircdirconfig\ $+ $hget(pnp,user) $+ \
%dir = $findfile(%dir,*.rct,0,_rechash2 $1-)
window -c @.recent
}
_rechash2 {
clear @.recent
loadbuf @.recent " $+ $1- $+ "
:loopN
%= [ $+ [ $replace($nopath($1-),.rct,.) ] $+ [ $line(@.recent,0) ] ] = $line(@.recent,$line(@.recent,0))
dline @.recent $line(@.recent,0)
if ($line(@.recent,1)) goto loopN
%= [ $+ [ $gettok($nopath($1-),1,46) ] $+ [ .clr ] ] = Clear this list
}
; Finds all %=*.clr and sets to new theme
_rechash3 {
var %num = $var(%=*.clr,0)
while (%num) {
set $var(%=*.clr,%num) Clear this list
dec %num
}
}
;
; Another 'recent lists' type that merely stores in a file, not in vars
;
; _recent2 type max# value
_recent2 {
if ($3 == $null) return
var %file = $_cfg($1.lis)
window -hl @.recent
aline @.recent $3-
if ($exists(%file)) {
loadbuf @.recent %file
var %line = $read(%file,ns,$3-)
if ($readn) dline @.recent $calc(1 + $readn)
}
savebuf 1- $+ $2 @.recent %file
window -c @.recent
}
;
; Server list (status window) update
;
serverlist {
var %num,%old,%tok,%bit,%curr,%sini,%groups,%group,%curr,%prog,%ln,%line,%desc,%serv,%port,%win
if (($1 == off) || ($1 == off)) { _cfgxw serverlist on 0 | disps Serverlist disabled. }
elseif (($1 == on) || ($1 == on)) {
_cfgxw serverlist on 1
if ($2) _cfgxw serverlist groups $_c2s($2-)
if ($_cfgx(serverlist,groups) != $null) disps Serverlist enabled. $chr(40) $+ $ifmatch $+ $chr(41)
else {
var %groups = empty
disps Serverlist enabled. $chr(40) $+ %groups $+ $chr(41)
}
}
elseif ($1) {
%bit = +
%num = 1
%old = $_cfgx(serverlist,groups)
:loopM
%tok = $gettok($1-,%num,32)
if (+* iswm %tok) { %bit = + | %tok = $right(%tok,-1) }
elseif (-* iswm %tok) { %bit = - | %tok = $right(%tok,-1) }
if (%tok) {
if (%bit == +) {
if ($istok(%old,%tok,32)) disps $:s(%tok) is already in serverlist
else disps Adding $:s(%tok) to serverlist
%old = $addtok(%old,%tok,32)
}
else {
if ($istok(%old,%tok,32)) disps Removing $:s(%tok) from serverlist
else disps $:s(%tok) is not in serverlist
%old = $remtok(%old,%tok,1,32)
}
}
if (%num < $numtok($1-,32)) { inc %num | goto loopM }
_cfgxw serverlist groups %old
}
elseif ($_cfgx(serverlist,on)) {
if ($_cfgx(serverlist,groups) != $null) disps Serverlist enabled. $chr(40) $+ $ifmatch $+ $chr(41)
else {
var %groups = empty
disps Serverlist enabled. $chr(40) $+ %groups $+ $chr(41)
}
}
else disps Serverlist disabled.
%sini = $readini($mircini,n,files,servers)
if (%sini == $null) %sini = servers.ini
if ($exists(%sini) == $false) { if ($show) _error Cannot find servers.iniCannot update serverlist without a servers file | return }
%curr = $file(%sini).mtime $_cfgx(serverlist,on) $_cfgx(serverlist,groups)
if (($exists($_cfg(servers.mrc))) && (%curr == $_cfgx(serverlist,last))) { disps Serverlist is up-to-date. | return }
_cfgxw serverlist last %curr
disps Refreshing serverlist popups...
window -hl @.servlist
aline @.servlist ; #= P&P -rs 0
aline @.servlist ; @======================================:
aline @.servlist ; $chr(124) Peace and Protection $chr(124)
aline @.servlist ; $chr(124) Servers popups (*auto-generated*) $chr(124)
aline @.servlist ; `======================================'
if (1 != $_cfgx(serverlist,on)) goto sloff
aline @.servlist menu status $chr(123)
aline @.servlist -
%groups = $_cfgx(serverlist,groups)
if (%groups == $null) goto none
if ($exists(%sini) == $false) goto none
_progress.1 Refreshing serverlist popups...
%prog = $numtok(%groups,32) + 1
%curr = 0
; Open a window per group
window -hl @.prescan
%num = 1
:loop0
%group = $gettok(%groups,%num,32)
if (%group) {
_progress.2 $int($calc(%curr / %prog * 100)) Scanning %group
inc %curr
window -hsl @.sl@ $+ %group
clear @.prescan
filter -fw %sini @.prescan *GROUP: $+ %group
filter -fw %sini @.prescan n*=Random & %group *
%ln = $line(@.prescan,0)
:loop9
%line = $gettok($line(@.prescan,%ln),2-,61)
%desc = $left(%line,$calc($pos(%line,SERVER:) - 1))
%serv = $mid(%line,$calc($pos(%line,SERVER:) + 7),999)
%serv = $left(%serv,$calc($pos(%serv,GROUP:) - 1))
%port = $gettok(%serv,2,58)
%serv = $gettok(%serv,1,58)
if (($gettok(%desc,1,58) == %group) && ($numtok(%desc,58) > 1)) %desc = $gettok(%desc,2-,58)
if ($gettok(%desc,1,32) == Random) aline @.sl@ $+ %group - $remtok(%desc,%group,1,32) %serv %port
else aline @.sl@ $+ %group %desc %serv %port
if (%ln > 1) { dec %ln | goto loop9 }
inc %num | goto loop0
}
window -c @.prescan
; Copy servers to file
_progress.2 $int($calc(%curr / %prog * 100)) Saving to popups
%num = 1
:loop3
%group = $gettok(%groups,%num,32)
if (%group) {
var %groupcheck = $!iif(($hget(pnp. $!+ $!cid,net) != Offline) && ($hget(pnp. $!+ $!cid,net) != %group $+ ) && ($server($server).group != %group $+ ),-m)
%win = @.sl@ $+ %group
if ($line(%win,0) == 0) goto next3
aline @.servlist %group
var %old,%bit
%curr = 0
%ln = 1
:loop4
%line = $line(%win,%ln)
if (%line) {
%serv = $gettok(%line,1,127)
if ($gettok(%serv,1,44) != %old) {
%old = $ifmatch
if ($numtok(%serv,44) > 1) {
if (%curr < 2) {
%tok = %old $+ , *
if ($fline(%win,%tok,0,0) == $calc($line(%win,0) - %ln + 1)) %bit = 1
}
if (%curr == 1) aline @.servlist .-
%curr = 2
if (%bit != 1) {
if ($findtok(US EU CA NZ AU,%old,1,32)) aline @.servlist . $+ $gettok(USA.Europe.Canada.New Zealand.Australia,$ifmatch,46)
else aline @.servlist . $+ %old
}
}
else {
aline @.servlist . $+ $remtok(%old,-,1,32) $+ :server %groupcheck $gettok(%line,2,127) $ $+ gettok( $+ $_c2s($gettok(%line,3,127)) $+ ,$_pprand( $+ $numtok($gettok(%line,3,127),44) $+ ),32)
if (%curr == 0) %curr = 1
}
}
if ($numtok(%serv,44) > 1) aline @.servlist $iif(%bit,.,..) $+ $iif(%bit,%serv,$gettok(%serv,2-,44)) $+ :server %groupcheck $gettok(%line,2,127) $ $+ gettok( $+ $_c2s($gettok(%line,3,127)) $+ ,$_pprand( $+ $numtok($gettok(%line,3,127),44) $+ ),32)
inc %ln | goto loop4
}
:next3
window -c %win
inc %num | goto loop3
}
_progress.2 100 Done!
; Load script file
:none
aline @.servlist -
aline @.servlist $chr(125)
:sloff
savebuf @.servlist $_cfg(servers.mrc)
window -c @.servlist
_broadcastp if ($!script(servers.mrc)) .unload -rs " $!+ $!script(servers.mrc) $!+ " $chr(124) .load -rs2 $_cfg(servers.mrc)
if ($script(servers.mrc)) .unload -rs " $+ $script(servers.mrc) $+ "
.load -rs2 $_cfg(servers.mrc)
}
;
; drag/drop support
; $1 = normal/shift (n/s) $2 = target $3- = file
;
_dragdrop _juryrig2 _dragdrop2 $1-
_dragdrop2 {
if ($active == = $+ $2) tokenize 32 $1 = $+ $2 $3-
; REMOVES quotes
.signal PNP.DRAGDROP $1 $2 $iif("*" iswm $3-,$mid($3-,2,-1),$3-)
}