Coders-IRC


IRC for Coders

Show Selected Joins/Parts/Quits


image

This addon shows when selected nicks join/part/quit from either all or selected channels. This addon is for people who like to hide the join/part/quit events by default but still would like to track a few friends. It simply shows the join or part event in selected or all channels and the quit event in the nicks query window if you have one open with that nick and all common channels in the selected channels list if the all channel option isn’t selected

ByPBall



/*
[Addon]
Script=join part messages
Version=2.1
Author=pball
Desc=shows joins, parts, and quits of selected users
For=Mirc
Date=

[script]
*/
Menu nicklist {
Join & Parts
.$iif($readini($scriptdirjoins.ini, $1, join), $style(2)) Add User(s): joins_add $1-
.$iif(!$readini($scriptdirjoins.ini, $1, join), $style(2)) Remove $1: $iif($readini($scriptdirjoins.ini, $1, welcome_back), remini $scriptdirjoins.ini $1 join, remini $scriptdirjoins.ini $1)
}

alias -l joins_add {
  while ($1) {
    writeini $scriptdirjoins.ini $1 join On
    tokenize 32 $2-
  }
}

menu channel,menubar { 
  Join & Parts { dialog -ma joinpart joinpart }
}

on *:join:#:{
  if ($regex($chan,$+(/,$replace($readini($scriptdirjoins.ini,Chan,chan),$chr(35),$+($chr(92),$chr(35))),/i))) || ($readini($scriptdirjoins.ini,Chan,allchan == 1)) {
    if ($readini($scriptdirjoins.ini,$nick,join)) echo $color(join) $chan $timestamp * $nick has joined
  }
}
on *:part:#:{
  if ($regex($chan,$+(/,$replace($readini($scriptdirjoins.ini,Chan,chan),$chr(35),$+($chr(92),$chr(35))),/i))) || ($readini($scriptdirjoins.ini,Chan,allchan == 1)) {
    if ($readini($scriptdirjoins.ini,$nick,join)) echo $color(part) $chan $timestamp * $nick has parted
  }
}
on *:quit:{
  if ($readini($scriptdirjoins.ini,$nick,join)) {
    if ($window($nick)) echo $color(quit) $nick $timestamp * $nick has quit $scid($cid).network [ $+ $1- $+ ]
    set -l %num 1
    while (%num <= $comchan($nick,0)) {
      if ($regex($comchan($nick,%num),$+(/,$replace($readini($scriptdirjoins.ini,Chan,chan),$chr(35),$+($chr(92),$chr(35))),/i))) || ($readini($scriptdirjoins.ini,Chan,allchan == 1)) { echo $color(quit) $comchan($nick,%num) $timestamp * $nick has quit $scid($cid).network [ $+ $1- $+ ] }
      inc %num
    }
  }
}

alias resetjoin {
  did -ra joinpart 3 $readini($scriptdirjoins.ini,Chan,chan)
  set -l %topic 1
  did -r joinpart 1
  while (%topic <= $ini($scriptdirjoins.ini,0)) {
    if ($ini($scriptdirjoins.ini,%topic) != Chan) did -a joinpart 1 $ini($scriptdirjoins.ini,%topic)
    inc %topic
  }
}

on *:dialog:joinpart:*:*:{
  if ($devent == close) {
    if ($did(3) != $null) writeini $scriptdirjoins.ini Chan chan $did(3)
    elseif ($did(3) == $null) && ($ini($scriptdirjoins.ini,Chan)) remini $scriptdirjoins.ini Chan
  }
  elseif ($devent == init) {
    if ($readini($scriptdirjoins.ini,Chan,allchan) == 1) {
      did -h $dname 3,7,9
      did -c $dname 10
    }
    resetjoin
  }
  elseif ($devent == sclick) {
    if ($did == 1) did -ra $dname 2 $did(1).seltext
    elseif ($did == 4) {
      if ($did(2) != $null) {
        writeini $scriptdirjoins.ini $did(2) join on
        did -ra $dname 9 Nick added
        resetjoin 
        did -r $dname 2
      }
    }
    elseif ($did == 8) && ($did(1).seltext != $null) && ($readini($scriptdirjoins.ini,$did(2),join) != $null) {
      remini $scriptdirjoins.ini $did(2)
      did -ra $dname 9 Nick removed
      did -r $dname 2
      did -d $dname 1 $did(1).sel
    }
    elseif ($did == 10) {
      writeini $scriptdirjoins.ini Chan allchan $did(10).state
      if ($did(10).state == 0) did -v $dname 3,7,9
      else did -h $dname 3,7,9
    }
  }
} 

dialog joinpart {
  title "Show Joins, Parts, Quits"
  size -1 -1 335 155
  option pixels
  list 1, 5 5 140 142, vsbar size sort
  edit "", 2, 180 5 150 20
  edit "", 3, 180 100 150 20, autohs
  button "Add", 4, 195 30 66 24, result
  button "Exit", 5, 265 125 66 26, cancel
  text "Nick", 6, 150 5 30 18
  text "Chans", 7, 147 100 30 16
  button "Delete", 8, 265 30 65 25
  text "# required, | is separator", 9, 180 80 146 17
  check "Show in All Chans", 10, 150 60 124 17
}

