ChannelLog v.1.0.1

By Tamaki on Mar 21, 2009

ATTENTION! YOU MUST HAVE TAD'S HOME INTEGRATION SCRIPT FOR THIS SCRIPT TO WORK! YOU CAN FIND IT HERE: http://www.hawkee.com/snippet/4936/

To install:
/install clog

To uninstall
/uninstall clog

Please be aware that after you install this program, you will need to restart your connection to any server(s) you might be on.

To operate:

Type /clog
Select a server from the drop-down list (do not select Server...)
Type a channel into the #channel edit box.
Select the type of report you wanna see...
then click Generate. Thats it!

-edit-
Fixed a small error.

on *:LOAD: {
  createlicense clog
  echo -a Type /install clog to install the Channel Log script.
}

on *:START: {
  If ($readini(clog.ini,status,installed) == yes ) {
    If ($readini(clog.ini,status,auto_start) == yes ) {
      check clog
    }
    Else {
      echo -a Type /clog to start up the Channel Log Report Maker
    }
  }
  Else {
    echo -a Type /install clog to install the Channel Log Script
  }
}

on *:CONNECT: {
  If ($read(cservers.txt, s, $server) == $null ) {
    write cservers.txt $server $server
    write cserv.txt $server
    writeini clog.ini status servers $calc($readini(clog.ini,status,servers) + 1 )
  }
}  

on *:JOIN:#: {
  writeini clog.ini $server $chan $calc($readini(clog.ini,$server,$chan) + 1 )
  write $server $+ _ $+ $chan $+ _clog.txt JOIN $nick $+ ( $+ $address $+ ) on $server $+ , joined $chan on $adate at $time $+ .
}

on *:PART:#: {
  writeini clog.ini $server $chan $calc($readini(clog.ini,$server,$chan) + 1 )
  write $server $+ _ $+ $chan $+ _clog.txt PART $nick $+ ( $+ $address $+ ) on $server $+ , left $chan on $adate at $time $+ .
}

on *:QUIT: {
  writeini clog.ini $server quits $calc($readini(clog.ini,$server,quits) + 1 )
  write quits.txt $nick $+ ( $+ $address $+ ) $+ , quit from $server on $adate at $time $+ .
}

on *:NICK: {
  writeini clog.ini $server nicks $calc($readini(clog.ini,$server,nicks) + 1 )
  write nick.txt $nick $+ ( $+ $address $+ ) $+ , on $server $+ , has changed his/her nick to $newnick $+ .
}

alias clog_install {
  writeini clog.ini status installed yes
  set %show.join no
  set %show.part no
  set %show.quit no
  set %show.nick no
  echo -a Channel Log has been installed. It is recommended that you reconnect to any server(s) you might be connected to.
  echo -a To start up the Channel Log options, please type /clog
}

alias clog_uninstall {
  remove clog.ini
  remove cservers.txt
  remove cserv.txt
  unset %show.join
  unset %show.part
  unset %show.quit
  unset %show.nick
}

alias clog {
  check clog
}

dialog clog {
  title Channel Log
  option dbu
  size -1 -1 101  77
  combo 1, 1 1 100 10, drop
  edit "#Channel", 2, 1 11 100 10, disable
  text "Show", 3, 1 22 100 10
  check "Joins", 4, 1 33 49 10
  check "Parts", 5, 50 33 49 10
  check "Quits", 6, 1 44 49 10
  check "Nicks", 7, 50 44 49 10
  button "Generate", 8, 1 55 100 10, disable
  button "Reset", 9, 1 66 100 10
}

on *:DIALOG:clog:*:0: {
  If ($devent == init ) {
    did -a clog 1 Server...
    var %temp.1 $readini(clog.ini,status,servers)
    While (%temp.1 > 0 ) {
      did -a clog 1 $read(cserv.txt, %temp.1)
      dec %temp.1
    }
    If (%show.join == yes ) {
      did -c clog 4
    }
    If (%show.part == yes ) {
      did -c clog 5
    }
    If (%show.quit == yes ) {
      did -c clog 6
    }
    If (%show.nick == yes ) {
      did -c clog 7
    }
  }
  Elseif ($devent == close ) {
    set %clog_open no
  }
}

