Stealth Script — File Browser

StealthScriptv1.0 / StealthScriptv1.0 / Stealth / Programs / mircmail-server.mrc

mircmail-server.mrc — 7.27 KB — Download this file

; =================================
;     OPEN ADDON ALIASES
; =================================
on *:LOAD: {
  %load.dir = $mircdir $+ MsgServer\
  .mkdir %load.dir | .mkdir %load.dir $+ Config\ | .mkdir %load.dir $+ Msgs\
  write %load.dir $+ Config\ $+ srvConfig.txt Guest Guest
  write %load.dir $+ Msgs\ $+ srvTemplate.txt MailDaemon~Welcome To mIRC Mail!~mIRC Mail was designed for those who want a combination of memo services and e-mail. Also for those who want no spam messages and no hassle using text-based commands in IRC. mIRC Mail is the best of both worlds.~Sun 00:00:00am
}
alias msgserv { dialog -md msg.user msg.user }
alias msg.refresh {
  did -r msg.user 30,31
  %refresh.file = $findfile($mircdir,srvconfig.txt,1) | %refresh.ctr = 0 | %refresh.total = $lines(%refresh.file)
  while (%refresh.ctr < %refresh.total) {
    inc %refresh.ctr | %refresh.temp = $read -l $+ %refresh.ctr %refresh.file
    did -a msg.user 30 $gettok(%refresh.temp,1,32)
    did -a msg.user 31 $gettok(%refresh.temp,2,32)
  }
  unset %refresh.*
}
; =================================
;     USERS DIALOG CONTROL
; =================================
dialog msg.user {
  title "Manage MsgServ Users"
  size -1 -1 400 269

  button "hide", 1, 1 1 1 1, hide, cancel
  button "Run Server", 2, 119 240 80 23
  button "Halt Server", 3, 202 240 80 23, disable

  box "", 4, 5 227 390 8

  list 30, 5 29 120 190                                                           ; username list
  list 31, 122 29 120 190                                                      ; password list

  edit "", 32, 5 207 238 22, read                                       ; status box
  edit "", 33, 250 46 140 23                                                ; new username box
  edit "", 34, 250 92 140 23                                                ; username password box 

  box "", 35, 7 3 117 26                                                      ; username header box
  box "", 36, 122 3 119 26                                                 ; password header box

  text "User Name", 37, 5 13 120 16, center
  text "Pass Code", 38, 122 13 120 16, center
  text "User Name", 39, 250 31 140 16, center
  text "Password", 40, 250 77 140 16, center

  button "Add User", 41, 250 155 140 23
  button "Delete User", 42, 250 180 140 23
}
on *:DIALOG:msg.user:INIT:*: { msg.refresh }
on *:DIALOG:msg.user:SCLICK:*: {
  if ($did == 1) {
    if ($?!="All message server connections will be lost. $crlf Continue?") { sockclose srv.* }
    else { dialog -x msg.user | dialog -m msg.user msg.user | did -b msg.user 2 | did -e msg.user 3 }
  }
  elseif ($did == 2) { sockclose srv.* | socklisten srv.listen 55 | did -b msg.user 2 | did -e msg.user 3 }
  elseif ($did == 3) { sockclose srv.* | did -b msg.user 3 | did -e msg.user 2 }
  elseif ($did isnum 30-31) {
    did -c msg.user 30,31 $did($did,1).sel
    did -ra msg.user 33 $did(30,1).seltext
    did -ra msg.user 34 $did(31,1).seltext
    did -ra msg.user 32 $did(30,1).seltext is $iif( [ $sock(srv. [ $+ [ $did(30,1).seltext ] ] ) ] != $null,Online,Offline)
  }
  elseif ($did == 41) {
    if (($did(33).text == $null) || ($did(34).text == $null)) { did -ra msg.user 32 Invalid User Parameters... | halt }
    elseif ($read -s $+ $did(33).text $findfile($mircdir,srvconfig.txt,1) != $null) { did -ra msg.user 32 User $did(33).text already exists on system... | halt }
    else {
      did -ra msg.user 32 User $did(33).text added to system...
      %add.template = $findfile($mircdir,srvtemplate.txt,1) | %add.msgfile = $nofile($findfile($mircdir,srvtemplate.txt,1)) $+ srv $+ $did(33).text $+ .txt
      %add.cfgfile = $findfile($mircdir,srvconfig.txt,1) | .copy -o %add.template %add.msgfile
      write %add.cfgfile $did(33).text $did(34).text | did -r msg.user 33,34 | msg.refresh | unset %add.*
  } }
  elseif ($did == 42) {
    if (($did(30,1).sel == $null) || ($did(31,1).sel == $null)) { did -ra msg.user 32 Select a user to delete... | halt }
    else {
      did -ra msg.user 32 User $did(30,1).seltext purged from system...
      .remove $nofile($findfile($mircdir,srvtemplate.txt,1)) $+ srv $+ $did(30,1).seltext $+ .txt
      write -ds $+ $did(30,1).seltext $findfile($mircdir,srvconfig.txt,1)
      sockclose srv. $+ $did(30,1).seltext
      did -r msg.user 33,34 | msg.refresh
  } }
}
; =================================
;     ADDON SOCKET EVENTS
; =================================
on *:SOCKLISTEN:srv.listen: {
  %listen.ctr = 0
  while ($sock(srv.tmp $+ [ %listen.ctr ] ) != $null) { inc %listen.ctr }
  sockaccept srv.tmp $+ %listen.ctr | unset %listen.ctr
}
on *:SOCKREAD:srv.tmp*: {
  sockread %srv.sockdata
  goto $gettok(%srv.sockdata,1,32)
  :000
  %srv.cfgfile = $findfile($mircdir,srvconfig.txt,1) | %srv.pass = $read -s $+ $gettok(%srv.sockdata,2,32) %srv.cfgfile
  if (%srv.pass == $gettok(%srv.sockdata,3,32)) { sockwrite -n $sockname 001 | sockrename $sockname srv. $+  $gettok(%srv.sockdata,2,32) }
  else { sockwrite -n $sockname 000 | sockclose $sockname }
  unset %srv.*
}
on *:SOCKREAD:srv.*: {
  sockread %srv2.sockdata
  goto $gettok(%srv2.sockdata,1,32)
  :001
  %srv2.tonick = $gettok(%srv2.sockdata,2,32) | %srv2.message = $gettok(%srv2.sockdata,3-,32)
  %srv2.cfgfile = $findfile($mircdir,srvconfig.txt,1) | %srv2.readdata = $read -s $+ %srv2.tonick %srv2.cfgfile
  %srv2.exists = $iif(%srv2.readdata != $null,$true,$false)
  %srv2.inboxfile = $nofile($findfile($mircdir,srvtemplate.txt,1)) $+ srv $+ %srv2.tonick $+ .txt | %srv2.fromnick = $gettok($sockname,2,46)
  %srv2.frominbox = $nofile($findfile($mircdir,srvtemplate.txt,1)) $+ srv $+ %srv2.fromnick $+ .txt
  if (%srv2.exists) {
    write %srv2.inboxfile %srv2.fromnick $+ ~ $+ %srv2.message $+ ~ $+ $date(ddd) $gmt(h:nn:sstt) | sockwrite -n $sockname 005
    if ($sock( [ srv. [ $+ [ %srv2.tonick ] ] ] ) !== $null) { sockwrite -n srv. $+ %srv2.tonick 006 %srv2.fromnick $+ ~ $+ %srv2.message $+ ~ $+ $date(ddd) $gmt(h:nn:sstt) }
  }
  else {
    write %srv2.frominbox MailDaemon~Message Not Sent~Could not send your message to %srv2.tonick $+ . User does not exist on this system...~ $+ $date(ddd) $gmt(h:nn:sstt)
    sockwrite -n $sockname 006 MailDaemon~Message Not Sent~Could not send your message to %srv2.tonick $+ . User does not exist on this system...~ $+ $date(ddd) $gmt(h:nn:sstt)
  }
  goto end
  :002
  %srv2.fromnick = $gettok($sockname,2,46) | %srv2.frominbox = $nofile($findfile($mircdir,srvtemplate.txt,1)) $+ srv $+ %srv2.fromnick $+ .txt
  %srv2.msgnum = $gettok(%srv2.sockdata,2,32) | %srv2.message = $read -l $+ %srv2.msgnum %srv2.frominbox
  sockwrite -n $sockname 003 %srv2.message
  goto end
  :003
  %srv2.fromnick = $gettok($sockname,2,46) | %srv2.frominbox = $nofile($findfile($mircdir,srvtemplate.txt,1)) $+ srv $+ %srv2.fromnick $+ .txt
  %srv2.ctr = 0 | %srv2.total = $lines(%srv2.frominbox)
  while (%srv2.ctr < %srv2.total) {
    inc %srv2.ctr | %srv2.temp = $read -l $+ %srv2.ctr %srv2.frominbox
    sockwrite -n $sockname 002 %srv2.temp
  }
  goto end
  :004
  %srv2.fromnick = $gettok($sockname,2,46) | %srv2.frominbox = $nofile($findfile($mircdir,srvtemplate.txt,1)) $+ srv $+ %srv2.fromnick $+ .txt
  %srv2.msgnum = $gettok(%srv2.sockdata,2,32)
  write -dl $+ %srv2.msgnum %srv2.frominbox | sockwrite -n $sockname 004
  :end
  ;  unset %srv2.*
}