All pastes #991621 Raw Edit

away script

public text v1 · immutable
#991621 ·published 2008-04-21 05:22 UTC
rendered paste body
alias -l c1 { return $+($chr(3),$iif($readini(away.ini,colors,1),$v1,14),$1-) }
alias -l c2 { return $+($chr(3),$iif($readini(away.ini,colors,2),$v1,13),$1-) }
alias -l c3 { return $+($chr(3),01,$1-) }
alias gone {
  .tokenize 32 $iif($1,$1-,No reason)
  if ($readini(away.ini,SetAway,reason)) { .echo -a $c2(>>>) $c3([ Error ]: You are already set as away.) }
  else {
    .away $c1(I am away) $+($chr(2),::,$chr(2)) $c1(Reason:) $c2($1-) $+($chr(2),::,$chr(2)) $c1(Left at:) $c2($time)
    .writeini -n away.ini SetAway time $ctime
    .writeini -n away.ini SetAway reason $1-
    .writeini -n away.ini SetAway me $me
    .writeini -a away.ini SetAway left $time
    scon -a amsg $c1(~>) $+($c1,$chr(91),$c2,$chr(32),AWAY,$chr(32),$c1,$chr(93)) $+($chr(31),I,$chr(31)) $c1(am now away.) $+($chr(2),$c2,::,$chr(2)) $+($c1,$chr(31),R,$chr(31),eason:) $c2($1-) $+($chr(2),$c2,::,$chr(2)) $+($c1,$chr(31),L,$chr(31),eft at:) $c2($time)
    if ($istok(ON,$readini(away.ini,nick,ccnick),32)) { scon -a nick $iif($readini(away.ini,nick,cnick),$v1,$+($mnick,$chr(124),AWAY)) }
  }
}
alias back {
  if (!$readini(away.ini,SetAway,reason)) { .echo -a $c2(>>>) $c3([ Error ]: You are already set as back.) }
  else {
    .away
    scon -a amsg $c1(~>) $+($c1,$chr(91),$c2,$chr(32),BACK,$chr(32),$c1,$chr(93)) $+($chr(31),I,$chr(31)) $c1(am now back.) $+($chr(2),$c2,::,$chr(2)) $+($c1,$chr(31),B,$chr(31),ack from:) $c2($readini(away.ini,SetAway,reason)) $+($chr(2),$c2,::,$chr(2)) $+($c1,$chr(31),I,$chr(31)) $c1(was gone for:) $c2($duration($calc($ctime - $readini(away.ini,SetAway,time)),2))
    if ($istok(ON,$readini(away.ini,nick,ccnick),32)) { scon -a nick $iif($readini(away.ini,SetAway,me),$v1,$mnick) }
    .remini Away.ini SetAway | .remini away.ini DonePublic | .remini away.ini DonePM | .remini away.ini DoneME
  }
}
on *:LOAD: { echo -a $c2(>>>) $c3([ Load ]: You just loaded $remove($script,$scriptdir) - Away script v1.0 by Terror_nisse.) }
on *:UNLOAD: { echo -a $c2(>>>) $c3([ Unload ]: You just unloaded $remove($script,$scriptdir) - Away script v1.0 by Terror_nisse.) }
menu * {
  .-
  Away by Terror_nisse
  .Main dialog:/dialog -dm away away
  .-
  .$iif($away,$style(2)) Set Away:/dialog -dm Awayd Awayd
  .$iif(!$away,$style(2)) Set Back:/back
}
dialog away {
  title "Away Script v1.0 by Terror_nisse"
  size -1 -1 135 165
  option dbu
  box "Away/Back", 1, 3 3 128 37
  button "Set Away", 2, 6 11 60 25, ok
  button "Set Back", 3, 68 11 60 25, ok
  box "When away...", 4, 3 40 128 105
  check "Use highlights", 5, 10 51 44 7
  box "Highlight on:", 6, 6 60 122 28
  check "Public highlight", 7, 10 70 46 7
  check "Private message", 8, 10 78 48 7
  check "/me highlight", 9, 65 70 40 7
  box "Nick to:", 10, 6 88 122 24
  check "Change nick", 11, 65 51 44 7
  edit "", 12, 10 97 114 11, autohs
  box "Highlight nicks:", 13, 6 112 122 30
  edit "", 14, 10 121 114 11, autohs
  text "NOTE: Seperate nicks by comma: nick,nick,nick", 15, 10 133 150 8
  button "OK", 16, 11 149 37 12, default ok
  button "Cancel", 17, 49 149 37 12, cancel
  button "Save", 18, 87 149 37 12
}
dialog AwayD {
  title "Enter a away message"
  size -1 -1 180 45
  option dbu
  box "Away message", 1, 3 3 174 23
  edit "", 2, 6 12 168 11, autohs
  button "OK", 3, 43 28 37 12, default ok
  button "Cancel", 4, 83 28 37 12, cancel
}
on *:dialog:away:sclick:2:{ .dialog -dm AwayD AwayD }
on *:dialog:away:sclick:3:{ .back }
on *:dialog:AwayD:sclick:3:{ .gone $iif($did(2),$v1,No reason) }
on *:dialog:away:init:*: {
  if ($istok($false,$exists(away.ini),32)) {
    .writeini -n away.ini highlight highlight on
    .writeini -n away.ini highlight pm on
    .writeini -n away.ini highlight public on
    .writeini -n away.ini highlight me on
    .writeini -n away.ini nick ccnick on
    .writeini -n away.ini nick cnick $+($mnick,$chr(124),Away)
    .writeini -n away.ini highlight nicks $+($mnick,$chr(44),$anick)
  }
  if (!$readini(away.ini,nick,ccnick)) { .did -b away 12 }
  if ($away) { .did -b away 2 }
  else { .did -b away 3 }
  .did -a away 12 $readini(away.ini,nick,cnick)
  .did -a away 14 $readini(away.ini,highlight,nicks)
  if ($istok(ON,$readini(away.ini,highlight,highlight),32)) { .did -c away 5 }
  else { .did -b away 7-9 | .did -b away 14 }
  if ($istok(ON,$readini(away.ini,nick,ccnick),32)) { .did -c away 11 }
  if ($istok(ON,$readini(away.ini,highlight,public),32)) { .did -c away 7 }
  if ($istok(ON,$readini(away.ini,highlight,pm),32)) { .did -c away 8 }
  if ($istok(ON,$readini(away.ini,highlight,me),32)) { .did -c away 9 }
}
on *:dialog:away:sclick:5:{
  if ($did(5).state) {
    .did -e away 7-9
    .did -e away 14
    .writeini away.ini highlight highlight on
  }
  elseif (!$did(5).state) {
    .did -b away 7-9
    .did -b away 14
    .remini away.ini highlight highlight
  }
}
on *:dialog:away:sclick:11:{
  if ($did(11).state) {
    .did -e away 12
    .writeini away.ini nick ccnick on
  }
  elseif (!$did(11).state) {
    .did -b away 12
    .remini away.ini nick ccnick
  }
}
on *:dialog:away:sclick:7:{
  if ($did(7).state) { .writeini away.ini highlight public on }
  elseif (!$did(7).state) { .remini away.ini highlight public }
}
on *:dialog:away:sclick:8:{
  if ($did(8).state) { .writeini away.ini highlight pm on }
  elseif (!$did(8).state) { .remini away.ini highlight pm }
}
on *:dialog:away:sclick:9:{
  if ($did(9).state) { .writeini away.ini highlight me on }
  elseif (!$did(9).state) { .remini away.ini highlight me }
}
on *:dialog:away:sclick:16-18:{
  .remove highlight.txt
  .writeini -n away.ini nick cnick $did(12)
  .writeini -n away.ini highlight nicks $did(14)
  .var %x = 1
  while (%x <= $numtok($did(14),44)) {
    .write highlight.txt $gettok($did(14),%x,44)
    .inc %x
  }
}
on *:TEXT:*:#:{
  if ($istok(ON,$readini(away.ini,highlight,public),32) && $away) {
    .fopen temphl highlight.txt | if (!$ferr) { while (!$feof) { if ($fread(temphl) isin $1-) {
          if ($readini(away.ini,DonePublic,$address($nick,3))) {
            if (!$window(away)) {
              .window @away
            }
            .aline -a @away $+($chr(91),$asctime(hh:nn),$chr(93)) $+($chr(60),$nick,$chr(62)) $1-
          }
          else {
            .notice $nick I am currently away $+($chr(2),::,$chr(2)) Reason: $+($chr(2),$readini(away.ini,SetAway,reason),$chr(2)) $+($chr(2),::,$chr(2)) Left at: $+($chr(2),$readini(away.ini,SetAway,left),$chr(2)) $+($chr(2),::,$chr(2)) Time gone: $+($chr(2),$duration($calc($ctime - $readini(away.ini,SetAway,time)),2),$chr(2)) $+($chr(2),::,$chr(2)) One time respond to highlight.
            .writeini -n away.ini DonePublic $address($nick,3) done
            if (!$window(away)) {
              .window @away
            }
            .aline -a @away $+($chr(91),$asctime(hh:nn),$chr(93)) $+($chr(60),$nick,$chr(62)) $1-
            break
          }
        }
      }
      .fclose temphl
    }
  }
}

on *:TEXT:*:?:{
  if ($istok(ON,$readini(away.ini,highlight,pm),32) && $away) {
    if ($readini(away.ini,DonePm,$address($nick,3))) {
      if (!$window(away)) {
        .window @away
      }
      .aline -a @away $+($chr(91),$asctime(hh:nn),$chr(32),PM,$chr(93)) $+($chr(60),$nick,$chr(62)) $1-
    }
    else {
      .msg $nick I am currently away $+($chr(2),::,$chr(2)) Reason: $+($chr(2),$readini(away.ini,SetAway,reason),$chr(2)) $+($chr(2),::,$chr(2)) Left at: $+($chr(2),$readini(away.ini,SetAway,left),$chr(2)) $+($chr(2),::,$chr(2)) Time gone: $+($chr(2),$duration($calc($ctime - $readini(away.ini,SetAway,time)),2),$chr(2)) $+($chr(2),::,$chr(2)) One time respond to private message.
      .writeini -n away.ini DonePm $address($nick,3) done
      if (!$window(away)) {
        .window @away
      }
      .aline -a @away $+($chr(91),$asctime(hh:nn),$chr(32),PM,$chr(93)) $+($chr(60),$nick,$chr(62)) $1-
    }
  }
}

on *:ACTION:*:?:{
  if ($istok(ON,$readini(away.ini,highlight,pm),32) && $away) {
    if ($readini(away.ini,DonePm,$address($nick,3))) {
      if (!$window(away)) {
        .window @away
      }
      .aline -a @away $+($chr(91),$asctime(hh:nn),$chr(32),PM,$chr(93)) $+($chr(3),06,$chr(42),$chr(32),$nick) $1-
    }
    else {
      .msg $nick I am currently away $+($chr(2),::,$chr(2)) Reason: $+($chr(2),$readini(away.ini,SetAway,reason),$chr(2)) $+($chr(2),::,$chr(2)) Left at: $+($chr(2),$readini(away.ini,SetAway,left),$chr(2)) $+($chr(2),::,$chr(2)) Time gone: $+($chr(2),$duration($calc($ctime - $readini(away.ini,SetAway,time)),2),$chr(2)) $+($chr(2),::,$chr(2)) One time respond to private message.
      .writeini -n away.ini DonePm $address($nick,3) done
      if (!$window(away)) {
        .window @away
      }
      .aline -a @away $+($chr(91),$asctime(hh:nn),$chr(32),PM,$chr(93)) $+($chr(3),06,$chr(42),$chr(32),$nick) $1-
    }
  }
}
on *:ACTION:*:#:{
  if ($istok(ON,$readini(away.ini,highlight,me),32) && $away) {
    .fopen temphl highlight.txt | if (!$ferr) { while (!$feof) { if ($fread(temphl) isin $1-) {
          if ($readini(away.ini,DoneMe,$address($nick,3))) {
            if (!$window(away)) {
              .window @away
            }
            .aline -a @away $+($chr(91),$asctime(hh:nn),$chr(93)) $+($chr(3),06,$chr(42),$chr(32),$nick) $1-
          }
          else {
            .notice $nick I am currently away $+($chr(2),::,$chr(2)) Reason: $+($chr(2),$readini(away.ini,SetAway,reason),$chr(2)) $+($chr(2),::,$chr(2)) Left at: $+($chr(2),$readini(away.ini,SetAway,left),$chr(2)) $+($chr(2),::,$chr(2)) Time gone: $+($chr(2),$duration($calc($ctime - $readini(away.ini,SetAway,time)),2),$chr(2)) $+($chr(2),::,$chr(2)) One time respond to description highlight.
            .writeini -n away.ini DoneMe $address($nick,3) done
            if (!$window(away)) {
              .window @away
            }
            .aline -a @away $+($chr(91),$asctime(hh:nn),$chr(93)) $+($chr(3),06,$chr(42),$chr(32),$nick) $1-
            break
          }
        }
      }
      .fclose temphl
    }
  }
}