Skip to content

Instantly share code, notes, and snippets.

@Nicd
Created September 11, 2020 07:20
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Nicd/737c8f6be71b407a724212a76559c430 to your computer and use it in GitHub Desktop.
Save Nicd/737c8f6be71b407a724212a76559c430 to your computer and use it in GitHub Desktop.
Lithium Stats -- This was my most ambitious mIRC script, collecting statistics about your mIRC usage.
[LANG]
langname=English
langby=Nicd
langcomments=The standard english languagefile for Lithium Stats 2.1. © Nicd 2005
disabled=*** Lithium Stats logging disabled.
enabled=*** Lithium Stats logging enabled.
setresetinterval=*** Reset interval set to %lith_resetinterval seconds.
question_setresetinterval=How many seconds between resets?
resetdata=*** Reset %lith_reset_data $+ !
autoreset=*** All data automatically reset!
languageset=*** Language set to English!
output_text_all=Seen %lith_text_total lines, of which I typed %lith_text_mine ( $+ $round($calc(%lith_text_mine / %lith_text_total * 100),0) $+ % $+ ): $calc(%lith_text_total - %lith_text_action - %lith_text_notice) lines text, %lith_text_action actions and %lith_text_notice notices; $calc(%lith_text_total - %lith_text_private) ( $+ $round($calc((%lith_text_total - %lith_text_private) / %lith_text_total * 100),0) $+ % $+ ) on channel, %lith_text_private ( $+ $round($calc(%lith_text_private / %lith_text_total * 100),0) $+ % $+ ) private.
output_text_total=Seen a total of %lith_text_total lines.
output_text_ityped=I have typed %lith_text_mine lines ( $+ $round($calc(%lith_text_mine / %lith_text_total * 100),0) $+ % of total): $calc(%lith_text_mine - %lith_text_mineaction - %lith_text_minenotice) lines text, %lith_text_mineaction actions and %lith_text_minenotice notices.
output_text_cvsp=Of total lines, $calc(%lith_text_total - %lith_text_private) ( $+ $round($calc((%lith_text_total - %lith_text_private) / %lith_text_total * 100),0) $+ % $+ ) were on channel, %lith_text_private ( $+ $round($calc(%lith_text_private / %lith_text_total * 100),0) $+ % $+ ) private.
output_text_textactionnotice=Of total lines, $calc(%lith_text_total - %lith_text_action - %lith_text_notice) ( $+ $round($calc((%lith_text_total - %lith_text_action - %lith_text_notice) / %lith_text_total * 100),0) $+ % $+ ) were text, %lith_text_action ( $+ $round($calc(%lith_text_action / %lith_text_total * 100),0) $+ % $+ ) actions and %lith_text_notice ( $+ $round($calc(%lith_text_notice / %lith_text_total * 100),0) $+ % $+ ) notices.
output_dcc_all=Seen a total of %lith_dcc_total DCC transfers: %lith_dcc_send ( $+ $round($calc(%lith_dcc_send / %lith_dcc_total * 100),0) $+ % $+ ) sends, %lith_dcc_get ( $+ $round($calc(%lith_dcc_get / %lith_dcc_total * 100),0) $+ % $+ ) gets; %lith_dcc_failures ( $+ $round($calc(%lith_dcc_failures / %lith_dcc_total * 100),0) $+ % $+ ) transfers failed.
output_dcc_sends=Seen a total of %lith_dcc_send DCC sends, %lith_dcc_sendfail ( $+ $round($calc(%lith_dcc_sendfail / %lith_dcc_total * 100),0) $+ % $+ ) of which failed.
output_dcc_gets=Seen a total of %lith_dcc_get DCC gets, %lith_dcc_getfail ( $+ $round($calc(%lith_dcc_getfail / %lith_dcc_total * 100),0) $+ % $+ ) of which failed.
output_dcc_sendsvsgets=Of total DCC transfers, %lith_dcc_send ( $+ $round($calc(%lith_dcc_send / %lith_dcc_total * 100),0) $+ % $+ ) were sends, %lith_dcc_get ( $+ $round($calc(%lith_dcc_get / %lith_dcc_total * 100),0) $+ % $+ ) gets.
output_dcc_failures=Of total DCC transfers, %lith_dcc_failures ( $+ $round($calc(%lith_dcc_failures / %lith_dcc_total * 100),0) $+ % $+ ) failed.
output_dcc_sendsvsgetsfailures=%lith_dcc_sendfail ( $+ $round($calc(%lith_dcc_sendfail / %lith_dcc_total * 100),0) $+ % $+ ) DCC sends failed, %lith_dcc_getfail ( $+ $round($calc(%lith_dcc_getfail / %lith_dcc_total * 100),0) $+ % $+ ) gets failed. Of all failures, $round($calc(%lith_dcc_sendfail / %lith_dcc_failures * 100),0) $+ % were sends, $round($calc(%lith_dcc_getfail / %lith_dcc_failures * 100),0) $+ % gets.
output_ctcp_total=Got a total of %lith_ctcp_total CTCP requests.
output_servers_all=Connected to a total of %lith_servers_servers servers, %lith_servers_servtimes times. Joined %lith_servers_channels channels %lith_servers_chantimes times. Used %lith_servers_nicks different nicknames.
output_servers_servers=Been on %lith_servers_servers different servers, %lith_servers_servtimes times.
output_servers_disconnects=Disconnected from servers %lith_servers_disconnects times.
output_servers_failedconnects=Connecting to server failed %lith_servers_failedconnects times.
output_servers_channels=Joined to %lith_servers_channels different channels, %lith_servers_chantimes times.
output_servers_nickchanges=Seen %lith_servers_nickchanges nickchanges.
output_servers_nicks=Used %lith_servers_nicks different nicknames.
output_channels_all=Seen %lith_channels_joins joins, %lith_channels_parts parts and %lith_channels_quits quits; %lith_channels_kicks kicks and %lith_channels_bans bans; %lith_channels_modes modes set, including %lith_channels_ops ops and %lith_channels_voices voices.
output_channels_joinspartsquits=Seen %lith_channels_joins joins, %lith_channels_parts parts and %lith_channels_quits quits.
output_channels_myjoinsparts=I have joined $iif($isfile(LithiumStats\channels.txt),$lines(LithiumStats\channels.txt),0) channels %lith_channels_ijoin times, left %lith_channels_ipart times and quit %lith_channels_iquit times.
output_channels_kicksbans=Seen %lith_channels_kicks kicks, %lith_channels_bans bans and %lith_channels_unbans unbans.
output_channels_kicksbansbyme=I have kicked %lith_channels_ikicked people, banned %lith_channels_ibanned and unbanned %lith_channels_iunbanned $+ .
output_channels_iwaskickedbanned=I've been kicked %lith_channels_iwaskicked $+ , banned %lith_channels_iwasbanned and unbanned %lith_channels_iwasunbanned times.
output_channels_totalmodes=Total channelmodes set: %lith_channels_modes $+ .
output_channels_opsvoices=%lith_channels_ops ops, %lith_channels_deops deops, %lith_channels_voices voices and %lith_channels_devoices devoices set.
output_channels_ioppedvoiced=I've opped %lith_channels_iop $+ , deopped %lith_channels_ideop $+ , voiced %lith_channels_ivoice and devoiced %lith_channels_idevoice people.
output_channels_iwasoppedvoiced=I've been opped %lith_channels_iwasopped $+ , deopped %lith_channels_iwasdeopped $+ , voiced %lith_channels_iwasvoiced and devoiced %lith_channels_iwasdevoiced times.
output_channels_setby=$calc(%lith_channels_modes - %lith_channels_servermodes - %lith_channels_serverops) ( $+ $round($calc((%lith_channels_modes - %lith_channels_servermodes - %lith_channels_serverops) / %lith_channels_modes * 100),0) $+ % $+ ) modes set by users, $calc(%lith_channels_servermodes + %lith_channels_serverops) ( $+ $round($calc((%lith_channels_servermodes + %lith_channels_serverops) / %lith_channels_modes * 100),0) $+ % $+ ) set by servers.
output_channels_setbyme=I have set %lith_channels_imode ( $+ $round($calc(%lith_channels_imode / %lith_channels_modes * 100),0) $+ % $+ ) of all channelmodes.
output_channels_invites=I've been invited to channels %lith_channels_invites times.
output_script_all=Running Lithium Stats version %lith_script_version $+ , installed $asctime(%lith_script_installtime, dd.mm.yyyy HH:nn) $+ , stats last reset at $asctime(%lith_script_lastreset, dd.mm.yyyy HH:nn) $+ . Using language file " $+ %lith_script_langname $+ " by %lith_script_langby $+ . Script loaded %lith_script_loaded times, stats output %lith_script_output times.
output_script_version=Lithium Stats version %lith_script_version $+ .
output_script_loaded=Script loaded %lith_script_loaded times.
output_script_output=Stats output %lith_script_output times.
output_script_installtime=Script installed $asctime(%lith_script_installtime, dd.mm.yyyy HH:nn) $+ .
output_script_lastreset=Stats last reset at $asctime(%lith_script_lastreset, dd.mm.yyyy HH:nn) $+ .
output_script_language=Using language file " $+ %lith_script_langname $+ " by %lith_script_langby $+ .
; Lithium Stats
; Simple stats-script
; All code copyright Nicd
; DO NOT modify this file if you don't know what you're doing
; $Id$
on *:START:{
if ($isdir(LithiumStats) == $false) { lith_echo *** 4WARNING! Lithium Stats has detected that you do not have the folder 'LithiumStats' inside your mIRC folder! Please refer to the readme file for installation instructions. The script will now close. | unload -rs lithstats.mrc }
if ($isdir(LithiumStats/lang) == $false) { lith_echo *** 4WARNING! Lithium Stats has detected that you do not have the language files installed in the LithiumStats\lang folder! Please refer to the readme file for installation instructions. The script will now close. | unload -rs lithstats.mrc }
if ($readini(lithstats.ini, SETTINGS, installed) == $null) {
lith_reset ALL
writeini lithstats.ini SETTINGS installed 1
writeini lithstats.ini SETTINGS installtime $ctime
}
if ($readini(lithstats.ini, SETTINGS, enabled) == 1) {
lith_write SETTINGS loaded $calc($readini(lithstats.ini, SETTINGS, loaded) + 1)
}
writeini lithstats.ini SETTINGS version 2.2
statswrite #nochan noserv Session Start: $asctime(ddd mmm d HH:nn:ss yyyy)
}
on *:EXIT:{ statswrite #nochan noserv Session Close: $asctime(ddd mmm d HH:nn:ss yyyy) }
on *:UNLOAD:{ statswrite #nochan noserv Session Close: $asctime(ddd mmm d HH:nn:ss yyyy) }
; ALIASES
alias statswrite {
noop
}
alias statstime {
return $asctime([HH:nn])
}
alias lith_none {
set %lith_none 1
unset %lith_none
}
alias lith_write {
writeini lithstats.ini $1 $2 $3-
}
alias lith_del {
remini lithstats.ini $1 $2
}
alias lith_getlanguages {
if ($1 == begin) { return $null }
elseif ($1 == end) { return $null }
elseif ($findfile(LithiumStats\lang,*.ini,$1) != $null) {
return $iif($readini(lithstats.ini, SETTINGS, language) == $readini($findfile(LithiumStats\lang,*.ini,$1), LANG, langname),$style(3)) $readini($findfile(LithiumStats\lang,*.ini,$1), LANG, langname) $+ :/lith_setlanguage $1
}
}
alias lith_reset {
if ($1 == ALL) {
if ($isfile(lithstats.ini) == $true) {
set %lith_reset_installtime $readini(lithstats.ini,SETTINGS,installtime)
set %lith_reset_language $readini(lithstats.ini,SETTINGS,language)
set %lith_reset_langnumber $readini(lithstats.ini,SETTINGS,langnumber)
set %lith_reset_langfile $readini(lithstats.ini,SETTINGS,langfile)
set %lith_reset_mode $readini(lithstats.ini,SETTINGS,mode)
lith_del TEXT
lith_del CTCP
lith_del DCC
lith_del SERVERS
lith_del CHANNELS
lith_del MODE
if ($isfile(LithiumStats\servers.txt) == $true) {
remove LithiumStats\servers.txt
}
if ($isfile(LithiumStats\channels.txt) == $true) {
remove LithiumStats\channels.txt
}
if ($isfile(LithiumStats\nicks.txt) == $true) {
remove LithiumStats\nicks.txt
}
remove lithstats.ini
}
lith_write SETTINGS enabled 1
lith_write SETTINGS resetinterval 0
lith_write SETTINGS lastreset $ctime
lith_write SETTINGS mode $iif(%lith_reset_mode != $null,%lith_reset_mode,say)
lith_write SETTINGS language $iif(%lith_reset_language != $null,%lith_reset_language,English)
lith_write SETTINGS langnumber $iif(%lith_reset_langnumber != $null,%lith_reset_langnumber,1)
lith_write SETTINGS langfile $iif(%lith_reset_langfile != $null,%lith_reset_langfile,LithiumStats\lang\english.ini)
lith_write SETTINGS installtime $iif(%lith_reset_installtime != $null,%lith_reset_installtime,$ctime)
lith_write SETTINGS installed 1
}
else {
lith_del $1
}
if ($1 == SERVERS) {
if ($isfile(LithiumStats\servers.txt) == $true) {
remove LithiumStats\servers.txt
}
}
if ($1 == CHANNELS) {
if ($isfile(LithiumStats\channels.txt) == $true) {
remove LithiumStats\channels.txt
}
}
if ($1 == NICKS) {
if ($isfile(LithiumStats\nicks.txt) == $true) {
remove LithiumStats\nicks.txt
}
}
if (%lith_reset_say != 0) {
set %lith_reset_data $1
lith_echo $lith_readlang(resetdata)
}
unset %lith_reset_*
}
alias lith_disable {
writeini lithstats.ini SETTINGS enabled 0
lith_echo $lith_readlang(disabled)
}
alias lith_enable {
writeini lithstats.ini SETTINGS enabled 1
lith_echo $lith_readlang(enabled)
}
alias lith_setresetinterval {
set %lith_resetinterval $?=" $+ $lith_readlang(question_setresetinterval) $+ "
lith_write SETTINGS resetinterval %lith_resetinterval
lith_echo $lith_readlang(setresetinterval)
unset %lith_resetinterval
}
alias lith_setlanguage {
lith_write SETTINGS language $readini($findfile(LithiumStats\lang,*.ini,$1),LANG,langname)
lith_write SETTINGS langfile $findfile(LithiumStats\lang,*.ini,$1)
lith_echo $lith_readlang(languageset)
}
alias lith_readlang {
return $readini($readini(lithstats.ini, SETTINGS, langfile), LANG, $1)
}
alias lith_echo {
echo -tan $1-
}
alias lith_checkreset {
if ($readini(lithstats.ini, SETTINGS, resetinterval) != 0) {
if ($calc($ctime - $readini(lithstats.ini, SETTINGS, lastreset)) > $readini(lithstats.ini, SETTINGS, resetinterval)) {
lith_write SETTINGS lastreset $ctime
set %lith_reset_say 0
lith_reset TEXT
set %lith_reset_say 0
lith_reset CTCP
set %lith_reset_say 0
lith_reset DCC
set %lith_reset_say 0
lith_reset SERVERS
set %lith_reset_say 0
lith_reset CHANNELS
set %lith_reset_say 0
lith_reset MODE
if ($readini(lithstats.ini, SETTINGS, resetecho) == 1) { lith_echo $lith_readlang(autoreset) }
}
}
}
alias lith_writeserver {
if ($isfile(LithiumStats\servers.txt) == $false) {
fopen -n lith_servers LithiumStats\servers.txt
fclose lith_servers
}
if (!$read(LithiumStats\servers.txt, w, $1)) { write LithiumStats\servers.txt $1 }
}
alias lith_writechannel {
if ($isfile(LithiumStats\channels.txt) == $false) {
fopen -n lith_channels LithiumStats\channels.txt
fclose lith_channels
}
if (!$read(LithiumStats\channels.txt, w, $1)) { write LithiumStats\channels.txt $1 }
}
alias lith_writenick {
if ($isfile(LithiumStats\nicks.txt) == $false) {
fopen -n lith_nicks LithiumStats\nicks.txt
fclose lith_nicks
}
if (!$read(LithiumStats\nicks.txt, w, $1)) { write LithiumStats\nicks.txt $1 }
}
alias lith_stats {
if ($readini(lithstats.ini, SETTINGS, enabled) == 1) {
lith_write SETTINGS output $calc($readini(lithstats.ini, SETTINGS, output) + 1)
}
if ($1 == TEXT) {
set %lith_text_total $iif($readini(lithstats.ini, TEXT, total) != $null,$readini(lithstats.ini, TEXT, total),0)
set %lith_text_private $iif($readini(lithstats.ini, TEXT, private) != $null,$readini(lithstats.ini, TEXT, private),0)
set %lith_text_mine $iif($readini(lithstats.ini, TEXT, mine) != $null,$readini(lithstats.ini, TEXT, mine),0)
set %lith_text_action $iif($readini(lithstats.ini, TEXT, action) != $null,$readini(lithstats.ini, TEXT, action),0)
set %lith_text_mineaction $iif($readini(lithstats.ini, TEXT, mineaction) != $null,$readini(lithstats.ini, TEXT, mineaction),0)
set %lith_text_notice $iif($readini(lithstats.ini, TEXT, notice) != $null,$readini(lithstats.ini, TEXT, notice),0)
set %lith_text_minenotice $iif($readini(lithstats.ini, TEXT, minenotice) != $null,$readini(lithstats.ini, TEXT, minenotice),0)
$iif($readini(lithstats.ini, SETTINGS, mode) == say, say, lith_echo) $lith_readlang(output_text_ $+ $2 $+ )
unset %lith_text_*
}
if ($1 == DCC) {
set %lith_dcc_getfail $iif($readini(lithstats.ini, DCC, getfail) != $null,$readini(lithstats.ini, DCC, getfail),0)
set %lith_dcc_getsuccess $iif($readini(lithstats.ini, DCC, getsuccess) != $null,$readini(lithstats.ini, DCC, getsuccess),0)
set %lith_dcc_get $calc(%lith_dcc_getfail + %lith_dcc_getsuccess)
set %lith_dcc_sendfail $iif($readini(lithstats.ini, DCC, sendfail) != $null,$readini(lithstats.ini, DCC, sendfail),0)
set %lith_dcc_sendsuccess $iif($readini(lithstats.ini, DCC, sendsuccess) != $null,$readini(lithstats.ini, DCC, sendsuccess),0)
set %lith_dcc_send $calc(%lith_dcc_sendfail + %lith_dcc_sendsuccess)
set %lith_dcc_total $calc(%lith_dcc_get + %lith_dcc_send)
set %lith_dcc_failures $calc(%lith_dcc_getfail + %lith_dcc_sendfail)
$iif($readini(lithstats.ini, SETTINGS, mode) == say, say, lith_echo) $lith_readlang(output_dcc_ $+ $2 $+ )
unset %lith_dcc_*
}
if ($1 == CTCP) {
set %lith_ctcp_total $iif($readini(lithstats.ini, CTCP, total) != $null,$readini(lithstats.ini, CTCP, total),0)
$iif($readini(lithstats.ini, SETTINGS, mode) == say, say, lith_echo) $lith_readlang(output_ctcp_ $+ $2 $+ )
unset %lith_ctcp_*
}
if ($1 == SERVERS) {
set %lith_servers_servtimes $iif($readini(lithstats.ini, SERVERS, totalconnects) != $null,$readini(lithstats.ini, SERVERS, totalconnects),0)
set %lith_servers_disconnects $iif($readini(lithstats.ini, SERVERS, disconnects) != $null,$readini(lithstats.ini, SERVERS, disconnects),0)
set %lith_servers_failedconnects $iif($readini(lithstats.ini, SERVERS, failedconnects) != $null,$readini(lithstats.ini, SERVERS, failedconnects),0)
set %lith_servers_servers $iif($isfile(LithiumStats\servers.txt),$lines(LithiumStats\servers.txt),0)
set %lith_servers_channels $iif($isfile(LithiumStats\channels.txt),$lines(LithiumStats\channels.txt),0)
set %lith_servers_nicks $iif($isfile(LithiumStats\nicks.txt),$lines(LithiumStats\nicks.txt),0)
set %lith_servers_chantimes $iif($readini(lithstats.ini, CHANNELS, ijoin) != $null,$readini(lithstats.ini, CHANNELS, ijoin),0)
set %lith_servers_nickchanges $iif($readini(lithstats.ini, SERVERS, nick) != $null,$readini(lithstats.ini, SERVERS, nick),0)
$iif($readini(lithstats.ini, SETTINGS, mode) == say, say, lith_echo) $lith_readlang(output_servers_ $+ $2 $+ )
unset %lith_servers_*
}
if ($1 == CHANNELS) {
set %lith_channels_invites $iif($readini(lithstats.ini, CHANNELS, invite) != $null,$readini(lithstats.ini, CHANNELS, invite),0)
set %lith_channels_joins $iif($readini(lithstats.ini, CHANNELS, join) != $null,$readini(lithstats.ini, CHANNELS, join),0)
set %lith_channels_ijoin $iif($readini(lithstats.ini, CHANNELS, ijoin) != $null,$readini(lithstats.ini, CHANNELS, ijoin),0)
set %lith_channels_parts $iif($readini(lithstats.ini, CHANNELS, part) != $null,$readini(lithstats.ini, CHANNELS, part),0)
set %lith_channels_ipart $iif($readini(lithstats.ini, CHANNELS, ipart) != $null,$readini(lithstats.ini, CHANNELS, ipart),0)
set %lith_channels_quits $iif($readini(lithstats.ini, CHANNELS, quit) != $null,$readini(lithstats.ini, CHANNELS, quit),0)
set %lith_channels_iquit $iif($readini(lithstats.ini, SERVERS, disconnects) != $null,$readini(lithstats.ini, SERVERS, disconnects),0)
set %lith_channels_modes $iif($readini(lithstats.ini, MODE, total) != $null,$readini(lithstats.ini, MODE, total),0)
set %lith_channels_imode $iif($readini(lithstats.ini, MODE, imode) != $null,$readini(lithstats.ini, MODE, imode),0)
set %lith_channels_ops $iif($readini(lithstats.ini, MODE, op) != $null,$readini(lithstats.ini, MODE, op),0)
set %lith_channels_voices $iif($readini(lithstats.ini, MODE, voice) != $null,$readini(lithstats.ini, MODE, voice),0)
set %lith_channels_deops $iif($readini(lithstats.ini, MODE, deop) != $null,$readini(lithstats.ini, MODE, deop),0)
set %lith_channels_devoices $iif($readini(lithstats.ini, MODE, devoice) != $null,$readini(lithstats.ini, MODE, devoice),0)
set %lith_channels_iop $iif($readini(lithstats.ini, MODE, iop) != $null,$readini(lithstats.ini, MODE, iop),0)
set %lith_channels_ivoice $iif($readini(lithstats.ini, MODE, ivoice) != $null,$readini(lithstats.ini, MODE, ivoice),0)
set %lith_channels_ideop $iif($readini(lithstats.ini, MODE, ideop) != $null,$readini(lithstats.ini, MODE, ideop),0)
set %lith_channels_idevoice $iif($readini(lithstats.ini, MODE, idevoice) != $null,$readini(lithstats.ini, MODE, idevoice),0)
set %lith_channels_iwasopped $iif($readini(lithstats.ini, MODE, iwasopped) != $null,$readini(lithstats.ini, MODE, iwasopped),0)
set %lith_channels_iwasvoiced $iif($readini(lithstats.ini, MODE, iwasvoiced) != $null,$readini(lithstats.ini, MODE, iwasvoiced),0)
set %lith_channels_iwasdeopped $iif($readini(lithstats.ini, MODE, iwasdeopped) != $null,$readini(lithstats.ini, MODE, iwasdeopped),0)
set %lith_channels_iwasdevoiced $iif($readini(lithstats.ini, MODE, iwasdevoiced) != $null,$readini(lithstats.ini, MODE, iwasdevoiced),0)
set %lith_channels_servermodes $iif($readini(lithstats.ini, MODE, servermode) != $null,$readini(lithstats.ini, MODE, servermode),0)
set %lith_channels_serverops $iif($readini(lithstats.ini, MODE, serverop) != $null,$readini(lithstats.ini, MODE, serverop),0)
set %lith_channels_servervoices $iif($readini(lithstats.ini, MODE, servervoice) != $null,$readini(lithstats.ini, MODE, servervoice),0)
set %lith_channels_iwaskicked $iif($readini(lithstats.ini, CHANNELS, iwaskicked) != $null,$readini(lithstats.ini, CHANNELS, iwaskicked),0)
set %lith_channels_ikicked $iif($readini(lithstats.ini, CHANNELS, ikicked) != $null,$readini(lithstats.ini, CHANNELS, ikicked),0)
set %lith_channels_kicks $iif($readini(lithstats.ini, CHANNELS, kick) != $null,$readini(lithstats.ini, CHANNELS, kick),0)
set %lith_channels_iwasbanned $iif($readini(lithstats.ini, CHANNELS, iwasbanned) != $null,$readini(lithstats.ini, CHANNELS, iwasbanned),0)
set %lith_channels_ibanned $iif($readini(lithstats.ini, CHANNELS, ibanned) != $null,$readini(lithstats.ini, CHANNELS, ibanned),0)
set %lith_channels_bans $iif($readini(lithstats.ini, CHANNELS, ban) != $null,$readini(lithstats.ini, CHANNELS, ban),0)
set %lith_channels_iwasunbanned $iif($readini(lithstats.ini, CHANNELS, iwasunbanned) != $null,$readini(lithstats.ini, CHANNELS, iwasunbanned),0)
set %lith_channels_iunbanned $iif($readini(lithstats.ini, CHANNELS, iunbanned) != $null,$readini(lithstats.ini, CHANNELS, iunbanned),0)
set %lith_channels_unbans $iif($readini(lithstats.ini, CHANNELS, unban) != $null,$readini(lithstats.ini, CHANNELS, unban),0)
$iif($readini(lithstats.ini, SETTINGS, mode) == say, say, lith_echo) $lith_readlang(output_channels_ $+ $2 $+ )
unset %lith_channels_*
}
if ($1 == SCRIPT) {
set %lith_script_version $iif($readini(lithstats.ini, SETTINGS, version) != $null,$readini(lithstats.ini, SETTINGS, version),0)
set %lith_script_output $iif($readini(lithstats.ini, SETTINGS, output) != $null,$readini(lithstats.ini, SETTINGS, output),0)
set %lith_script_loaded $iif($readini(lithstats.ini, SETTINGS, loaded) != $null,$readini(lithstats.ini, SETTINGS, loaded),0)
set %lith_script_installtime $iif($readini(lithstats.ini, SETTINGS, installtime) != $null,$readini(lithstats.ini, SETTINGS, installtime),0)
set %lith_script_lastreset $iif($readini(lithstats.ini, SETTINGS, lastreset) != $null,$readini(lithstats.ini, SETTINGS, lastreset),0)
set %lith_script_langname $iif($lith_readlang(langname) != $null,$lith_readlang(langname),0)
set %lith_script_langby $iif($lith_readlang(langby) != $null,$lith_readlang(langby),0)
$iif($readini(lithstats.ini, SETTINGS, mode) == say, say, lith_echo) $lith_readlang(output_script_ $+ $2 $+ )
unset %lith_script_*
}
}
; EVENTS
on *:TEXT:*:#:{
lith_checkreset
if ($readini(lithstats.ini, SETTINGS, enabled) == 1) {
lith_write TEXT total $calc($readini(lithstats.ini, TEXT, total) + 1)
}
statswrite $chan $server $statstime() < $+ $nick $+ > $1-
}
on *:TEXT:*:?:{
lith_checkreset
if ($readini(lithstats.ini, SETTINGS, enabled) == 1) {
lith_write TEXT total $calc($readini(lithstats.ini, TEXT, total) + 1)
lith_write TEXT private $calc($readini(lithstats.ini, TEXT, private) + 1)
}
}
on *:INPUT:#:{
lith_checkreset
if ($readini(lithstats.ini, SETTINGS, enabled) == 1) {
if ($1 == /me) {
lith_write TEXT action $calc($readini(lithstats.ini, TEXT, action) + 1)
lith_write TEXT mineaction $calc($readini(lithstats.ini, TEXT, mineaction) + 1)
}
if ($1 == /notice) {
lith_write TEXT minenotice $calc($readini(lithstats.ini, TEXT, minenotice) + 1)
}
lith_write TEXT total $calc($readini(lithstats.ini, TEXT, total) + 1)
lith_write TEXT mine $calc($readini(lithstats.ini, TEXT, mine) + 1)
}
}
on *:INPUT:?:{
lith_checkreset
if ($readini(lithstats.ini, SETTINGS, enabled) == 1) {
if ($1 == /me) {
lith_write TEXT action $calc($readini(lithstats.ini, TEXT, action) + 1)
lith_write TEXT mineaction $calc($readini(lithstats.ini, TEXT, mineaction) + 1)
}
if ($1 == /notice) {
lith_write TEXT minenotice $calc($readini(lithstats.ini, TEXT, minenotice) + 1)
}
lith_write TEXT total $calc($readini(lithstats.ini, TEXT, total) + 1)
lith_write TEXT mine $calc($readini(lithstats.ini, TEXT, mine) + 1)
lith_write TEXT private $calc($readini(lithstats.ini, TEXT, private) + 1)
}
}
on *:NOTICE:*:*:{
if ($readini(lithstats.ini, SETTINGS, enabled) == 1) {
if ($nick != $me) {
lith_write TEXT notice $calc($readini(lithstats.ini, TEXT, notice) + 1)
lith_write TEXT total $calc($readini(lithstats.ini, TEXT, total) + 1)
}
}
if ($nick != $me) { statswrite #nochan $server $statstime() - $+ $nick $+ - $1- }
}
on *:ACTION:*:#:{
if ($readini(lithstats.ini, SETTINGS, enabled) == 1) {
lith_write TEXT action $calc($readini(lithstats.ini, TEXT, action) + 1)
lith_write TEXT total $calc($readini(lithstats.ini, TEXT, total) + 1)
}
statswrite $chan $server $statstime() * $nick $1-
}
on *:ACTION:*:?:{
if ($readini(lithstats.ini, SETTINGS, enabled) == 1) {
lith_write TEXT action $calc($readini(lithstats.ini, TEXT, action) + 1)
lith_write TEXT total $calc($readini(lithstats.ini, TEXT, total) + 1)
lith_write TEXT private $calc($readini(lithstats.ini, TEXT, private) + 1)
}
}
on *:JOIN:#:{
if ($readini(lithstats.ini, SETTINGS, enabled) == 1) {
lith_write CHANNELS join $calc($readini(lithstats.ini, CHANNELS, join) + 1)
if ($nick == $me) {
lith_write CHANNELS ijoin $calc($readini(lithstats.ini, CHANNELS, ijoin) + 1)
lith_writechannel $chan
}
}
if ($nick != $me) { statswrite $chan $server $statstime() *** $nick has joined $chan }
}
on *:PART:#:{
if ($readini(lithstats.ini, SETTINGS, enabled) == 1) {
lith_write CHANNELS part $calc($readini(lithstats.ini, CHANNELS, part) + 1)
if ($nick == $me) {
lith_write CHANNELS ipart $calc($readini(lithstats.ini, CHANNELS, ipart) + 1)
}
}
if ($nick != $me) { statswrite $chan $server $statstime() *** $nick has left $chan $iif($1-,( $+ $1- $+ ), $null) }
}
on *:QUIT:{
if ($readini(lithstats.ini, SETTINGS, enabled) == 1) {
lith_write CHANNELS quit $calc($readini(lithstats.ini, CHANNELS, quit) + 1)
}
if ($nick != $me) { statswrite #nochan $server $statstime() *** $nick Quit $iif($1-,( $+ $1- $+ ), $null) }
}
on *:KICK:#:{
if ($readini(lithstats.ini, SETTINGS, enabled) == 1) {
lith_write CHANNELS kick $calc($readini(lithstats.ini, CHANNELS, kick) + 1)
if ($nick == $me) {
lith_write CHANNELS ikicked $calc($readini(lithstats.ini, CHANNELS, ikicked) + 1)
}
if ($knick == $me) {
lith_write CHANNELS iwaskicked $calc($readini(lithstats.ini, CHANNELS, iwaskicked) + 1)
}
}
if ($nick != $me) { statswrite $chan $server $statstime() *** $knick was kicked by $nick ( $+ $1- $+ ) }
}
on *:BAN:#:{
if ($readini(lithstats.ini, SETTINGS, enabled) == 1) {
lith_write CHANNELS ban $calc($readini(lithstats.ini, CHANNELS, ban) + 1)
lith_write MODE total $calc($readini(lithstats.ini, MODE, total) + 1)
if ($chan($chan).ial) {
var %~ = $banmask, %! = $ialchan(%~,$chan,0), %$ = 1, %"
while (%$ <= %!) {
%" = %" $ialchan(%~,$chan,%$).nick
inc %$
}
if (%" == $me) { lith_write CHANNELS iwasbanned $calc($readini(lithstats.ini, CHANNELS, iwasbanned) + 1) }
}
}
if ($nick == $me) { lith_write CHANNELS ibanned $calc($readini(lithstats.ini, CHANNELS, ibanned) + 1) | lith_write MODE imode $calc($readini(lithstats.ini, MODE, imode) + 1) }
if ($nick != $me) { statswrite $chan $server $statstime() *** $nick sets mode: +b $banmask }
}
on *:UNBAN:#:{
if ($readini(lithstats.ini, SETTINGS, enabled) == 1) {
lith_write CHANNELS unban $calc($readini(lithstats.ini, CHANNELS, ban) + 1)
if ($chan($chan).ial) {
var %~ = $banmask, %! = $ialchan(%~,$chan,0), %$ = 1, %"
while (%$ <= %!) {
%" = %" $ialchan(%~,$chan,%$).nick
inc %$
}
if (%" == $me) { lith_write CHANNELS iwasunbanned $calc($readini(lithstats.ini, CHANNELS, iwasunbanned) + 1) }
}
}
if ($nick == $me) { lith_write CHANNELS iunbanned $calc($readini(lithstats.ini, CHANNELS, iunbanned) + 1) | lith_write MODE imode $calc($readini(lithstats.ini, MODE, imode) + 1) }
statswrite $chan $server $statstime() *** $nick sets mode: -b $banmask
}
on *:NICK:{
if ($readini(lithstats.ini, SETTINGS, enabled) == 1) {
lith_write SERVERS nick $calc($readini(lithstats.ini, SERVERS, nick) + 1)
if ($nick == $me) { lith_writenick $newnick }
}
if ($nick != $me && $newnick != $me) { statswrite #nochan noserv $statstime() *** $nick is now known as $newnick }
}
on *:INVITE:*:{
if ($readini(lithstats.ini, SETTINGS, enabled) == 1) {
lith_write CHANNELS invite $calc($readini(lithstats.ini, CHANNELS, invite) + 1)
}
}
on *:MODE:#:{
if ($readini(lithstats.ini, SETTINGS, enabled) == 1) {
lith_write MODE total $calc($readini(lithstats.ini, MODE, total) + 1)
if ($nick == $me) {
lith_write MODE imode $calc($readini(lithstats.ini, MODE, imode) + 1)
}
}
if ($nick != $me) { statswrite $chan $server $statstime() *** $nick sets mode: $1- }
}
on *:SERVERMODE:#:{
if ($readini(lithstats.ini, SETTINGS, enabled) == 1) {
lith_write MODE total $calc($readini(lithstats.ini, MODE, total) + 1)
lith_write MODE servermode $calc($readini(lithstats.ini, MODE, servermode) + 1)
}
}
on *:OP:#:{
if ($readini(lithstats.ini, SETTINGS, enabled) == 1) {
lith_write MODE total $calc($readini(lithstats.ini, MODE, total) + 1)
lith_write MODE op $calc($readini(lithstats.ini, MODE, op) + 1)
if ($nick == $me) {
lith_write MODE imode $calc($readini(lithstats.ini, MODE, imode) + 1)
lith_write MODE iop $calc($readini(lithstats.ini, MODE, iop) + 1)
}
if ($opnick == $me) {
lith_write MODE iwasopped $calc($readini(lithstats.ini, MODE, iwasopped) + 1)
}
}
if ($nick != $me) { statswrite $chan $server $statstime() *** $nick sets mode: +o $opnick }
}
on *:SERVEROP:#:{
if ($readini(lithstats.ini, SETTINGS, enabled) == 1) {
lith_write MODE total $calc($readini(lithstats.ini, MODE, total) + 1)
lith_write MODE serverop $calc($readini(lithstats.ini, MODE, serverop) + 1)
lith_write MODE servermode $calc($readini(lithstats.ini, MODE, servermode) + 1)
if ($opnick == $me) {
lith_write MODE iwasopped $calc($readini(lithstats.ini, MODE, iwasopped) + 1)
}
}
}
on *:VOICE:#:{
if ($readini(lithstats.ini, SETTINGS, enabled) == 1) {
lith_write MODE total $calc($readini(lithstats.ini, MODE, total) + 1)
lith_write MODE voice $calc($readini(lithstats.ini, MODE, voice) + 1)
if ($nick == $me) {
lith_write MODE imode $calc($readini(lithstats.ini, MODE, imode) + 1)
lith_write MODE ivoice $calc($readini(lithstats.ini, MODE, ivoice) + 1)
}
if ($vnick == $me) {
lith_write MODE iwasvoiced $calc($readini(lithstats.ini, MODE, iwasvoiced) + 1)
}
}
if ($nick != $me) { statswrite $chan $server $statstime() *** $nick sets mode: +v $vnick }
}
on *:DEOP:#:{
if ($readini(lithstats.ini, SETTINGS, enabled) == 1) {
lith_write MODE total $calc($readini(lithstats.ini, MODE, total) + 1)
lith_write MODE deop $calc($readini(lithstats.ini, MODE, deop) + 1)
if ($nick == $me) {
lith_write MODE imode $calc($readini(lithstats.ini, MODE, imode) + 1)
lith_write MODE ideop $calc($readini(lithstats.ini, MODE, ideop) + 1)
}
if ($opnick == $me) {
lith_write MODE iwasdeopped $calc($readini(lithstats.ini, MODE, iwasdeopped) + 1)
}
}
if ($nick != $me) { statswrite $chan $server $statstime() *** $nick sets mode: -o $opnick }
}
on *:DEVOICE:#:{
if ($readini(lithstats.ini, SETTINGS, enabled) == 1) {
lith_write MODE total $calc($readini(lithstats.ini, MODE, total) + 1)
lith_write MODE devoice $calc($readini(lithstats.ini, MODE, devoice) + 1)
if ($nick == $me) {
lith_write MODE imode $calc($readini(lithstats.ini, MODE, imode) + 1)
lith_write MODE idevoice $calc($readini(lithstats.ini, MODE, idevoice) + 1)
}
if ($vnick == $me) {
lith_write MODE iwasdevoiced $calc($readini(lithstats.ini, MODE, iwasdevoiced) + 1)
}
}
if ($nick != $me) { statswrite $chan $server $statstime() *** $nick sets mode: -v $vnick }
}
on *:TOPIC:#:{
if ($nick != $me) { statswrite $chan $server $statstime() *** $nick changes topic to ' $+ $1- $+ ' }
}
ctcp *:*:*:{
if ($readini(lithstats.ini, SETTINGS, enabled) == 1) {
lith_write CTCP total $calc($readini(lithstats.ini, CTCP, total) + 1)
}
}
on *:GETFAIL:*:{
if ($readini(lithstats.ini, SETTINGS, enabled) == 1) {
lith_write DCC getfail $calc($readini(lithstats.ini, DCC, getfail) + 1)
}
}
on *:SENDFAIL:*:{
if ($readini(lithstats.ini, SETTINGS, enabled) == 1) {
lith_write DCC sendfail $calc($readini(lithstats.ini, DCC, sendfail) + 1)
}
}
on *:FILERCVD:*:{
if ($readini(lithstats.ini, SETTINGS, enabled) == 1) {
lith_write DCC getsuccess $calc($readini(lithstats.ini, DCC, getsuccess) + 1)
}
}
on *:FILESENT:*:{
if ($readini(lithstats.ini, SETTINGS, enabled) == 1) {
lith_write DCC sendsuccess $calc($readini(lithstats.ini, DCC, sendsuccess) + 1)
}
}
on *:CONNECT:{
if ($readini(lithstats.ini, SETTINGS, enabled) == 1) {
lith_write SERVERS totalconnects $calc($readini(lithstats.ini, SERVERS, totalconnects) + 1)
lith_writeserver $server
lith_writenick $me
}
}
on *:DISCONNECT:{
if ($readini(lithstats.ini, SETTINGS, enabled) == 1) {
lith_write SERVERS disconnects $calc($readini(lithstats.ini, SERVERS, disconnects) + 1)
}
}
on *:CONNECTFAIL:{
if ($readini(lithstats.ini, SETTINGS, enabled) == 1) {
lith_write SERVERS failedconnects $calc($readini(lithstats.ini, SERVERS, failedconnects) + 1)
}
}
menu menubar {
-
Lithium Stats
.$style(2) Output:/lith_none
.Text
..All:/lith_stats TEXT all
..-
..Total lines:/lith_stats TEXT total
..I have typed...:/lith_stats TEXT ityped
..Channel vs. private:/lith_stats TEXT cvsp
..Text / action / notice:/lith_stats TEXT textactionnotice
.DCC
..All:/lith_stats DCC all
..-
..Sends:/lith_stats DCC sends
..Gets:/lith_stats DCC gets
..Sends / Gets ratio:/lith_stats DCC sendsvsgets
..Failures:/lith_stats DCC failures
..Sends / Gets failures ratio:/lith_stats DCC sendsvsgetsfailures
.CTCP
..All:/lith_stats CTCP total
.Servers, channels, nicks...
..All:/lith_stats SERVERS all
..-
..$style(2) Servers:/lith_none
..Total:/lith_stats SERVERS servers
..Disconnects:/lith_stats SERVERS disconnects
..Connection failures:/lith_stats SERVERS failedconnects
..-
..$style(2) Channels:/lith_none
..Total:/lith_stats SERVERS channels
..-
..$style(2) Nicks:/lith_none
..Nickchanges:/lith_stats SERVERS nickchanges
..My nicks:/lith_stats SERVERS nicks
.Channel-related
..All:/lith_stats CHANNELS all
..-
..$style(2) Joins, parts, quits:/lith_none
..Total:/lith_stats CHANNELS joinspartsquits
..My share...:/lith_stats CHANNELS myjoinsparts
..Invites:/lith_stats CHANNELS invites
..-
..$style(2) Kicks, bans:/lith_none
..Kicks / bans:/lith_stats CHANNELS kicksbans
..Kicked / banned by me...:/lith_stats CHANNELS kicksbansbyme
..I was kicked / banned...:/lith_stats CHANNELS iwaskickedbanned
..-
..$style(2) Channel modes:/lith_none
..Total modes set:/lith_stats CHANNELS totalmodes
..Ops, voices:/lith_stats CHANNELS opsvoices
..I opped / voiced...:/lith_stats CHANNELS ioppedvoiced
..I was opped / voiced...:/lith_stats CHANNELS iwasoppedvoiced
..Set by user / server ratio:/lith_stats CHANNELS setby
..Set by me:/lith_stats CHANNELS setbyme
.Script stats
..All:/lith_stats SCRIPT all
..-
..Version:/lith_stats SCRIPT version
..Script loaded...:/lith_stats SCRIPT loaded
..Output:/lith_stats SCRIPT output
..Installed:/lith_stats SCRIPT installtime
..Last reset:/lith_stats SCRIPT lastreset
..Language file:/lith_stats SCRIPT language
.-
.$style(2) Settings:/lith_none
.Control
..$iif($readini(lithstats.ini, SETTINGS, enabled) == 1,$style(3)) Enabled:/lith_enable
..$iif($readini(lithstats.ini, SETTINGS, enabled) == 0,$style(3)) Disabled:/lith_disable
.Output mode
..$iif($readini(lithstats.ini, SETTINGS, mode) == say,$style(3)) /say:/lith_write SETTINGS mode say
..$iif($readini(lithstats.ini, SETTINGS, mode) == echo,$style(3)) /echo:/lith_write SETTINGS mode echo
.Output language
..$submenu($lith_getlanguages($1))
.-
.Set reset interval ( $+ $readini(lithstats.ini, SETTINGS, resetinterval) $+ s):/lith_setresetinterval
.$iif($readini(lithstats.ini, SETTINGS, resetecho) == 1,$style(1)) When reset, echo message to screen:$iif($readini(lithstats.ini, SETTINGS, resetecho) == 1,lith_write SETTINGS resetecho 0,lith_write SETTINGS resetecho 1)
.Reset ALL stats now:/lith_reset ALL
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment