Stats.mod generates statistics about the users in a channel. It counts the words that the users have spoken, the lines, actions, smileys, joins, quits, mode changes, topic changes, nick changes, kicks and how long the user has been on the channel. Depending on the configuration, it even logs the user's favourite words and the most used words on the channel.
The statistics are accessable via public commands (!top10, !stat...) and via http.
Stats.mod will work with eggdrop1.6.x and eggdrop1.4.x.
The following instructions assume, ~/eggdrop1.6/ is the directory where you installed your eggdrop from. (of course, other source dirs will work as well) Unfortunately, you need to compile stats.mod within your eggdrop source, so if you removed your original compile directory, you'll have to compile the whole bot again... sorry.
Put stats.mod.1.4.1.tar.gz in ~/eggdrop1.6/src/mod/, and unpack it (tar xfz stats.mod.1.4.1.tar.gz). Change directory back to ~/eggdrop1.6/. Type 'make config' (on eggdrop 1.4, you can skip that part) Type 'make', wait until compiling is done and use 'make install' to install the bot and stats.mod.
Don't forget to copy the language files from ~/eggdrop1.6/src/mod/stats.mod/ to ~/eggdrop/language/ !
All settings can be found in ~/eggdrop1.6/src/mod/stats.mod/stats.conf I suggest to copy it to your eggdrop directory (probably ~/eggdrop/), edit it to fit your needs and put a 'source stats.conf' at the end of your eggdrop config file. This will execute the config file with every restart or rehash.
!top10 [ordering] lists the top10 users in the channel !top20 [ordering] same as !top10, but lists the top20 (surprise!) !stat [user] shows the statistics for the user !place [user/ordering] shows on which place the user is !ttop10/!ttop20/!tstat/!tplace same as above, but only uses the statistics of today
Only available if log-wordstats is turned on:
!wordstats [user]
lists the most used words of the user
!topwords
lists the most used words in the channel
!top10 word
All public commands are also accessible via /msg.
("/msg
Additionally, there are two new commands:
/msg
.+suser
.writewebstats writes the old, static webfiles (m|-)
incrstats
getstats
livestats
resetuser
resetslang removes every language from the memory, so you can cleanly load a new set of languages.
loadslang [lang]
setchanslang
nick2suser
If you activate livestats, your bot will listen on a specified port for http connections. (accessable via http://your.shell.com:8033/, for example (depending on your configuration, you might have to use your vhost instead)) The webfiles will then be generated on the fly. There will also be a little channel and user list which makes it easier for your users to browse through the several channel statistics of your bot. This method also uses less cpu power than the frequently written webfiles, because only the file that is really needed is generated. Use .console +1 to see access, or use the setting stats-loglevel to change the loglevel. Stats.mod is now also able to log the access to a CLF logfile, so you can use your favourite loganalyzer to generate stats of the stats access. :)
Hint: If you don't want a channel to be listed on the index, ---- just set it +secret.
If there's really no way to use livestats, stats.mod can also generate static web files. In this case, it simply mirrors the whole livestats server into a directory on your shell. Of course, this takes some time. You bot won't be able to do anything while it's generating the files, so only use it if there's no other way. (expect an occasional ping timeout on large channels) Be sure that you chose an empty output directory.
Since v1.3.0, stats.mod has an internal userdatabase. It can automatically add users and hostmasks to it. Users which are in the eggdrop userfile have a higher priority, so if someone is known as "bla" by the bot and as "blub" by stats.mod, his stats will be logged to "bla". Hostmasks will be removed from a user if they haven't been used for a specified time. If all hosts got removed from a user, the user will be erased completely. Note that stats.mod can't know when someone used IDENT or if someone added new hosts to a user manually. The affected user should cycle the chan to make sure that he's recognized correctly by stats.mod.
There are two flags for users: +/-list and +/-addhosts:
If you're using eggdrop 1.5 or later, you have some additional config options available via .chanset:
+nopubstats Disables all channel commands (!top10 etc...) +quietstats Bot will reply with a notice directly to the user instead of sending the reply to the channel +nostats Don't log any stats in this chan at all.
There is absolutely NO WARRANTY on this module. I do my best to make it work properly, but if anything gets screwed up, I'm not responsible. Use this module at your own risk.
There can be a problem if you use wordstats on a bot with enabled memory debugging. The reset of the daily stats might take a long time on slow shells. If your bot is on big channels, your memory table might be too small. Edit src/mem.c and change the #define that sets the size of the memtable (#define MEMTBLSIZE 25000 / yikes! /) to a higher value.
http://www.kreativrauschen.com/stats.mod/