Away system

Away system

mIRC snippet cu dialog pentru away.

Postat de Copyright Categorie Review user Vizualizari Data
BLKoldSUN eNkIL activity Cod testat 441 2023-12-03 19:50:21

::::::::::::::::::::::::::::
:::::: Coded By eNkIL ::::::
::::::::::::::::::::::::::::
::: Cambiale si sabes =) :::
::::::::::::::::::::::::::::

;Away System

on *:load: { 
  set %tipo.spam ame
  set %tiempo.aaway 10
  set %nick.away Away-Nick
  set %anuncio.away 15
  set %auto.away 600
  set %a.spam.away 900
  set %msg.awayon.st Away On: [m] - Out at: [h]
  set %msg.away.st Away: [m] - Away from: [h] - Time out: [t]
  set %msg.awayoff.st Away Off: [m] - Away since: [t] - Away hour: [h]
  echo -at [( Away System )] By eNkIL
}
menu menubar,channel,status { 
  Away System:awaysys
  -
}
; Aliases
alias awaysys {
  if ($dialog(awaysys) == $null) { noop $dialog(awaysys,awaysys,-2) } 
  else { .echo -at - Away System Dialog Opened.. } 
}
alias away.dur { 
  dialog -t awaysys Away System - $iif($away,Away: $duration($awaytime),Online) 
}
alias durationasaway { 
  %tipo.spam $replace(%msg.away.st,[b],,[u],,[k],,[m],%razona,[h],%awaysal,[t],$duration($awaytime))
}
alias set.away {
  set %awayon 1
  if (%autoaway.on == on) { set %razona Auto Away | .timercheck.aaway off }
  else { set %razona $did($dname,101).text }
  if (%razona == $null) { set %razona No Reason... } 
  if (%act.cam.nick) { set %nick.back $me | nick %nick.away }
  if (%act.anun.nick) {
    set %a.spam.away $calc(%anuncio.away * 60)
    set %awaysal $time(hh:nnt)
    .timerasaway 0 %a.spam.away durationasaway
    %tipo.spam $replace(%msg.awayon.st,[b],,[u],,[k],,[m],%razona,[h],%awaysal)
  }
  if (%page) { 
    window -g2k0 +l @AwayMsg 0 0 900 450 @AwayMsg 
    wa.log  -----------------------------------------------------------------
    wa.log  *** Started at: %awaysal
    wa.log  *** Away Reason: %razona
    wa.log  -----------------------------------------------------------------
  }
  away %razona
}
alias wa.log {
  echo -t @awaymsg $1-
}
alias set.back {
  if (%page) { 
    wa.log  -----------------------------------------------------------------
    wa.log  *** Away Off: $asctime(hh:nnt)
    wa.log  -----------------------------------------------------------------
  }
  if (%act.anun.nick) { %tipo.spam $replace(%msg.awayoff.st,[b],,[u],,[k],,[m],%razona,[h],%awaysal,[t],$duration($awaytime)) }
  if (%act.cam.nick) { set %nick.away $me | nick %nick.back }
  if (%act.auto.away) { set %autoaway.on off | unset %idle.time | .timercheck.aaway 0 30 autoawaycheck }
  .timerasaway off
  set %awayon 0
  unset %razona 
  unset %idle.time
  unset %idle.me
  away
}
alias info.away {
  if (%act.auto.away) { did -c $dname 201 | did -e $dname 202 | did -ra $dname 202 %tiempo.aaway | .enable #autoaway | set %idle.me on }
  else { did -u $dname 201 | did -b $dname 202 | did -ra $dname 202 %tiempo.aaway | .disable #autoaway | unset %idle.me | unset %idle.time }
  if (%act.cam.nick) { did -c $dname 203 | did -e $dname 204 | did -ra $dname 204 %nick.away }
  else { did -u $dname 203 | did -b $dname 204 | did -ra $dname 204 %nick.away }
  if (%act.anun.nick) { did -c $dname 205 | did -e $dname 206 | did -ra $dname 206 %anuncio.away }
  else { did -u $dname 205 | did -b $dname 206 | did -ra $dname 206 %anuncio.away }
  if (%act.auto.resp) { did -c $dname 207 }
  else { did -u $dname 207 }
  if (%page) { did -c $dname 209 }
  else { did -u $dname 209 }
  if (%tipo.spam == ame) { did -c $dname 212 | did -u $dname 213 }
  elseif (%tipo.spam == amsg) { did -u $dname 212 | did -c $dname 213 }
  did -ra $dname 403 %msg.awayon.st
  did -ra $dname 405 %msg.away.st
  did -ra $dname 407 %msg.awayoff.st
}
alias update.away { 
  if (%awayon) { did -b $dname 101,201-207,209,211,212,213,403,405,407,408 | did -r $dname 101 | did -ve $dname 303 | did -bh $dname 302 }
  else { did -r $dname 101 | did -a $dname 101 Not Here!. | did -a $dname 101 BRB. | did -a $dname 101 Watching tv. | did -a $dname 101 Cant talk. | did -ve $dname 302 | did -bh $dname 303 | did -e $dname 101,201,203,205,207,209,211,212,213,403,405,407,408 | info.away }
} 
#autoaway off
alias autoawaycheck { 
  inc %idle.time 30
  if (%idle.time > %auto.away) {
    if ($away == $true) { halt }
    else {
      set %autoaway.on on
      set.away
      unset %idle.me 
    }
  }
}
#autoaway end
on *:CONNECT:{  
  if (%act.auto.away = 1) { .timercheck.aaway 0 30 autoawaycheck }
}
on 1:TEXT:*:#:{ 
  if ($me isin $strip($1-))  { 
    if ($away == $true) {
      if (%page) { wa.log .: Info :: $chan :: $nick $+ : $1- }
      if (%act.auto.resp) { 
        if (%away.cont. [ $+ [ $nick ] ] == $null) { .notice $nick $replace(%msg.away.st,[b],,[u],,[k],,[m],%razona,[h],%awaysal,[t],$duration($awaytime)) - One time response. }
        set -u180 %away.cont. [ $+ [ $nick ] ] - 
      }
    }
    halt
  }
}
on 1:TEXT:*:?:{
  if ($away == $true) {
    if (%page) { wa.log .: Info :: PM :: $nick $+ : $1- }
    if (%act.auto.resp) { 
      if (%away.cont. [ $+ [ $nick ] ] == $null) { .msg $nick $replace(%msg.away.st,[b],,[u],,[k],,[m],%razona,[h],%awaysal,[t],$duration($awaytime)) - One time response. }
      set -u180 %away.cont. [ $+ [ $nick ] ] - 
    }
  }
  halt
}
on 1:ACTION:*:?: {
  if ($away == $true) {
    if (%page) { wa.log .: Info :: PMA :: $nick $+ : $1- }
    if (%act.auto.resp) { 
      if (%away.cont. [ $+ [ $nick ] ] == $null) { .msg $nick $replace(%msg.away.st,[b],,[u],,[k],,[m],%razona,[h],%awaysal,[t],$duration($awaytime)) - One time response. }
      set -u180 %away.cont. [ $+ [ $nick ] ] - 
    }
  }
  halt
}

on 1:ACTION:*:#:{ 
  if ($me isin $strip($1-))  { 
    if ($away == $true) {
      if (%page) { wa.log .: Info :: $chan :: $nick $+ : $1- }
      if (%act.auto.resp) { 
        if (%away.cont. [ $+ [ $nick ] ] == $null) { .notice $nick $replace(%msg.away.st,[b],,[u],,[k],,[m],%razona,[h],%awaysal,[t],$duration($awaytime)) - One time response. }
        set -u180 %away.cont. [ $+ [ $nick ] ] - 
      }
    }
    halt
  }
}
on *:op:#: { 
  if ($away) && ($opnick == $me) { 
    if (%page) { wa.log .: Op :: $chan :: $nick $+ : $1- }
  }
}
on *:deop:#: { 
  if ($away) && ($opnick == $me) { 
    if (%page) { wa.log .: Deop :: $chan :: $nick $+ : $1- }
  }
}
on *:kick:#: { 
  if ($away) && ($knick == $me) { 
    if (%page) { wa.log .: Kick :: $chan :: $nick $+ : $1- }
  }
}
on *:ban:#: { 
  if ($away) && ($banmask iswm $address($me,5)) { 
    if (%page) { wa.log .: Ban :: $chan :: $nick $+ : $1- }
  }
}
on *:Disconnect: {
  set %awayon 0
  .timercheck.aaway off
}