Expand


Read More

Query Ison Checker


image

This script checks to see if the person you have a query open with is still online. When someone you have a query open with goes offline a message will appear in that window alerting you of that. If the person comes back online it will also notify you in that case.

Details:
The script checks every 30 seconds to see if nicks are online
When a nick is offline it will only echo to the query window once every 30 minutes if they are still offline
This script will work for as many nicks as the particular network supports with the ison command, Rizon supports at least 8


By PBall

[Addon]
Script=Checks if Query nick is still online
Version=1
Author=pball
Desc=This script echos a message to a query window if that nick goes offline while the window is open
For=Mirc
Date=3-25-11

[script]
*/
on *:open:?:*:{
  set $+(%,ison_,$network) $addtok($($+(%,ison_,$network),2),$nick,5)
  if (!$timer($network)) .timerison_ $+ $network 0 30 isonchk
}

on *:ACTIVE:?:{
  set $+(%,ison_,$network) $addtok($($+(%,ison_,$network),2),$target,5)
  if (!$timer($network)) .timerison_ $+ $network 0 30 isonchk
}

alias isonchk {
  set -l %num 1
  while ($gettok($($+(%,ison_,$network),2),%num,5)) {
    if (!$query($gettok($($+(%,ison_,$network),2),%num,5))) set $+(%,ison_,$network) $remtok($($+(%,ison_,$network),2),$gettok($($+(%,ison_,$network),2),%num,5),1,5)
    inc %num
  }
  if (!$($+(%,ison_,$network),2)) { .timerison_ $+ $network off | halt }
  set $+(%,isonchk_,$network) 1
  ison $replace($($+(%,ison_,$network),2),$chr(5),$chr(32))
}

on *:close:?: {
  set $+(%,ison_,$network) $remtok($($+(%,ison_,$network),2),$nick,1,5)
  if ($($+(%,ison_,$network),2) == $null) .timerison_ $+ $network off
  if ($($+(%,ison_,$network,$nick),2)) unset $+(%,ison_,$network,$nick)
}

raw 303:*:{
  if ($($+(%,isonchk_,$network),2)) {
    set -l %num 1
    while ($gettok($($+(%,ison_,$network),2),%num,5)) {
      if (!$istok($1-,$gettok($($+(%,ison_,$network),2),%num,5),32)) && (!$($+(%,ison_,$network,_,$gettok($($+(%,ison_,$network),2),%num,5)),2)) { echo 4 -t $gettok($($+(%,ison_,$network),2),%num,5) $gettok($($+(%,ison_,$network),2),%num,5) is offline | set -u1800 $+(%,ison_,$network,_,$gettok($($+(%,ison_,$network),2),%num,5)) off }
      if ($istok($1-,$gettok($($+(%,ison_,$network),2),%num,5),32)) && ($($+(%,ison_,$network,_,$gettok($($+(%,ison_,$network),2),%num,5)),2)) { echo 11 -t $gettok($($+(%,ison_,$network),2),%num,5) $gettok($($+(%,ison_,$network),2),%num,5) is online | unset $($+(%,ison_,$network,_,$gettok($($+(%,ison_,$network),2),%num,5))) }
      inc %num
    }
    unset $+(%,isonchk_,$network)
    halt
  }
}

Expand


Read More

Access control in Chat, how to keep an eye on JOIN and PART


image

Being part of the user support of the ircIRCgate.it network and being simultaneously present in many chan, I often happen to "not" notice when some user enters the support channel #IRChelp, to overcome this inconvenience I used two simple but effective stratagems, the first consists of a script that, when a user joins in the support chan, it says me in echo (so I read it only me, in any channel or pvt I find ..) " IRChelp records a JOIN by TIZIO and the second, if I am not physically in front of the PC, and then there was the possibility that deto message escapes me, brings me back in a separate @ window, all the JOIN on the support channel with a lot of nick time and user address .. (also useful as "access statistics".. but let's come to the code:

on *:JOIN:#irchelp: {
window @irchelp
/echo @irchelp [ 9 $asctime(HH:nn:ss) ] [ 9 #IRChelp ] Register a [ 9 JOIN ] by [ 9 $nick - $address($nick,2) ]
}

on *:P ART:#irchelp: {
window @irchelp
/echo @irchelp [ 9 $asctime(HH:nn:ss) ] [ 4 #IRChelp ] Record a [ 4 PART ] by [ 4 $nick - $address($nick,2) }

on *:JOIN:#IRChelp: {
/echo -a [ 9 $asctime(HH:nn:ss) ] [ 9 #IRChelp ] Register a [ 9 JOIN ] by [ 9 $nick - $address($nick,2) ]
}
on *:P ART:#IRCHelp: {
/echo -a [ 9 $asctime(HH:nn:ss) ] [ 4 #IRChelp ] Records a [ 4 PART ] by [ 4 $nick - $address($nick,2) ]
}

Expand


Read More