Code:

#Channel.Stats.Report on
on me:^*:JOIN:#:{
  set -u600 $+(%,Me.JOIN.,$cid,.,$chan) 0 0
  .raw $+(WHO $chan,$crlf,MODE $chan +b)
  haltdef
}
alias ChanStats {
  if ($1) set %chan #$1
  elseif (#* iswm $active) set %chan $active
  if (%chan) {
    set -u600 $+(%,Me.JOIN.,$cid,.,%chan) 0 0
    .raw $+(TOPIC %chan,$crlf,NAMES %chan,$crlf,MODE %chan,$crlf,WHO %chan,$crlf,MODE %chan b)
  }
}
;
;  Halt the joining numerics on me:*:JOIN:
;
raw 332:*: if ($eval($+(%,Me.JOIN.,$cid,.,$2),2) != $null) halt
raw 333:*:{
  if ($eval($+(%,Me.JOIN.,$cid,.,$2),2) != $null) {
    set $+(%,Me.JOIN.,$cid,.,$2) $eval($+(%,Me.JOIN.,$cid,.,$2),2) $3-
    halt
  }
}
raw 353:*: if ($eval($+(%,Me.JOIN.,$cid,.,$3),2) != $null) halt
raw 366:*: if ($eval($+(%,Me.JOIN.,$cid,.,$2),2) != $null) halt
raw 324:*: if ($eval($+(%,Me.JOIN.,$cid,.,$2),2) != $null) halt
raw 329:*:{
  if ($eval($+(%,Me.JOIN.,$cid,.,$2),2) != $null) {
    set $+(%,Me.JOIN.,$cid,.,$2) $eval($+(%,Me.JOIN.,$cid,.,$2),2) $3
    halt
  }
}
;
;  IAL Filler
;
raw 352:*:{
  if $eval($+(%,Me.JOIN.,$cid,.,$2), 2) != $null {
    var %Oper.Count = $gettok($ifmatch, 1, 32)
    var %Away.Count = $gettok($ifmatch, 2, 32)
    var %Other = $gettok($ifmatch, 3-, 32)
    if (* isin $7) inc %Oper.Count
    if (G isin $7) inc %Away.Count
    set $+(%,Me.JOIN.,$cid,.,$2) %Oper.Count %Away.Count %Other
    halt
  }
}
raw 315:*:{
  if ($eval($+(%,Me.JOIN.,$cid,.,$2), 2) != $null) {
    .raw MODE $2 b
    halt
  }
}
;
;  IBL filler
;
raw 367:*: if ($eval($+(%,Me.JOIN.,$cid,.,$2), 2) != $null) halt
raw 368:*:{
  if ($eval($+(%,Me.JOIN.,$cid,.,$2), 2) == $null) return
  ChanStatsReport $2
  halt
}
alias ChanStatsReport {
  if ($eval($+(%,Me.JOIN.,$cid,.,$1), 2) != $null) {
    var %Oper.Count = $gettok($ifmatch, 1, 32)
    var %Away.Count = $gettok($ifmatch, 2, 32)
    var %Topic.Set.By = $gettok($ifmatch, 3, 32)
    var %Topic.Set.Time = $asctime($gettok($ifmatch, 4, 32), yyyy/mm/dd HH:nn:ss)
    var %Channel.Created = $asctime($gettok($ifmatch, 5, 32), yyyy/mm/dd HH:nn:ss)
    var %chan = $1
    echo $color(join) -bfirt %chan * Now talking in %chan $+([,$asctime($ctime, yyyy/mm/dd HH:nn:ss),])
    echo $color(join) -bfirt %chan * Created: %Channel.Created
    echo $color(topic) -bflirt %chan * Topic is: $chan(%chan).topic
    echo $color(topic) -bfirt %chan * Set by %Topic.Set.By $+([,%Topic.Set.Time,])
    echo $color(join) -bfirt %chan * $+([, $&
      $nick(%chan, 0) Nick,$iif($nick(%chan, 0) != 1,s),][, $&
      $nick(%chan, 0, o) Op,$iif($nick(%chan, 0, o) != 1,s),][, $&
      $nick(%chan, 0, v) Voice,$iif($nick(%chan, 0, v) != 1,s),][, $&
      $nick(%chan, 0, r) Regular][, $&
      %Oper.Count Oper, $iif(%Oper.Count != 1,s),][, $&
      %Away.Count Away][, $&
      $ibl(%chan, 0) Ban,$iif($ibl(%chan, 0) != 1,s),])
    linesep %chan
    unset $+(%,Me.JOIN.,$cid,.,$1)
  }
}
#Channel.Stats.Report end

* Now talking in #MyChannel [2003/02/16 03:24:24]
* Created: 2003/02/16 00:46:11
* Topic is: This is a really cool place to chat with my good friends.
* Set by MyNick [2002/12/31 00:43:08]
* [253 Nicks][33 Ops][20 Voices][200 Regular][20 Opers][250 Away][1 Ban]

/ChanStats will re-show the stats at any time.


DALnet: #HelpDesk and #m[color:#FF0000]IR[color:#EEEE00]C