; Dialogo principal
dialog awaysys {
  title "Away System"
  size -1 -1 138 35 
  option dbu
  box "Away Reason", 100, 1 1 136 33 
  combo 101, 3 9 132 10, drop edit sort
  ;
  box "Config", 200, 1 35 97 50
  check "Act. Autoaway      Mins:", 201, 5 42 65 10
  edit "", 202, 75 42 20 9, center
  check "Nick change:", 203, 5 52 45 10
  edit "", 204, 55 52 40 9, center
  check "Away spam every:", 205, 5 62 65 10
  edit "", 206, 75 62 20 9, center
  check "Auto answer Away", 207, 5 72 70 10
  box "Away-Log", 208, 99 35 37 25
  check "On", 209, 108 45 20 9 
  box "Spam", 211, 99 60 37 25
  radio "/ame", 212, 108 67 20 9 
  radio "/amsg", 213, 108 75 22 9
  ;
  button "â–¼", 301, 116 20 20 10
  button "Set Away", 302, 2 20 35 10 
  button "Away Back", 303, 2 20 35 10, hide
  button "Close", 304, 40 20 35 10, cancel
  ;
  box "Away Msgs.", 401, 1 85 135 110
  text "Going Away:", 402, 3 93 40 10
  edit "", 403, 2 102 133 10, autohs
  text "Away:", 404, 3 113 40 10
  edit "", 405, 2 122 133 10, autohs
  text "Back Away:", 406, 3 133 40 10
  edit "", 407, 2 142 133 10, autohs
  button "Apply", 408, 43 183 55 10
  text [b] - Bold $+ $crlf $+ [u] - Underline $+ $crlf $+ [k] - Color, 409, 2 155 90 25, left
  text Away Msg - [m] $+ $crlf $+ Time Gone - [t] $+ $crlf $+ Out time - [h], 410, 45 155 90 25, right
  text "eNkIL", 1, 109 185 25 8, disable center
}
;Eventos dialogo
on *:dialog:awaysys:*:*:{ 
  if ($devent == init) { 
    if ($did = 0) { info.away | update.away | away.dur | .timerdiaawadur 0 1 away.dur }
  }
  ;
  if ($devent == sclick) { 
    if ($did = 201) { set %act.auto.away $did($dname,201).state | update.away | if (%act.auto.away = 1) { .timercheck.aaway 0 30 autoawaycheck } | else { .timercheck.aaway off } }
    if ($did = 203) { set %act.cam.nick  $did($dname,203).state | update.away }
    if ($did = 205) { set %act.anun.nick $did($dname,205).state | update.away }
    if ($did = 207) { set %act.auto.resp $did($dname,207).state | update.away }
    if ($did = 209) { set %page $did($dname,209).state }
    if ($did = 212) { set %tipo.spam ame }
    if ($did = 213) { set %tipo.spam amsg }
    if ($did = 301) { if ($did(301) == â–¼) { dialog -s $dname -1 -1 276 392 | did -ra $dname 301 â–² } | else { dialog -s $dname -1 -1 276 70 | did -ra $dname 301 â–¼ } }
    if ($did = 302) { set.away | update.away } 
    if ($did = 303) { set.back | update.away }
    if ($did = 408) { set %msg.awayon.st $did($dname,403) | set %msg.away.st $did($dname,405) | set %msg.awayoff.st $did($dname,407) } 
  }
  ;
  if ($devent == edit) {
    if ($did = 202) { set %tiempo.aaway $did($dname,202) | set %auto.away $calc(%tiempo.aaway * 60) }
    if ($did = 204) { set %nick.away    $did($dname,204) }
    if ($did = 206) { set %anuncio.away $did($dname,206) }
  }
  if ($devent == close) { .timerdiaawadur off }
}
on *:input:*:{
  if (%idle.me == on) { unset %idle.time }
}