on *:DIALOG:clog:*:*: {
  If ($devent == sclick) {
    If ($did == 1) { 
      did -ef clog 2 
    }
    Elseif ($did == 4) {
      If (%show.join == yes ) {
        set %show.join no 
      } 
      Else {
        set %show.join yes
      }
    }
    Elseif ($did == 5 ) {
      If (%show.part == yes ) {
        set %show.part no
      }
      Else {
        set %show.part yes
      }
    }
    Elseif ($did == 6 ) {
      If (%show.quit == yes ) {
        set %show.quit no
      }
      Else {
        set %show.quit yes
      }
    }
    Elseif ($did == 7 ) {
      If (%show.nick == yes ) {
        set %show.nick no
      }
      Else {
        set %show.nick yes
      }
    }
    Elseif ($did == 8 ) {
      If (($did(4).state == 1 ) || ($did(5).state == 1 ) || ($did(6).state == 1 ) || ($did(7).state == 1 )) {
        If ($did(1).seltext != Server... ) {
          If ($did(2) != $null ) {
            If ($readini(clog.ini,$did(1).seltext,$did(2)) != $null ) {
              write clog.txt CLog
              var %temp.1 $readini(clog.ini,$did(1).seltext,$did(2))
              var %temp.6 1
              If (%show.join == yes) || (%show.part) == yes ) {
                write clog.txt -Joins and Parts-
              }
              While (%temp.1 > 0 ) {
                If (%show.join == yes) && (JOIN isin $read($did(1).seltext $+ _ $+ $did(2) $+ _clog.txt, %temp.1)) {
                  write clog.txt %temp.6 $+ . $read($did(1).seltext $+ _ $+ $did(2) $+ _clog.txt, %temp.1)
                  inc %temp.6
                  write -i clog.txt
                }
                If (%show.part == yes) && (PART isin $read($did(1).seltext $+ _ $+ $did(2) $+ _clog.txt, %temp.1)) {
                  write clog.txt %temp.6 $+ . $read($did(1).seltext $+ _ $+ $did(2) $+ _clog.txt, %temp.1)
                  inc %temp.6
                  write -i clog.txt
                }
                dec %temp.1
              }
              If (%show.quit == yes ) {
                gen quits
              }
              If (%show.nick == yes ) {
                gen nicks
              }
              Else {
                gen finish
              }
            }
            Else {
              echo -a Error with program. 001
            }
          }
          Else {
            did -f clog 2
            echo -a Error 123
          }
        }
        Else {
          did -f clog 1
          echo -a Error 456
        }
      }
      Else {
        echo -a Please check a log you would like to see.
      }
    }
    Elseif ($did == 9 ) {
      close clog
      start clog
    }
  }
  Elseif ($devent == edit ) {
    If ($did == 2 ) {
      did -e clog 8
    }
  }
}

alias gen {
  If ($1 == $null ) {
    echo -a Error 002
  }
  Elseif ($1 == quits ) {
    write clog.txt -Quits-
    var %temp.2 $readini(clog.ini,$did(clog, 1).seltext,quits)
    var %temp.4 1
    While (%temp.2 > 0 ) {
      If ($did(clog, 1).seltext isin $read(quits.txt, %temp.2) ) {
        write clog.txt %temp.4 $+ . $read(quits.txt, %temp.2)
        inc %temp.4
        write -i clog.txt
      }
      dec %temp.2
    }
  }
  Elseif ($1 == nicks ) {
    var %temp.3 $readini(clog.ini,$did(clog, 1).seltext,nicks)
    var %temp.5 1
    write clog.txt -Nicks-
    While (%temp.3 > 0 ) {
      If ($did(clog, 1).seltext isin $read(nick.txt, %temp.3) ) {
        write clog.txt %temp.5 $+ . $read(nick.txt, %temp.3)
        inc %temp.5
        write -i clog.txt
      }
      dec %temp.3
    }
    regenfinish
  }
  Elseif ($1 == finish ) {
    .timer 1 1 /run clog.txt
    .timer 1 3 /remove clog.txt
  }
}

alias regenfinish {
  gen finish
}

Comments

Sign in to comment.
Tamaki   -  Mar 22, 2009

then it doesn't work :/
if ur looking for a channel logger script like services has, then you'll need to own services on a network...a lot of hassle
btw Luc, my server is up permanently, i went and bought a shell, get the Help Connection Center i posted, i'll take you right to my server ^_^

 Respond  
LucSatise   -  Mar 22, 2009

what if ur not actually in the channel at the time?

 Respond  
Tamaki   -  Mar 21, 2009

thanks ^_^

it's big cause it also generates custom reports based on what server and channel you want, and what kind of report you want (i.e. joins, parts, nick changes, quits)

i didn't know how else to make it better or more customizable, if you got an idea, lemme know

 Respond  
Aucun50   -  Mar 21, 2009

Looks big for a channel logger. Nice script

 Respond  
Are you sure you want to unfollow this person?
Are you sure you want to delete this?
Click "Unsubscribe" to stop receiving notices pertaining to this post.
Click "Subscribe" to resume notices pertaining to this post.