# Tame the WHOWAS history! # by Mycroft (mycroft@ai.mit.edu) ALIAS STRIPCHAN { assign function_return $strip(#+-*/\\={}[]<>!@$$%^~`,?:|'\". $0-) } ALIAS PURGE { foreach $0 i { purge $0.$i } ^assign -i ^assign -$0 } ALIAS WHOIS { purge whowas.$stripchan($0) //whois $0 } ALIAS WHOWAS { purge whowas.$stripchan($0) //whowas $0 } ON #^SEND_MSG 69 * { purge whowas.$stripchan($0) } ON #^SEND_NOTICE 69 * { purge whowas.$stripchan($0) } ON #^CONNECT 69 * { purge whowas } ON #^TIMER 69 * { foreach whowas i { if (time() - whowas.$(i).time > 60) { purge whowas.$i } } assign -i } ON ^311 * { _whowas_314 is $0- assign -whowas.last } ON ^319 * { echo *** on channels: $1- } ON ^301 * { echo *** $0 is away: $1- } ON ^313 * { echo *** $1 is an IRC operator } ON ^317 * { if ([$2] == [1]) { echo *** $1 has been idle 1 second } { echo *** $1 has been idle $2 seconds } } ON ^314 * { _whowas_start $stripchan($0) $0- } ALIAS _WHOWAS_START { assign whowas.$0.314 $1- assign whowas.$0.time $time() assign whowas.last $0 $stripchan($2).$stripchan($3) } ON ^312 * { if (whowas.last) { _whowas_do $whowas.last $stripchan($0) $0- } { _whowas_312 $0- } } ALIAS _WHOWAS_DO { if ([$(whowas.$0.past.$1.$2)]) { } { assign whowas.$0.past.$1.$2 1 assign whowas.$0.312 $3- _whowas_314 was $(whowas.$0.314) _whowas_312 $3- } assign -whowas.last } ALIAS _WHOWAS_314 { if ([$5] == [*]) { echo *** $2 $0 $3@$4 \($6-) } { echo *** $2 $0 $3@$4 \($6-) on channel $5 } } ALIAS _WHOWAS_312 { echo *** on irc via server $1 \($2-) }