All pastes #2056971 Raw Edit

Mine

public text v1 · immutable
#2056971 ·published 2011-05-11 19:17 UTC
rendered paste body
; ––––––––––––––––––––––––––––––––––––––––
; NNScript by ESNation v4.22 - away system - coded by greeny & mute
; Don't edit anything in here unless you REALLY know what you're doing!
; ––––––––––––––––––––––––––––––––––––––––
raw 305:*:{
  var %t = You are no longer marked as being away $iif($awaytime,after $thmhl($sduration($v1).nosec)) $iif($awaymsg,as $thmhl($v1)) on $thmhl($curconserv) $+ .
  thmecho $asecho %t
  if ($window($specialcidwin(Awaylog))) { thmecho $v1 %t }
  if ($dialog(settings)) {
    did -ra settings 196 Back
    did -b settings 198
  }
  unset %away.oldnick. $+ $curconserv
  haltdef
}
raw 306:*:{
  var %t = You have been marked as being away $iif($awaymsg,as $thmhl($v1)) on $thmhl($curconserv) $+ .
  thmecho $asecho %t
  if ($window($specialcidwin(Awaylog))) { thmecho $v1 %t }
  if ($dialog(settings)) {
    did -ra settings 196 Away: $shorten(20,$awaymsg)
    did -e settings 198
  }
  inc %stat.away
  haltdef
}
alias nick.def {
  var %n
  if (%nick.def. [ $+ [ $network ] ]) { %n = $v1 }
  elseif (%nick.def) { %n = $v1 }
  if ($isid) { return %n }
  else {
    if (%n) { nick $v1 }
    else { thmerror -a No default nick found. }
  }
}
alias nick.away {
  var %n
  if (%nick.away. [ $+ [ $network ] ]) { %n = $v1 }
  elseif (%nick.away) { %n = $v1 }
  if ($isid) { return %n }
  else {
    if (%n) { nick $v1 }
    else { thmerror -a No away nick found. }
  }
}
alias aw.chksel {
  if ($did(154).sel) {
    tokenize 32 $hget(awaypreset,$replace($did(154).seltext,$chr(32),_))
    did -ra $dname 187 $1
    did -ra $dname 186 $2-
    did -e $dname 186,187,179,175,197
  }
  else {
    did -r $dname 186,187
    did -b $dname 186,187,179,175,197
  }
}
alias awpreset.clear {
  if ($ydialog(Do you really want to remove all away presets?)) {
    hdel -w awaypreset *
    did -r $dname 154,186,187
    did -b $dname 186,187,179,180,175
  }
}
alias awpreset.remsel {
  while ($did(154).sel) {
    hdel awaypreset $replace($did(154).seltext,$chr(32),_)
    did -d $dname 154 $did(154).sel
  }
  hsave -ob awaypreset scripts\tables\awaypreset.tbl
  did -r $dname 186,187
  did -b $dname 186,187,179,175
  if (!$did(154).lines) { did -b $dname 180 }
}
alias awpreset.add {
  var %r = $$eddialog(Enter a name for a new away preset!),%n = $replace(%r,$chr(32),_)
  if ($didwm(154,%r)) { errdialog an away preset with the name $qt(%r) already exists! }
  else {
    hadd awaypreset %n $iif(%nick.away,$v1,$chkme) %r
    hsave -ob awaypreset scripts\tables\awaypreset.tbl
    did -ac $dname 154 %r
    did -e $dname 180
    aw.chksel
  }
}
alias awpreset.edit {
  var %r = $$eddialog(Enter a new name for the away preset $+(",$did(154).seltext,"!),$did(154).seltext),%n = $replace(%r,$chr(32),_),%d = $replace($did(154).seltext,$chr(32),_)
  if ($didwm(154,%r)) { errdialog an away preset with the name $qt(%r) already exists! }
  else {
    hadd awaypreset %n $hget(awaypreset,%d)
    hdel awaypreset %d
    hsave -ob awaypreset scripts\tables\awaypreset.tbl
    did -oc $dname 154 $did(154).sel %r
    did -e $dname 186,187,179,175
  }
}
dialog idleaway {
  title "Auto-away"
  size -1 -1 240 120
  option pixels
  icon scripts\pics\nntray.ico
  text "Warning:", 1, 6 6 46 16
  text "", 2, 54 6 180 54
  text "", 3, 54 64 126 16
  button "&Cancel away", 5, 156 92 80 24, cancel
  button "&Go away now", 4, 70 92 80 24, ok
  box "", 6, -2 78 244 8
}
on *:dialog:idleaway:*:*:{
  if ($devent == init) {
    did -a $dname 2 you have chosen to go auto-away after $calc(%auto.awaytime /60) minutes of idling. If you don't press cancel within the next 20 seconds, you will be set away.
    did -a $dname 3 20 seconds remaining...
    .timeridleaway 20 1 aw.idlinc
  }
  elseif ($devent == sclick) {
    if ($did == 4) { aw -i }
    elseif ($did == 5) { scon -at1 resetidle }
  }
  elseif ($devent == close) { .timeridleaway off }
}
alias checkidle {
  if ($dialog(idleaway)) { return }
  var %x = 0,%t = 0,%z = 1
  while ($scon(%z)) {
    scon %z
    if ($status == connected) {
      inc %t
      if ($idle < %auto.awaytime) || ($away) { return }
    }
    inc %z
  }
  scon -r
  if (%away.auto.warn) { nndlg -mo idleaway }
  else { aw -i }
}
alias aw.idlinc {
  if ($dialog(idleaway)) {
    var %x = $calc($wd($did(idleaway,3),1) -1)
    if (!%x) {
      dialog -x idleaway
      aw -i
    }
    else { did -ra idleaway 3 %x seconds remaining... }
  }
  else { .timeridleaway off }
}
alias sa { .aw $1- }
alias saw { .aw $1- }
alias saway { .aw $1- }
alias a { aw $1- }
alias aw {
  if ($1- != $null) {
    var %i = $scid(0),%n,%r,%t
    while (%i) {
      scid $scon(%i)
      if ($status == connected) {
        if ($1 == -n) { var %n = $2,%t = $3- }
        else { var %n = $iif($nick.away,$v1,$me),%t = $1- }
        if ($hget(awaypreset,$replace(%t,$chr(32),_))) { var %n = $wd($v1,1),%t = $wd($v1,2-) }
        if ($1 == -i) { var %t = auto-away after $sduration(%auto.awaytime).nosec idle,%r = is now %t }
        elseif (%t) { %r = is now away: %t }
        else { %r = is now away! }
        if (!%away.oldnick. [ $+ [ $curconserv ] ]) { set %away.oldnick. $+ $curconserv $me }
        !away %t $iif(%away.atime,$nbr(since $asctime(%timeformat)))
        if ($show) {
          %n = $replace(%n,<me>,$me,<back>,$nick.def,<away>,$nick.away)
          if (%n) && (%n !=== $me) { nick %n }
          if ($1 != -i) || (!%away.auto.nomsg) { aw.domsgs %r }
        }
        else { %n = $me }
      }
      dec %i
    }
    set %away.status $ctime $iif($1 == -i,i,-) %n %t
  }
  else { setup -c Awaysystem|Presets }
}
alias sre { .back }
alias sback { .back }
alias re { back }
alias back {
  scon -at1 resetidle
  tokenize 32 %away.status
  var %i = $scid(0),%t = $iif($calc($ctime - $1) isnum 0-31536000,$v1,0),%r
  if ($4-) { %r = is back from: $4- $iif(%t,$nbr(been away for $sduration(%t).nosec)) }
  elseif ($1) { %r = is back! $iif(%t,$nbr(been away for $sduration(%t).nosec)) }
  else { %r = is back! }
  while (%i) {
    scid $scon(%i)
    if ($away) {
      var %t = 1,%n
      !away
      if ($show) {
        if (%away.useold) && (%away.oldnick. [ $+ [ $curconserv ] ]) { %n = $v1 }
        else { %n = $nick.def }
        if (%n) && (%n !=== $me) { nick %n }
        if ($2 != i) || (!%away.auto.nomsg) { aw.domsgs %r }
      }
      else { %n = $me }
    }
    dec %i
  }
  if (!%t) { thmerror -a You are not away! }
  if (%awaypager.enabled) {
    if ($isfile(scripts\txt\awpages.txt)) {
      .fopen pager scripts\txt\awpages.txt
      while (!$feof) {
        if (0 * iswm $fread(pager)) {
          thmecho -a You have unread away pages! Type $thmhl(/pager) to look at them now.
          break
        }
      }
      .fclose pager
    }
  }
  unset %away.status %away.oldnick.* %aw.reminded.*
}
alias aw.domsgs {
  .timerawmsg.*.* off
  if (!%away.nomsg) {
    if (%away.pubmsg == 1) { if ($active != Status Window) && (@* !iswm $active) && ($cid == $activecid) && (!$istok(%away.ad.excl,$active,44)) { describe $active $1- } }
    else {
      if (%away.ignorechans) && (%away.ad.excl) {
        var %c = $chan(0),%q = $query(0),%f = 0
        while (%c) {
          if (!$istok(%away.ad.excl,$chan(%c),44)) && ($me ison $chan(%c)) {
            $+(.timerawmsg.,$cid,.,$chan(%c)) 1 %f if ($chan( $+ %c $+ )) $chr(123) describe $!v1 $1- $chr(125)
            inc %f 2
          }
          dec %c
        }
        if (%away.ad.queries) {
          while (%q) {
            if (!$istok(%away.ad.excl,$query(%q),44)) {
              $+(.timerawmsg.,$cid,.,$query(%q)) 1 %f if ($query( $+ %q $+ )) $chr(123) describe $!v1 $1- $chr(125)
              inc %f 2
            }
            dec %q
          }
        }
      }
      else {
        if ($chan(0)) { ame $1- }
        if (%away.ad.queries) && ($query(0)) { qme $1- }
      }
    }
  }
}
alias aw.chkhl {
  if (%away.remind) && ($away) && (!%aw.reminded. [ $+ [ $cid ] $+ ] . [ $+ [ $nick ] ]) && (!%aw.remindflood) {
    set -u3600 $+(%,aw.reminded.,$cid,.,$nick) 1
    set -u4 %aw.remindflood 1
    .notice $nick I have been away for $duration($awaytime) $+ : $awaymsg (one-time response to highlight)
  }
}
menu @awaylog[*] {
  $style(2) $+([,$shorten(15,$active),]):return
  -
  Clear:clear $active
  Close:close -@ $active
}
alias away.chklog {
  if ($away) && (%away.log) && ((($prop == event) && (%away.log.events)) || (((%away.hllog) && ($isachl($1-))) || ((%away.log.trigger) && ($regex(awlog,$1-,%away.log.trigger))))) {
    if (!$window($specialcidwin(Awaylog))) {
      window -nk0 $specialcidwin(Awaylog)
      thmecho $specialcidwin(Awaylog) Away log window opened on $thmhl($longtime)
      thmecho $specialcidwin(Awaylog) You are currently marked away as $thmhl($awaymsg)
      echo $specialcidwin(Awaylog) 
    }
    return 1
  }
}
ctcp *:page:?:{
  if (%awaypager.enabled) {
    if ($away) {
      write -il1 scripts\txt\awpages.txt 0 $ctime $iif($ial($nick),$v1,$nick) $strip($2-)
      if (!%pagerflood. [ $+ [ $cid ] ]) { .notice $nick Thanks for your page! }
    }
    elseif (!%pagerflood. [ $+ [ $cid ] ]) { .notice $nick I am not away... }
    set -u4 %pagerflood. $+ $cid 1
  }
}
alias pager { nndlg -m awaypager }
dialog awaypager {
  title "Away pager [/pager]"
  size -1 -1 396 224
  option pixels
  icon scripts\pics\nntray.ico
  list 1, 12 18 138 164, size
  box "Choose page", 2, 4 2 154 188
  box "Page info", 3, 166 2 226 188
  text "From", 5, 176 22 28 16
  edit "Select a page!", 8, 214 18 170 22, read autohs
  text "Rcvd.", 9, 176 44 30 16
  edit "n/a", 10, 214 40 170 22, read autohs
  text "At", 12, 176 66 18 16
  edit "n/a", 13, 214 62 170 22, read autohs
  edit "n/a", 15, 214 84 170 98, read multi return vsbar
  text "Text", 16, 176 88 28 16
  button "&Close", 4, 312 196 80 24, ok
  menu "&File", 14
  item "&Close", 18, 14
  menu "&Pager", 17
  item "&Refresh pages", 19, 17
  item break, 20, 17
  item "R&emove selected pages", 21, 17
  item "&Clear pages", 22, 17
}
on *:dialog:awaypager:*:*:{
  if ($devent == init) {
    mdx SetControlMDX $dname 1 TreeView nohscroll haslines hasbuttons showsel > $mdxfile(views)
    aw.loadpages
  }
  elseif ($devent == sclick) {
    if ($did == 1) {
      tokenize 32 $did($did,1)
      if (slclick select * * * * iswm $1-) {
        did -i $dname 1 1 cb root $4-5
        var %t = $did($did,$6)
        did -i $dname 1 1 replaceitem $6 $puttok($puttok(%t,+s,1,32),Read,6,9)
        set %away.curpage $mid($gettok($gettok(%t,3,9),1,13),2)
        tokenize 32 $read(scripts\txt\awpages.txt,n,%away.curpage)
        did -ra $dname 8 $3
        did -ra $dname 10 $asctime($2,%dateformat.long)
        did -ra $dname 13 $asctime($2,%timeformat.short)
        did -ra $dname 15 $4-
        did -c $dname 8,10,13,15 1
        if (!$1) { write -l $+ %away.curpage scripts\txt\awpages.txt $puttok($1-,1,1,32) }
        did -e $dname 21
      }
      elseif (slclick select * * iswm $1-) {
        unset %away.curpage
        did -b $dname 21
        did -ra $dname 8 Select a page!
        did -ra $dname 10,13,15 n/a
      }
    }
  }
  elseif ($devent == menu) {
    if ($did == 19) { aw.loadpages }
    elseif ($did == 22) {
      if ($ydialog(Do you really want to remove all away pages?)) {
        write -c scripts\txt\awpages.txt
        aw.loadpages
      }
    }
    elseif ($did == 21) {
      write -dl $+ %away.curpage scripts\txt\awpages.txt
      aw.loadpages
    }
    elseif ($did == 18) { dialog -c $dname }
  }
  elseif ($devent == close) { unset %away.curpage }
}
alias aw.loadpages {
  unset %away.curpage
  did -b awaypager 21
  var %d,%t,%a,%l = 1,%z
  did -r awaypager 1
  did -i awaypager 1 1 cb root
  did -a awaypager 1 +eb 1 1 0 0 0 Pages
  did -i awaypager 1 1 cb last
  if ($isfile(scripts\txt\awpages.txt)) {
    .fopen pages scripts\txt\awpages.txt
    while (!$feof) {
      tokenize 32 $fread(pages)
      if ($regex($1-,/^0|1 \d+ .+ .+$/)) {
        %t = $asctime($2,%dateformat)
        if (%d != %t) {
          if (%a) { did -i awaypager 1 1 cb up }
          %z = 1
          did -a awaypager 1 +e 1 1 0 0 0 %t
          did -i awaypager 1 1 cb last
        }
        var %d = %t,%a = 1
        did -a awaypager 1 $iif($1,+,+b) 1 1 0 0 0 $+($gettok($3,1,33),	Page:	#,%l,$crlf,From:	,$3,$crlf,Rcvd:	,$asctime($2,%timeformat),$crlf,Status:	,$iif($1,Read,Unread))
      }
      inc %l
    }
    .fclose pages
  }
  if (!%z) {
    did -b awaypager 22
    did -a awaypager 1 + 1 1 0 0 0 No pages received.
  }
  did -ra awaypager 8 Select a page!
  did -ra awaypager 10,13,15 n/a
}
; ––––––––––––––––––––––––––––––––––––––––
; End of file
; ––––––––––––––––––––––––––––––––––––––––