aIRC — File Browser

aIRCv0.8.69 / aIRCv0.8.69 / script / services.mrc

services.mrc — 27.52 KB — Download this file

;/**********************************************************************
; *
; * aIRC
; * Services
; *
; **********************************************************************/

;;
;
; -( Registered Channels )-
;
;;

alias _schanfile { return $_chfile($_usrdir(schan.ini)) }
; /_schan.modify <network> <channel> [pass|level|bot] [new value]
alias _schan.modify {
  var %file = $_schanfile,%line,%pass,%level,%bot,%services
  %line = $read -ns" $+ $1 $2 $+ " %file
  if ($readn) {
    %line = $read -nl $+ $readn %file
    %pass = $gettok(%line,4,32)
    if (%pass != $null) { %pass = $_decrypt(%pass) }
    %level = $gettok(%line,5,32)
    %bot = $gettok(%line,6,32)
  }
  %services = $_readini($_snetworkini,$1,services)
  if ($3 == pass) { %pass = $4 }
  if ($3 == level) { %level = $4 }
  if ($3 == bot) { %bot = $4 }
  if (%pass != $null) { %pass = $_crypt(%pass) }
  write -s" $+ $1 $2 $+ " $"(%file) $1 $2 $iif(%services != $null,%services,$null) $iif(%pass != $null,%pass,$null) $iif(%level != $null,%level,$null) $iif(%bot != $null,%bot,$null)
  if ($show) && ($3) {
    if ($4 != $null) { info.a Modified $^'($3) for channel $^'($2) on $^'($1) $+ : $iif($3 == pass,$str(*,$len($4)),$4) }
    else { info.a Cleared $^'($3) for channel $^'($2) on $^'($1) }
  }
}
;
;;
;
; $_schan(network,chan,[pass|level|bot])
;
alias _schan {
  var %file = $_schanfile,%line
  _dummy $read -ns" $+ $1 $2 $+ " %file
  if ($readn) {
    if ($3 == $null) { return 1 }
    %line = $read -nl $+ $readn %file
    if ($3 == pass) {
      if ($gettok(%line,4,32) != $null) { return $_decrypt($ifmatch) }
    }
    if ($3 == level) {
      if ($gettok(%line,5,32) != $null) { return $ifmatch }
    }
    if ($3 == bot) {
      if ($gettok(%line,6,32) != $null) { return $ifmatch }
    }
  }
  elseif ($3 == $null) { return 0 }
}

;;
;
; -( Registered Nicks )-
;
;;

alias _snickfile { return $_chfile($_usrdir(snick.ini)) }
;
;;
;
; $_snick(network,nick,[pass])
;
alias _snick {
  var %file = $_snickfile,%line
  _dummy $read -ns" $+ $1 $2 $+ " %file
  if ($readn) {
    if ($3 == $null) { return 1 }
    %line = $read -nl $+ $readn %file
    if ($3 == pass) {
      if ($gettok(%line,4,32) != $null) { return $_decrypt($ifmatch) }
    }
  }
  elseif ($3 == $null) { return 0 }
}

;;
;
; -( Services Commands )-
;
;;

;
alias ns {
  if ($server == $null) {
    error.a You are not connected
    return
  }
  _network 0
  var %bot = Nickserv,%title
  if (%.network == IRC-Hispano) { %bot = NiCK }
  elseif (%.network == GalaxyNet) { %bot = NS }
  %title = %.network %bot [/ns]
  tokenize 32 $upper($_parameter($1,1,%title,1,help,Command:)) $2-
  if ($1 == help) {  }
  elseif ($1 == identify) || ($1 == auth) {
    if (%.services == GalaxyNet) { tokenize 32 auth $me $_parameterpass($iif($2 != $null,$2,$_snick(%.network,$me,pass)),1,%title,1,$null,Password to identify [ $me ] :) }
    else {
      tokenize 32 identify $_parameterpass($iif($2 != $null,$2,$_snick(%.network,$me,pass)),1,%title,1,$null,Password to identify [ $me ] :) $3-
    }
  }
  elseif ($1 == list) { tokenize 32 $1 $_parameter($2,1,%title,1,$null,Search pattern:) }
  elseif ($1 == link) {
    tokenize 32 $1 $_parameter($2,1,%title,1,$null,Link with:)
    tokenize 32 $1-2 $_parameterpass($3,1,%title,1,$null,Password:)
  }
  elseif ($1 == unlink) { }
  elseif ($1 == register) {
    if (%.services == IRC-Hispano) { tokenize 32 $1 $_parameter($2,1,%title,ismail,$null,Write your email<CRLF>[the password will be sent to your email]) }
    elseif ($istok(croom GalaxyNet,%.services,32)) || (*.dal.net iswm $server) { tokenize 32 $1 $_parameterpass($2,1,%title,1,$null,Password:) $_parameter($3,1,%title,ismail,$null,Write your email:) }
    else { tokenize 32 $1 $_parameterpass($2,1,%title,1,$null,Password:) }
  }
  elseif ($1 == pass) {
    if (%.services == GalaxyNet) {
      tokenize 32 $1 $_parameterpass($iif($2,$2,$_snick(%.network,$me,pass)),1,%title,1,$null,Old password for [ $me ] :)
      tokenize 32 $1-2 $_parameterpass($3,1,%title,1,$null,New password for [ $me ] :)
    }
  }
  elseif ($1 == unregister) {
    if (%.services == GalaxyNet) {
      if ($_not($_yesno(1,%title,1,Unregister [ $me ] ?))) { return }
    }
  }
  elseif ($1 == drop) {
    if (%.services == IRC-Hispano) {
      if ($_not($_yesno(1,%title,1,Drop [ $me ] ?))) { return }
    }
    else {
      tokenize 32 $1 $_parameter($2,1,%title,1,$me,Nick to DROP:)
      if ($_not($_yesno(1,%title,1,Drop [ $2 ] ?))) { return }
    }
  }
  elseif ($1 == ghost) || ($1 == recover) || ($1 == release) || ($1 == remove) {
    if ($1 == ghost) { tokenize 32 $1 $_parameter($2,1,%title,1,$null,Ghost nick:) }
    else { tokenize 32 $1 $_parameter($2,1,%title,1,$null,Nick to [ $1 ] ) }
    tokenize 32 $1-2 $_parameterpass($iif($3,$3,$_snick(%.network,$2,pass)),1,%title,1,$null,Password for [ $2 ] :)
  }
  elseif ($1 == info) || ($1 == whois) { tokenize 32 $1 $_parameter($2,1,%title,1,$_activequery,Nick:) }
  elseif ($1 == acc) { tokenize 32 $1 $_parameter($2,1,%title,1,$_activequery,Nick:) }
  elseif ($1 == access) {
    var %t = add del list $iif(%.services == croom,wipe)
    tokenize 32 $1 $_selectedit($2,1,%title,1,list,32,%t,Access [option]:)
    if ($2 == add) || ($2 == del) { tokenize 32 $1-2 $_parameter($3,1,%title,isuser@host,$gettok($_mask(%.myaddress,%_masknorm),2,33),Mask to [ $iif($2 == add,add to,remove from) ] your access list:<CRLF>[user@host format]) }
  }
  elseif ($1 == set) {
    var %s
    if (%.services == croom) { %s = passwd url email kill nomemo noop showemail }
    elseif (%.services == IRC-Hispano) { %s = passwd url email kill secure private hide }
    elseif (%.services == NewNet) { %s = kill secure password }
    else { %s = passwd url email kill nomemo noop secure showemail }
    tokenize 32 $1 $_selectedit($2,1,%title,1,$null,32,%s,Set [option]:) $3-
    if ($2 == passwd) || ($2 == password) {
      tokenize 32 $1 passwd $3-
      if (%.services == croom) {
        tokenize 32 $1-2 $_parameterpass($iif($3,$3,$_snick(%.network,$me,pass)),1,%title,1,$null,Old password for [ $me ] :)
        tokenize 32 $1-3 $_parameterpass($4,1,%title,1,$null,New password for [ $me ] :)
      }
      elseif (%.services == IRC-Hispano) { tokenize 32 $1 password $_parameterpass($3,1,%title,1,$null,New password for [ $me ] :) }
      else { tokenize 32 $1-2 $_parameterpass($3,1,%title,1,$null,New password for [ $me ] :) }
    }
    elseif ($2 == url) { tokenize 32 $1-2 $_parameter($3-,0,%title,normal,$_aircweb,URL for [ $me ] :) }
    elseif ($2 == email) { tokenize 32 $1-2 $_parameter($3,0,%title,ismail,$null,e-mail for [ $me ] :) }
    elseif ($2 == kill) {
      if (%.services == IRC-Hispano) { tokenize 32 $1-2 $_select($3,1,%title,istok on quick off,quick,32,on quick off,Set Kill Nick Enforce for<CRLF> [ $me ] <CRLF>[ON:1 minute - QUICK:20 seconds]) }
      else { tokenize 32 $1 $2 $_onoff($3,1,%title,0,Set Nick Kill enforce for [ $me ] :) }
    }
    elseif ($2 == nomemo) { tokenize 32 $1-2 $_onoff($3,1,%title,1,Prevent people from sending memos to you?) }
    elseif ($2 == noop) { tokenize 32 $1-2 $_onoff($3,1,%title,1,Prevent people from adding your nick to AOP/SOP lists on channels?) }
    elseif ($2 == showemail) { tokenize 32 $1-2 $_onoff($3,1,%title,0,Show your email to anybody?) }
    elseif ($2 == secure) { tokenize 32 $1-2 $_onoff($3,1,%title,0,Always ask for a password?) }
    elseif ($2 == private) { tokenize 32 $1-2 $_onoff($3,1,%title,1,Hide in List?) }
    elseif ($2 == hide) {
      if (%.services == IRC-Hispano) { 
        tokenize 32 $1-2 $_select($3,1,%title,istok email usermask quit,$null,32,email usermask quit,Hide:)
        var %h = Hide your $iif($3 == email,e-mail?,$iif($3 == usermask,last usermask?,last Quit?))
        tokenize 32 $1-3 $_onoff($3,1,%title,1,%h)
      }
    }
  }
  _ns $$1-
}
alias cs {
  if ($server == $null) {
    error.a You are not connected
    return
  }
  _network 0
  var %bot = Chanserv,%title
  if (%.network == IRC-Hispano) { %bot = CHaN }
  elseif (%.network == GalaxyNet) { %bot = Q }
  %title = %.network %bot [/cs]
  tokenize 32 $upper($_parameter($1,1,%title,1,help,Command:)) $2-
  if ($1 == help) { }
  elseif ($1 == list) {
    if (%.services == GalaxyNet) { tokenize 32 $1 $_parameter($iif($_ischan($2),#$2,$chan),1,%title,ischan,$chan(1),Channel:) }
    else { tokenize 32 $1 $_parameter($2-,1,%title,normal,$null,Search pattern:) }
  }
  elseif ($1 == gaccess) && (%.services == GalaxyNet) {  }
  elseif ($1 == users) && (%.services == GalaxyNet) {  }
  elseif ($1 == version) && (%.services == GalaxyNet) {  }
  elseif ($1 == chansup) && (%.services == GalaxyNet) { tokenize 32 $1 $_onoff($2,1,%title,0,Can your nick be used as a supporter when a user is applying for a channel with Nova ?) }
  else {
    tokenize 32 $1 $_parameter($iif($_ischan($2),#$2,$chan),1,%title,ischan,$chan(1),Channel:) $iif($_ischan($2),$3-,$2-)
    %title = %.network %bot [/cs] ( $+ $2 $+ )
    if ($3- == $null) { tokenize 32 $1-2 }
    if ($1 == identify) { tokenize 32 $1-2 $_parameterpass($iif($3 != $null,$3,$_schan(%.network,$2,pass)),1,%title,1,$null,Founder password:) }
    elseif ($1 == register) {
      tokenize 32 $1-2 $_parameterpass($3,1,%title,1,$null,Password:)
      tokenize 32 $1-3 $_parameter($4,1,%title,normal,$null,Description:)
    }
    elseif ($1 == drop) {
      if ($_not($_yesno(1,%title,1,Drop channel?))) { return }
    }
    elseif ($1 == set) {
      var %s
      if (%.services == croom) { %s = founder passwd desc url mlock ident opguard topiclock restrict }
      elseif (%.services == IRC-Hispano) { %s = founder password desc url email entrymsg topic mlock keeptopic topiclock restricted secure secureops }
      elseif (%.services == GalaxyNet) { %s = noop strictops strictmode stricttopic defmode deftopic chaninfo }
      elseif (%.services == NewNet) { %s = founder password url desc greet topic mlock keeptopic topiclock private secureops restricted secure }
      else { %s = founder passwd desc url mlock ident opguard keeptopic topiclock restrict leaveops unsecure private topiclock memo }
      tokenize 32 $1-2 $_selectedit($3,1,%title,1,$null,32,%s,Set [option]:) $4-
      if ($3 == founder) {
        if ($istok(croom IRC-Hispano NewNet,%.services,32)) { tokenize 32 $1-3 $_parameter($4,1,%title,1,$null,New founder:) }
      }
      elseif ($3 == passwd) || ($3 == password) {
        if (%.services == croom) {
          tokenize 32 $1-3 $_parameterpass($4,1,%title,1,$null,Old founder access password:)
          tokenize 32 $1-4 $_parameterpass($5,1,%title,1,$null,New founder access password:)
        }
        else { tokenize 32 $1-3 $_parameterpass($4,1,%title,1,$null,New founder access password:) }
      }
      elseif (%.services == GalaxyNet) && (($3 == noop) || ($3 == strictops) || ($3 == strictmode) || ($3 == stricttopic)) { tokenize 32 $1-3 $_onoff($4,1,%title,1, [ $3 ] ) }
      elseif (%.services == GalaxyNet) && (($3 == Defmode) || ($3 == Chaninfo)) { tokenize 32 $1-3 $_parameter($4-,1,%title,normal,$null, [ $3 ] ) }
      elseif ($3 == desc) { tokenize 32 $1-3 $_parameter($4,1,%title,normal,$null,Description:) }
      elseif ($3 == url) { tokenize 32 $1-3 $_parameter($4,1,%title,normal,$null,URL:) }
      elseif ($3 == mlock) { tokenize 32 $1-3 $_parameter($4,1,%title,normal,$iif($me ison $2,$chan($2).mode,+nt-ikl),Modelock: (sug:+nt-ikl)) }
      elseif ($3 == ident) || (($1 == secure) && (%.services == NewNet)) { tokenize 32 $1-3 $_onoff($4,1,%title,0,Ops on channel must identify with NickServ before accessing any channel functions?) }
      elseif ($3 == keeptopic) { tokenize 32 $1-3 $_onoff($4,1,%title,0,Remember topic between sessions?) }
      elseif ($3 == opguard) || ($3 == secureops) || ($3 == strictops) { tokenize 32 $1-3 $_onoff($4,1,%title,0,Only users in the userlist will be allowed to have ops on the channel?) }
      elseif ($3 == restrict) || ($3 == secure) { tokenize 32 $1-3 $_onoff($4,1,%title,1,Disallow anyone on the channel except for the founder<COMMA> or Sops/Aops?) }
      elseif ($3 == restricted) { tokenize 32 $1-3 $_onoff($4,1,%title,1,Kick non aops/sops/founder?) }
      elseif ($3 == leaveops) { tokenize 32 $1-3 $_onoff($4,1,%title,1,ChanServ will not de-op users who are the first to join the channel?) }
      elseif ($3 == unsecure) { tokenize 32 $1-3 $_onoff($4,1,%title,1,Allow founder access without identify?) }
      elseif ($3 == private) { tokenize 32 $1-3 $_onoff($4,1,%title,1, [ %bot ] will keep the channel's existence secret from those who do not explicitly know about it.?) }
      elseif ($3 == topiclock) {
        if (%.services == IRC-Hispano) { tokenize 32 $1-3 $_onoff($4,1,%title,1,Topiclock?) }
        elseif (%.services == croom) { tokenize 32 $1-3 $_onoff($4,1,%title,1,Only founder can change the topic?) }
        elseif (%.services == NewNet) { tokenize 32 $1-3 $_onoff($4,1,%title,1,Topic can only be changed with SET TOPIC?) }
        else { tokenize 32 $1-3 $_selectedit($4,1,%title,1,$null,32,FOUNDER SOP OFF,Access level required to change the channel topic) }
      }
      elseif ($3 == memo) { tokenize 32 $1-3 $_selectedit($4,1,%title,1,$null,32,AOP SOP FOUNDER NONE,Access level required to send channel memos:) }
      elseif ($3 == email) { tokenize 32 $1-3 $_parameter($4,0,%title,ismail,$null,email:) }
      elseif ($3 == entrymsg) { tokenize 32 $1-3 $_parameter($4,0,%title,normal,$null,Welcome message:) }
      elseif ($3 == topic) || ($3 == deftopic) { tokenize 32 $1-3 $_parameter($4-,0,%title,normal,$chan($2).topic,Topic:) }
      elseif ($3 == noop) { tokenize 32 $1-3 $_onoff($4,1,%title,1,Nobody may be a Channel Operator except [ %bot ] :) }
      elseif ($3 == greet) { tokenize 32 $1-3 $_onoff($4,1,%title,1,Greet users on join?) }
    }
    elseif ($1 == cycle) {  }
    elseif ($1 == forget) {  }
    elseif ($1 == reset) {  }
    elseif ($1 == info) {  }
    elseif ($1 == chaninfo) {  }
    elseif ($1 == bans) {  }
    elseif ($1 == status) {  }
    elseif ($1 == removeme) {  }
    elseif ($1 == access) {
      if ($istok(IRC-Hispano NewNet,%.services,32)) {
        tokenize 32 $1-2 $_select($3,1,%title,istok list add del,list,32,LIST ADD DEL,Access [option]:) $4-
        if ($3 == add) || ($3 == del) { tokenize 32 $1-3 $_parameter($4,1,%title,1,$null,Nick|Mask:) $5 }
        if ($3 == add) { tokenize 32 $1-4 $_parameter($5,1,%title,1,$null,Level:) }
      }
      elseif (%.services == GalaxyNet) {  }
      else { tokenize 32 $1-2 $_parameter($3,1,%title,1,$me,Check access level from:) $4- }
    }
    elseif ($1 == invite) {  }
    elseif ($1 == key) {  }
    elseif ($1 == why) { tokenize 32 $1-2 $_parameter($3,1,%title,1,$null,Find out why a certain user is being opped by [ %bot ] :) }
    elseif ($1 == count) {  }
    elseif (($1 == aop) || ($1 == avoice)) && (%.services == GalaxyNet) {
      tokenize 32 $1-2 $_parameter($3,1,%title,1,$null,Nick:)
      tokenize 32 $1-3 $_onoff($4,1,%title,0,Set [ $1 ] for [ $3 ] in [ $2 ] :)
    }
    elseif ($1 == sop) || ($1 == aop) || ($1 == vop) || ($1 == akick) {
      var %nivelt = add del list wipe $iif(%.services != croom && %.services != IRC-Hispano && $1 != akick,clean)
      tokenize 32 $upper($1) $2 $_selectedit($3,1,%title,1,$null,32,%nivelt, [ $upper($1) ] [option]:) $4-
      if ($3 == add) || ($3 == del) {
        tokenize 32 $1-3 $_parameter($4,1,%title,1,$null,Nick or mask to [ $iif($3 == add,add,remove) ] [ $1 ] )
        if ($1 == akick) && ($3 == add) && (%.services == IRC-Hispano) { tokenize 32 $1-4 $_parameter($5-,0,%title,normal,$null,Reason:<CRLF>[Optional]) }
      }
      if ($3 == wipe) {
        if ($_not($_yesno(1,%title,1,¿Wipe all [ $_nospaces($1,s?) ] ))) { return }
      }
    }
    elseif ($1 == chtopic) { tokenize 32 $1-2 $_parameter($3-,0,%title,normal,$chan($2).topic,Topic:) }
    elseif ($1 == voiceme) { }
    elseif ($1 == devoiceme) { }
    elseif ($1 == opme) { }
    elseif ($1 == deopme) { }
    elseif ($1 == voice) || ($1 == devoice) {
      if (%.services == GalaxyNet) { tokenize 32 $1-2 $_parameter($3-,1,%title,1,$iif($1 == voice,$me),Nick to [ $1 ] :) }
    }
    elseif ($1 == op) || ($1 == deop) {
      if ($istok(IRC-Hispano GalaxyNet NewNet,%.services,32)) { tokenize 32 $1-2 $_parameter($3-,1,%title,1,$iif($1 == op,$me),Nick to [ $1 ] :) }
      else { tokenize 32 $1-2 $_parameter($3-,1,%title,replace 44 32,$iif($1 == op,$me),Nick[s] to [ $1 ] :) }
    }
    elseif ($1 == mkick) {  }
    elseif ($1 == mdeop) {  }
    elseif ($1 == clear) {
      if ($istok(IRC-Hispano NewNet,%.services,32)) { tokenize 32 $1-2 $_select($3,1,%title,istok bans modes users ops voices,list,32,BANS MODES USERS OPS VOICES,Clear [option]:) }
      elseif (%.services == GalaxyNet) {  }
    }
    elseif ($1 == clearbans) {  }
    elseif ($1 == clearmodes) {  }
    elseif ($1 == clearops) {  }
    elseif ($1 == clearlist) {  }
    elseif ($1 == clearpbans) {  }
    elseif ($1 == deopnu) {  }
    elseif ($1 == kick) || ($1 == kickban) {
      if (%.services == GalaxyNet) {
        tokenize 32 $1-2 $_parameter($3,1,%title,1,$null,Nick to [ $1 ] :) $4-
        if ($4- != $null) { _recent.add kickreason 20 $replace($4-,$2,<CHAN>) }
        else { tokenize 32 $1-3 bye }
      }
    }
    elseif ($1 == ban) {
      if (%.services == GalaxyNet) { tokenize 32 $1-2 $_parameter($3,1,%title,1,$null,Nick or mask to ban:) }
    }
    elseif ($1 == unban) {
      if ($istok(Dalnet IRC-Hispano NewNet,%.services,32)) {  }
      elseif (%.services == croom) { tokenize 32 $1-2 $_parameter($3,1,%title,1,ME,Mask to unban:<CRLF>["ME" to unban yourself]) }
      elseif (%.services == GalaxyNet) { tokenize 32 $1-2 $_parameter($3,1,%title,1,$null,Nick<COMMA> mask or ban number to unban:) }
      else { tokenize 32 $1-2 $_selectedit($3,1,%title,1,ME,32,ME ALL,Unban::<CRLF>ME - yourself<CRLF>ALL - Everybody) }
    }
    elseif ($1 == pban) {
      if (%.services == GalaxyNet) {
        tokenize 32 $1-2 $_parameter($3,1,%title,1,$null,Nick or mask to perm ban:) $4-
        tokenize 32 $1-3 $_parameter($4-,1,%title,normal,$null,Perm ban Reason:)
        _recent.add banreason 20 $replace($4-,$2,<CHAN>)
      }
    }
    elseif ($1 == pbans) {  }
    elseif ($1 == unpban) {
      if (%.services == GalaxyNet) { tokenize 32 $1-2 $_parameter($3,1,%title,1,$null,Nick<COMMA> mask or permban number to unban:) }
    }
    elseif ($1 == suspend) || ($1 == unsuspend) {
      if (%.services == GalaxyNet) { tokenize 32 $1-2 $_parameter($3,1,%title,1,$null,Nick to [ $1 ] ) }
    }
    elseif ($1 == levels) {
      if ($istok(IRC-Hispano NewNet,%.services,32)) {
        var %tmp = AUTOOP AUTOVOICE AUTODEOP NOJOIN INVITE AKICK SET CLEAR UNBAN OPDEOP $iif(IRC-Hispano == %.services,ACC-LIST ACC-CHANGE MEMO) $iif(NewNet == %.services,ACCESS)
        tokenize 32 $1-2 $_select($3,1,%title,istok dis disable list reset set,$null,32,DIS SET LIST RESET,Levels [option]:) $4-
        if ($3 == reset) {
          if ($_not($_yesno(1,%title,1,Restore access levels?))) { return }
        }
        elseif ($3 == set) || ($3 == dis) || ($3 == disable) { tokenize 32 $1-3 $_select($4,1,%title,istok [ %tmp ] ,$null,32,%tmp,Option to [ $iif($3 == set,modify,disable) ] :) $5- }
        if ($3 == set) { tokenize 32 $1-4 $_parameter($5,1,%title,isnum,$null,New [ $iif($istok(autodeop nojoin,$4,32),max,min) ] level for [ $4 ] :) }
      }
    }
    elseif ($1 == add) {
      if (%.services == GalaxyNet) {
        tokenize 32 $1-2 $_parameter($3,1,%title,1,$null,Nick to add:)
        tokenize 32 $1-3 $_parameter($4,1,%title,isnum 0-499,100,Level for [ $3 ] :<CRLF>[0-499])
      }
    }
    elseif ($1 == remove) || ($1 == check) {
      if (%.services == GalaxyNet) { tokenize 32 $1-2 $_parameter($3,1,%title,1,$null,Nick to [ $1 ] :) }
    }
    elseif ($1 == chlv) {
      if (%.services == GalaxyNet) {
        tokenize 32 $1-2 $_parameter($3,1,%title,1,$null,Nick to modify level:)
        tokenize 32 $1-3 $_parameter($4,1,%title,isnum 0-499,100,Level for [ $3 ] :<CRLF>[0-499])
      }
    }
  }
  _cs $$1-
}
alias ms {
  if ($server == $null) {
    error.a You are not connected
    return
  }
  _network 0
  var %bot = Memoserv,%title
  if (%.network == IRC-Hispano) { %bot = MeMO }
  elseif (%.network == GalaxyNet) { %bot = MS }
  %title = %.network %bot [/ms]
  tokenize 32 $_parameter($1,1,%title,1,help,Command:) $2-
  if ($1 == help) { }
  elseif ($1 == list) {  }
  elseif ($1 == email) { tokenize 32 $1 $_parameter($2,0,%title,ismail,$null,e-mail:) }
  elseif ($1 == read) {
    if (%.services == IRC-Hispano) { tokenize 32 $1 $_parameter($2,1,%title,1,LAST,Read memo number:<CRLF>["LAST" to read the last memo]) }
    elseif ($istok(GalaxyNet NewNet,%.services,32)) { tokenize 32 $1 $_parameter($2,1,%title,isnum>0,$null,Read memo number:) }
    else { tokenize 32 $1 $_parameter($2,1,%title,replace 32 44,$null,Read memo[s]:<CRLF>[Separated by commas]) }
  }
  elseif ($1 == send) || ($1 == note) {
    if (%.services == GalaxyNet) { tokenize 32 note $2- }
    tokenize 32 $1 $_parameter($2,1,%title,1,$null,Send memo to:<CRLF>< Nick | #Channel >)
    tokenize 32 $1-2 $_parameter($3-,1,%title,len < 250,$null,Memo:)
  }
  elseif ($1 == sendsop) {
    tokenize 32 $1 $_parameter($iif($_ischan($2),#$2,#),1,%title,ischan,$null,Send memo to SOPs in channel:) $iif($_ischan($2),$3-,$2-)
    tokenize 32 $1-2 $_parameter($3-,1,%title,len < 250,$null,Memo:)
  }
  elseif ($1 == erase) { tokenize 32 $1 $_parameter($2,1,%title,isnum>0,$null,Erase memo number:) }
  elseif ($1 == del) { tokenize 32 $1 $_parameter($2,1,%title,1,ALL,Erase memo number: [ $iif(%.services == IRC-Hispano,<CRLF>separated by "<COMMA>" or "-") ] <CRLF>["ALL" to remove all]) }
  elseif ($1 == undel) { tokenize 32 $1 $_parameter($2,1,%title,isint,$null,Undelete memo number:) }
  elseif ($1 == purge) { }
  elseif ($1 == forward) { tokenize 32 $1 $_parameter($2,1,%title,1,$null,Nick:) }
  elseif ($1 == set) {
    if ($istok(IRC-Hispano NewNet,%.services,32)) {
      var %tmp = NOTIFY $iif(%.services == IRC-Hispano,LIMIT)
      tokenize 32 $1 $_select($2,1,%title,istok [ %tmp ] ,$null,32,%tmp,Set [option]:) $3-
      if ($2 == notify) { tokenize 32 $1-2 $_select($3,1,%title,istok on logon new off,ON,32,ON LOGON NEW OFF,Memo notify:) }
      else {
        var %l = Max nuumber of memos $iif($_ischan($3),in [ $3 ] ) :
        tokenize 32 $1-2 $iif($_ischan($3),$3) $_parameter($iif($_ischan($3),$4,$3),1,%title,isnum 0-20,20,%l)
      }
    }
  }
  _ms $$1-
}
alias _cs {
  if (*.dal.net iswm $server) { var %bot = CHANSERV,%send = .quote privmsg chanserv@services.dal.net : $+ $$1- }
  elseif (*.irc-hispano.org iswm $server) { var %bot = CHaN,%send = .quote privmsg CHaN@deep.space : $+ $$1- }
  elseif (*.galaxynet.org iswm $server) { var %bot = Q,%send = .quote privmsg Q : $+ $$1- }
  elseif (%.services == NewNet) { var %bot = CHANSERV,%send = .quote privmsg %bot : $$1- }
  else { var %bot = CHANSERV,%send = .quote chanserv $$1- }

  %send

  if ($show) {
    if ($1 == identify) { tokenize 32 $deltok($1-,$0,32) $str(*,$len($gettok($1-,-1,32))) }
    elseif ($1 == register) { tokenize 32 $1-2 $str(*,$len($3)) $4- }
    elseif ($1 == set) && (($2 == passwd) || ($2 == password)) { tokenize 32 $1-3 $str(*,$len($4)) $str(*,$len($5)) }
    lechol.a $colour(info) $^service(%bot,$1-)
  }
}
alias _ns {
  if (*.dal.net iswm $server) { var %bot = NICKSERV,%send = .quote privmsg nickserv@services.dal.net : $+ $$1- }
  elseif (*.irc-hispano.org iswm $server) { var %bot = NiCK,%send = .quote privmsg NiCK@deep.space : $+ $$1- }
  elseif (*.galaxynet.org iswm $server) { var %bot = NS,%send = .quote privmsg NS@services.galaxynet.org : $+ $$1- }
  elseif (%.services == NewNet) { var %bot = NICKSERV,%send = .quote privmsg %bot : $$1- }
  else { var %bot = NICKSERV,%send = .quote nickserv $$1- }

  %send

  if ($show) {
    if ($istok(ghost identify link recover release,$1,32)) { tokenize 32 $deltok($1-,$0,32) $str(*,$len($gettok($1-,-1,32))) }
    elseif ($1 == register) { tokenize 32 $1 $str(*,$len($2)) $3 }
    elseif ($1 == set) && ($2 == passwd) { tokenize 32 $1-2 $str(*,$len($3)) $str(*,$len($4)) }
    elseif ($1 == pass) { tokenize 32 $1 $str(*,$len($2)) $str(*,$len($3)) }
    lechol.a $colour(info) $^service(%bot,$1-)
  }
}
alias _ms {
  if (*.dal.net iswm $server) { var %bot = MEMOSERV,%send = .quote privmsg memoserv@services.dal.net : $+ $$1- }
  elseif (*.irc-hispano.org iswm $server) { var %bot = MeMO,%send = .quote privmsg MeMO@deep.space : $+ $$1- }
  elseif (*.galaxynet.org iswm $server) { var %bot = MS,%send = .quote privmsg MS : $+ $$1- }
  elseif (%.services == NewNet) { var %bot = MEMOSERV,%send = .quote privmsg %bot : $$1- }
  else { var %bot = MEMOSERV,%send = .quote memoserv $$1- }

  %send

  if ($show) { lechol.a $colour(info) $^service(%bot,$1-) }
}
alias _os {
  .quote operserv $$1-
  if ($show) { lechol.a $colour(info) $^service(OPERSERV,$$1-) }
}
alias id { ns identify $_parameterpass($1,1,Identify nick with [ $iif(*.irc-hispano.org iswm $server,NiCK,Nickserv) ] [/id],1,$_snick(%.network,$me,pass),Password:) }
alias _autoidnick {
  var %nick = $iif($newnick != $null,$newnick,$me),%item = _autoidnick_ $+ %nick,%mainnick = $_readini($_snetworkini,%.network,main_nick)
  if ($calc($hget(_aircjunk,%item) + 60) > $ctime) && ($event != connect) { return }
  hadd _aircjunk %item $ctime
  if ($_getsetup(script,_autologin)) {
    if ($_snick(%.network,%nick,pass) != $null) { .ns identify $ifmatch }
    if (%mainnick != $null) && (%nick != %mainnick) {
      if ($_snick(%.network,%mainnick,pass) != $null) { .ns identify %mainnick $ifmatch }
    }
  }
}
;
alias _services.load {
  tokenize 32 $iif($1 != $null,$1,%.network)
  if ($1 == $null) { return }
  var %b,%g,%s,%file = $_snetworkini,%sfile
  if ($ini(%file,$1)) {
    %s = $_readini(%file,$1,services)
    %b = $replace($_readini(%file,$1,bots),$chr(44),$chr(32))
    if (%s != %.services) || (%b != %.netbots) { _services.unload }
    %.services = %s
    %g = #service. $+ %s
    %sfile = script\ $+ %s $+ .mrcn
    _loadremotefile + %sfile
    if ($group(%g)) { .enable %g }
    if (%b != $null) { %.netbots = %b }
  }
  else { _services.unload }
}
alias _services.unload {
  .disable #service.*
  unset %.services %.netbots
  _dummy $findfile($_fixdir($_scriptdir),*.mrcn,0,_services.unloadfile $1-)
}
alias _services.unloadfile {
  if ($script($1-)) { .unload -rs " $+ $1- $+ " }
}
alias _network {
  if ($server == $null) {
    unset %.network
    return
  }
  if ($_getsetup(serv2net,$server) != $null) { %.network = $ifmatch }
  elseif (*.dal.net iswm $server) { %.network = DALnet }
  elseif (*.irc-hispano.org iswm $server) { %.network = IRC-Hispano }
  elseif (*.undernet.org iswm $server) { %.network = Undernet }
  elseif (*.chatnet.org iswm $server) { %.network = Chatnet }
  elseif (*.GalaxyNet.Org iswm $server) { %.network = GalaxyNet }
  elseif (*.austnet.org iswm $server) { %.network = Austnet }
  elseif (irc.terra.es == $_server) { %.network = Terra-ES }
  elseif (irc.ircII.org == $server) { %.network = OpenNET }
  elseif ($network == dalnet) || ($network == undernet) { unset %.network }
  elseif ($network != $null) || (%.network != $null) { %.network = $upper($left($ifmatch,1)) $+ $right($ifmatch,-1) }
  else { unset %.network }
  if (%.network == $null) {
    var %group = $server($server).group
    if (%group != $null) && (%group !isnum) { %.network = %group }
  }
  if (%.network == $null) && ($_not($1)) {
    if ($replace($gettok($server,$_nospaces($calc($numtok($server,46) - 1),-),46),.,_) != $null) { %.network = $ifmatch }
  }
  return %.network
}