Peace & Protection 4.00 — File Browser
PeaceProtection4.00v4.0 / PeaceProtection4.00v4.0 / SCRIPT / PROFILE.MRC
PROFILE.MRC — 13.89 KB — Download this file
; #= P&P -rs
; ########################################
; Peace & Protection
; User profile support
; ########################################di
;
; User profiles
;
alias profile {
if ($bits == 16) {
if ($1) {
writeini config\profiles.ini startup ask 0
.timer 1 0 .timer 1 0 _startup.perform
return
}
_error Profiles do not work on 16 bit mIRC.Only 32 bit mIRC has the features to support profiles.
}
set %.method $1
if ($dialog(profile,profile,-4) == startup) .timer 1 0 .timer 1 0 _startup.perform
}
alias _profile {
var %profile,%name,%num,%id,%file,%data,%from,%tok
; NEW
if ($1 == n) {
if ($2) {
; Base profile
%profile = $did(profile,11,$did(profile,1).sel)
; Importing? (sets %.ver, %.which, and %.whichp if ver 4)
if (%profile == +) %name = $_profimport
var %ver = %.ver,%which = %.which,%whichp = %.whichp
%name = $_entry(0,%name,Profile name?(be as descriptive as you like))
; Generate profile id
%id = $_gen.id(%name)
var %num
:loop2
%data = %id $+ %num
if ($null != $readini -n config\profiles.ini %data name) { inc %num | goto loop2 }
%id = %data
; Create new profile
_progress.1 Creating new profile... ( $+ %id $+ )
; Directory
_progress.2 0 Making directory
saveini
if ($exists(config\ [ $+ [ %id ] ] ) == $false) mkdir config\ $+ %id
; Copy files incl. mirc.ini
_progress.2 33 Copying files
if (%profile == +) {
if (%ver == 4) { %from = $nofile(%which) $+ config\ $+ %whichp | %from = $shortfn(%from) }
else %from = script\defcfg
}
elseif (%profile == -) %from = script\defcfg
else %from = config\ $+ %profile
.copy %from $+ \* config\ $+ %id
if ((%profile == +) && (%ver == 3)) {
_progress.2 50 Converting 3.x settings...
;;; NOT DONE YET.. perhaps move to after profile copy? separate progress...
;_load imprt320 _import320 config\ $+ %id %which
}
if (%profile == +) {
if (%ver == 4) {
%from = $nofile(%which) $+ config\profiles.ini
if (%whichp == $readini -n %from startup main) .copy -o " $+ %which $+ " config\ $+ %id $+ \mirc.ini
}
else .copy -o " $+ %which $+ " config\ $+ %id $+ \mirc.ini
}
elseif (%profile == $readini -n config\profiles.ini startup main) .copy -o " $+ $mircdirmirc.ini" config\ $+ %id $+ \mirc.ini
; Add to profiles.ini
_progress.2 66 Adding to profiles
writeini config\profiles.ini %id name %name
; Fix sections from imported mirc.ini?
if ((%profile == +) && (%ver != 4)) {
%file = config\ $+ %id $+ \mirc.ini
%data = pfiles rfiles afiles dragdrop clicks perform
:loopfix
%tok = $gettok(%data,1,32)
remini %file %tok
%num = [[ $+ %tok $+ ]]
%num = $read -ns [ $+ [ %num ] ] $mircini
%num = $readn + 1
:loopfix2
%from = $read -nl [ $+ [ %num ] ] $mircini
if ((%from != $null) && ([*] !iswm %from)) {
writeini %file %tok $gettok(%from,1,61) $gettok(%from,2-,61)
inc %num | goto loopfix2
}
%data = $gettok(%data,2-,32)
if (%data) goto loopfix
}
_progress.2 100 Done!
did -v profile 102,103,104,12,2,201,40
did -a profile 101 &Open profile
did -h profile 80
_refill %id
}
else {
dialog -t profile User Profile (creating new)
did -h profile 102,103,104,12,2,201,40
did -a profile 101 Se&lect
did -v profile 80
did -i profile 1 1 (import settings from another mIRC or P&P)
did -i profile 11 1 +
did -i profile 1 1 (default P&P settings)
did -i profile 11 1 -
did -u profile 1
_profdir
}
return
}
if ($did(profile,1).sel == $null) return
%profile = $did(profile,11,$did(profile,1).sel)
; DEFAULT
if ($1 == s) {
if (%profile == $readini -n config\profiles.ini startup main) _error That profile is already the default.
var %proini = $mircdirconfig\ $+ %profile $+ \mirc.ini
if ($_inuse(%proini)) _error You cannot make that profile default.It is currently in use by another copy of mIRC.
if ($_inuse($mircdirmirc.ini)) _error You cannot change the default profile.Another copy of mIRC is using the current default.
_okcancel 0 This will $iif(%profile == %!user,require a TOTAL restart of mIRC-,RESTART mIRC with this profile-) Continue?
%data = $readini -n config\profiles.ini startup main
saveini
.copy -o mirc.ini config\ $+ %data $+ \mirc.ini
.copy -o " $+ %proini $+ " mirc.ini
writeini config\profiles.ini startup main %profile
unset %!user
_swapto %profile $true
}
; SWITCH
if ($1 == l) {
if (%profile == %!user) {
if ($did(profile,50) == startup) .timer -o 1 0 _startup.perform
else _okcancel 1 Open another copy of current profile?
}
saveini
_swapto %profile $iif($did(profile,50) == startup,$true,$false)
}
; RENAME
if ($1 == r) {
%name = $readini -n config\profiles.ini %profile name
%name = $_entry(0,$_s2p(%name),Profile name?(be as descriptive as you like))
writeini config\profiles.ini %profile name %name
_refill %profile
}
; DELETE
if ($1 == d) {
if (%profile == %!user) _error You cannot delete the current profile.Switch to another profile if you want to delete this one.
if (%profile == $readini -n config\profiles.ini startup main) _error You cannot delete the default profile.Change the default if you want to delete this one.
%file = $mircdirconfig\ $+ %profile $+ \mirc.ini
if ($_inuse(%file)) _error You cannot delete that profile.It is currently in use by another copy of mIRC.
; Delete profile
_progress.1 Deleting profile... ( $+ %profile $+ )
; Delete files
_progress.2 0 Deleting files
_remove.all * $mircdirconfig\ $+ %profile
if ($findfile($mircdirconfig\ [ $+ [ %profile ] ] ,*,1)) _error Error deleting ' $+ $ifmatch $+ '.Profile was not entirely deleted.
; Delete directories
%data = $finddir($mircdirconfig\ [ $+ [ %profile ] ] ,*,0,.rmdir $1-)
if ($finddir($mircdirconfig\ [ $+ [ %profile ] ] ,*,1)) _error Error removing ' $+ $ifmatch $+ '.Profile was not entirely deleted.
; Remove from profiles.ini
_progress.2 50 Removing from profiles
remini config\profiles.ini %profile
; Remove main directory
.rmdir config\ $+ %profile
_progress.2 100 Done!
_refill
}
}
;;; log dirs?
; Load profile (via restart of mIRC)
; $2 = $true to close this copy, $false to just open another copy
alias _swapto {
; Load profile
if (($2) && ($1 == %!user)) { if ($dialog(profile)) { did -r profile 50 | dialog -c profile } | return }
if ($2) {
if ($dialog(profile)) var %ask = $did(profile,2).state
else var %ask = $readini -n config\profiles.ini startup ask
writeini config\profiles.ini startup ask once $ddename $gettok(%ask,$numtok(%ask,32),32)
if ($group(#pnpdde) == off) .timer.doexit 1 20 exit
}
if ($1 == $readini -n config\profiles.ini startup main) run $mircexe -i" $+ $mircdirmirc.ini"
else run $mircexe -i" $+ $mircdirconfig\ $+ $1\mirc.ini"
if ($dialog(profile)) { did -r profile 50 | dialog -c profile }
halt
}
alias spawn {
saveini
if ($1) writeini config\profiles.ini startup connect $1-
_swapto %!user
}
;
; Profile dialogs
;
dialog profile {
title "User profile"
size -1 -1 400 305
text "Choose a user profile by double-clicking, or select an option.", 40, 10 10 380 16
box "&User profiles", 13, 10 30 380 150
list 1, 20 50 230 140
list 11, 20 50 230 140, hide
button "&Open profile", 101, 260 50 120 25, default
button "&Delete profile", 102, 260 82 120 25
button "&Rename profile", 103, 260 114 120 25
button "&Set as default", 104, 260 146 120 25
text "", 75, 15 190 500 20
box "&Options", 12, 10 210 380 48
check "&Ask for profile on startup", 2, 20 230 230 16
button "&New profile", 201, 260 225 120 25
text "Select the profile or option you wish to base the new profile on", 80, 15 215 380 16, hide
button "&Close", 202, 110 270 80 25, cancel
button "&Help", 203, 210 270 80 25, disable
edit "", 50, 1 1 1 1, hide result autohs
}
on *:DIALOG:profile:init:*:{
if ($readini config\profiles.ini startup ask) did -c $dname 2
_refill %!user
if (%.method == startup) {
did -h profile 102,103,104,201
did -a $dname 40 Choose a user profile by double-clicking.
did -a $dname 50 %.method
}
unset %.method
}
alias -l _refill {
dialog -t profile User Profile
did -r profile 1,11
var %file1,%file2,%profile,%name,%num = 1,%default = $readini -n config\profiles.ini startup main
:loop
%profile = $nopath($finddir($mircdirconfig,*,%num,1))
%name = $readini -n config\profiles.ini %profile name
if (%profile) {
if (%name == $null) {
%file1 = $mircdirconfig\ $+ %profile $+ \config.ini
%file2 = $mircdirconfig\ $+ %profile $+ \cfgvar.dat
if (($exists(%file1)) && ($exists(%file2))) { %name = %profile | writeini config\profiles.ini %profile name %profile }
}
if (%name != $null) {
did -a $+ $iif(%profile == $1,c) profile 1 %name $iif(%profile == %!user,[current],$iif(%profile == %default,[default],$chr(32)))
did -a profile 11 %profile
}
inc %num | goto loop
}
_profdir
}
alias -l _profdir {
if (($did(profile,1).sel) && ($did(profile,11,$did(profile,1).sel) !isin +-)) did -av profile 75 Profile directory: $mircdirconfig\ $+ $ifmatch
else did -h profile 75
}
on *:DIALOG:profile:sclick:1:_profdir
on *:DIALOG:profile:dclick:1:if ($did(101) == Se&lect) _juryrig _profile n 2 | elseif ($did(profile,50) == startup) _profile l | else _juryrig _profile l
on *:DIALOG:profile:sclick:101:if ($did(101) == Se&lect) _juryrig _profile n 2 | elseif ($did(profile,50) == startup) _profile l | else _juryrig _profile l
on *:DIALOG:profile:sclick:102:_juryrig _profile d
on *:DIALOG:profile:sclick:103:_juryrig _profile r
on *:DIALOG:profile:sclick:104:_juryrig _profile s
on *:DIALOG:profile:sclick:201:_juryrig _profile n
on *:DIALOG:profile:sclick:202:if ($did(profile,50) == startup) { did -c profile 1 1 | _profile l }
on *:DIALOG:profile:sclick:2:writeini config\profiles.ini startup ask $did(profile,2).state
;
; Profile importing
;
alias _profimport {
var %how = $$dialog(profileimp,profileimp,-4)
if (%how == search) {
set %.where $_drivesearch
if (%.where == $null) halt
var %which = $$dialog(profilesearch,profilesearch,-4)
}
else {
var %which = $$dir="Select MIRC.INI to import from:" [ [ $gettok($mircdir,1,58) ] $+ ] :\mirc.ini
if ($exists(%which) == $false) halt
}
; Determine version- plain mirc, 3.x, or 4.x
var %file1 = $nofile(%which) $+ pp300\r-main.mrc,%file2 = $nofile(%which) $+ pp300\variable.mrc
if (($exists(%file1)) && ($exists(%file2))) var %ver = 3
%file1 = $nofile(%which) $+ script\first.mrc
%file2 = $nofile(%which) $+ config\profiles.ini
if (($exists(%file1)) && ($exists(%file2))) {
set %.which %which
var %name = $$dialog(profimpsel,profimpsel,-4),%ver = 4
}
else var %name = $readini -n %which mirc nick
set -u %.which %which
set -u %.ver %ver
return %name
}
dialog profileimp {
title "Profile Import"
size -1 -1 400 70
text "Should P&&P search for your other copies of mIRC or do you wish to locate MIRC.INI manually?", 201, 14 5 280 30
button "&Search", 101, 13 40 130 25, default
button "&Manual", 103, 163 40 130 25, OK
button "&Cancel", 105, 313 40 65 25, cancel
edit "manual", 1, 1 1 1 1, result hide
}
on *:DIALOG:profileimp:sclick:101:did -o $dname 1 1 search | dialog -k $dname
dialog profilesearch {
title "Select MIRC.INI"
size -1 -1 216 210
text "Select MIRC.INI to import from:", 1, 5 5 200 16
list 2, 8 25 200 150, sort
button "Select", 3, 63 180 90 25, default ok
edit "", 4, 1 1 1 1, hide autohs result
}
on *:DIALOG:profilesearch:init:*:{
_progress.1 Searching for MIRC.INI...
var %junk,%num = 1,%where = %.where
unset %.where
:loop1
if ($gettok(%where,%num,32)) {
_progress.2 $round($calc((%num - 1) * 100 / $numtok(%where,32)),0) Searching $ifmatch ...
%junk = $findfile($gettok(%where,%num,32),MIRC.INI,0,did -a profilesearch 2 $1-)
inc %num | goto loop1
}
_progress.2 100 Search complete
; Remove anything in our mircdir or in a \config\ subdir or in recycled
%num = $did(2).lines
:loop2
if ((*\recycle*\* iswm $did(2,%num)) || ($mircdir* iswm $did(2,%num)) || (*\config\*\mirc.ini iswm $did(2,%num)) || (*\script\defcfg\mirc.ini iswm $did(2,%num))) did -d $dname 2 %num
if (%num > 1) { dec %num | goto loop2 }
window -c @Progress
if ($did(2).lines == 0) { dialog -c $dname | _error No MIRC.INIs found to import from }
}
on *:DIALOG:profilesearch:dclick:2:dialog -k $dname
on *:DIALOG:profilesearch:sclick:3:did -o $dname 4 1 $did(2,$did(2).sel)
dialog profimpsel {
title "Select profile"
size -1 -1 400 192
text "Import which profile?", 40, 10 10 380 16
box "&Profiles", 13, 10 30 380 150
list 1, 20 50 230 140
list 11, 20 50 230 140, hide
button "&Select", 101, 260 50 120 25, default ok
edit "", 50, 1 1 1 1, hide result autohs
edit %.which, 51, 1 1 1 1, hide autohs
}
on *:DIALOG:profimpsel:init:*:{
var %where,%profile,%name,%num = 1,%dir = $nofile(%.which) $+ config
unset %.which
:loop
%profile = $nopath($finddir(%dir,*,%num,1))
%where = " $+ %dir $+ \profiles.ini"
%name = $readini -n %where %profile name
if (%name) {
did -a $dname 1 %name
did -a $dname 11 %profile
}
if (%profile) { inc %num | goto loop }
}
on *:DIALOG:profimpsel:dclick:1:dialog -k $dname
on *:DIALOG:profimpsel:sclick:101:set -u1 %.whichp $did(11,$did(1).sel) | did -o $dname 50 1 $did(1,$did(1).sel)