All pastes #170870 Raw Edit

log1.1

public text v1 · immutable
·published 2006-09-14 21:02 UTC
rendered paste body
alias log { 
  if ($regex($1,/(on|start)/Si)) { enable #logging }
  elseif ($regex($1,/(off|stop)/Si)) { disable #logging }
}
alias viewlogs { run $mircdir $+ \logs }
alias searchlog {
  if (!$2) { return Error: $+($chr(36),searchlog) Not Enough Parameters }
  var %file $iif(*\* iswm $1,$qt($+($1,.txt)),$qt($+($mircdir,logs\,$1,.txt)))
  var %search $+(/,$2,/Sig)
  var %f 0
  if (!$exists(%file)) { return Error: $+($chr(36),searchlog) File does not exist }
  while (%f < $lines(%file)) {
    inc %f 1
    var %results = $calc($regex($gettok($read(%file,%f),2-,93),%search) + %results)
    var %result = $iif(!%result,$iif(%results >= $prop,$read(%file,%f),),)
  }
  return $iif($prop,%result,%results)
}
alias searchwindow { window -e $+(@log-,$iif(!$1,$iif(!$chan,$nick,$chan),$1)) /search $chan }
alias search {
  if ($left($active,1) == @) {
    if (!$1) { echo -ea Not enough Parameters | halt }
    if ($regex($1,/(stop|end|finish)/Si)) { play stop | halt }
    else {
      var %file $qt($+($mircdir,logs\,$gettok($active,2,45),.txt))
      var %search $+(/,$($+($,$0),2),/Sig)
      var %f 0
      if (!$exists(%file)) { echo -ea File Does Not Exist | halt }
      while (%f < $lines(%file)) {
        inc %f 1
        var %reg = $regex([search],$read(%file,%f),/\[(.+)\]\s<(.+)>\s(.*)/Si)
        if ($left($1,1) == -) { var %line = $iif(t isin $1,$regml([search],1),$null) $iif(n isin $1,$regml([search],2),$null) $iif(m isin $1,$regml([search],3),$null) }
        else { var %line = $read(%file,%f) }
        var %results = $calc($regex(%line,%search) + %results)
        if ($regex(%line,%search)) {
          .play -el $+ %f $active %file 500
        }
      }
      echo -ea Results found for $qt($remove(%search,$right(%search,4),$left(%search,1))) $+ : %results $chr(124) Searched: $iif($left($1,1) == -,$iif(t isin $1,Timestamps,) $iif(n isin $1,Nicks,) $iif(m isin $1,Messages,),All)
    } 
  }
  else { echo -ea Must Be Done in a Log window (/searchwindow #channel/nick) }
}

#logging on
on *:TEXT:*:*:{
  if (($chan == #mirc) || ($chan == #mk)) { halt }
  if (!$chan) {
    if (!$file($qt($+($mircdir,logs\,$nick,.txt)))) { 
      write $qt($+($mircdir,logs\,$nick,.txt)) $asctime($gmt)
      write $qt($+($mircdir,logs\,$nick,.txt)) START OF LOG FOR $upper($NICK)
      write $qt($+($mircdir,logs\,$nick,.txt)) $+([,$asctime($gmt(mmm dd hh:nn:ss))) GMT] $+(<,$nick,>) $strip($1-) 
    }
    else {
      write $qt($+($mircdir,logs\,$nick,.txt)) $+([,$asctime($gmt(mmm dd hh:nn:ss))) GMT] $+(<,$nick,>) $strip($1-) 
    }
  }
  else { 
    if (!$file($qt($+($mircdir,logs\,$chan,.txt)))) { 
      write $qt($+($mircdir,logs\,$chan,.txt)) $asctime($gmt)
      write $qt($+($mircdir,logs\,$chan,.txt)) START OF LOG FOR $upper($CHAN)
      write $qt($+($mircdir,logs\,$chan,.txt)) $+([,$asctime($gmt(mmm dd hh:nn:ss))) GMT] $+(<,$nick,>) $strip($1-) 
    }
    else {
      write $qt($+($mircdir,logs\,$chan,.txt)) $+([,$asctime($gmt(mmm dd hh:nn:ss))) GMT] $+(<,$nick,>) $strip($1-)
    }
  }
}
on *:INPUT:*:{
  if (($chan == #mirc) || ($chan == #mk)) { halt }
  if ($left($1,1) == /) { $iif($left($1,2) == //,$($1-,2),$1-) | halt }
  elseif (!$chan) {
    if (!$file($qt($+($mircdir,logs\,$nick,.txt)))) { 
      write $qt($+($mircdir,logs\,$nick,.txt)) $asctime($gmt)
      write $qt($+($mircdir,logs\,$nick,.txt)) START OF LOG FOR $upper($NICK)
      write $qt($+($mircdir,logs\,$nick,.txt)) $+([,$asctime($gmt(mmm dd hh:nn:ss))) GMT] $+(<,$me,>) $strip($1-) 
    }
    else {
      write $qt($+($mircdir,logs\,$nick,.txt)) $+([,$asctime($gmt(mmm dd hh:nn:ss))) GMT] $+(<,$me,>) $strip($1-) 
    }
  }
  else { 
    if (!$file($qt($+($mircdir,logs\,$chan,.txt)))) { 
      write $qt($+($mircdir,logs\,$chan,.txt)) $asctime($gmt)
      write $qt($+($mircdir,logs\,$chan,.txt)) START OF LOG FOR $upper($CHAN)
      write $qt($+($mircdir,logs\,$chan,.txt)) $+([,$asctime($gmt(mmm dd hh:nn:ss))) GMT] $+(<,$me,>) $strip($1-) 
    }
    else {
      write $qt($+($mircdir,logs\,$chan,.txt)) $+([,$asctime($gmt(mmm dd hh:nn:ss))) GMT] $+(<,$me,>) $strip($1-)
    }
  }
}
#logging end