<commit_before>#!/usr/bin/perl -w
#
# File: pbot2.pl
# Author: pragma_
#
# Purpose: IRC Bot (2nd generation)
#
# Version History:
########################

my $VERSION = "0.3.13";

########################
# todo! add support for admin management
# todo! multi-channel support pathetic
# todo! most of this crap needs to be refactored
# 0.3.13(07/01/07): fork all modules
#                   added unload_module, enable_command, disable_command
#                   automatically export factoids every $export_factoids_timeout seconds
# 0.3.12(05/20/07): lol?  Prevent recursive aliasing infinite loop, x -> a, a -> x
# 0.3.11(05/20/07): added 'alias'
# 0.3.10(05/08/05): dont ban by nick, wait for nickserv response before joining chans
# 0.3.9 (05/06/05): stop logging joins, fixed join flood ban?
# 0.3.8 (04/28/05): changed 'top10' to 'top20' throughout
# 0.3.7 (04/28/05): 'top10 recent' command lists 10 most recent factoid additions
# 0.3.6 (04/15/05): join/part flood earns ban (broken, I'm lazy)
# 0.3.5 (03/24/05): fix bug in interpret_command re $commands and $keyword
#                   keeps track of op state in multi-channels (but not commands)
#                   added nick searching to top10
# 0.3.4 (03/22/05): added kick
#                   list also lists admins
#                   ban also kicks nick
#                   unban also modes -b in addition to ChanServ AUTOREM DEL
#                   oops, moved $is_opped = 0 from lose_ops() to on_mode()
# 0.3.3 (03/21/05): added ban, unban using ChanServ AUTOREM
# 0.3.2 (03/20/05): stays opped for a minimum of 5 minutes before deop
# 0.3.1 (03/18/05): log out departed admins
#                   implemented ignore and unignore
#                   flooding with commands triggers timed ignore
#                   no flood consequences for logged in admins
# 0.3.0 (03/17/05): Hi-res timer support.
#                   renamed %admin_commands to %internal_commands
#                   added admin levels to %admin_commands
#                   added access levels to internal commands
#                   interpret_command uses access levels and checks login status
#                   removed all extraneous loggedin() checks
#                   internal commands processed before bot commands<commit_msg>Don't expand escaped dollar-signs in factoids<commit_after>#!/usr/bin/perl -w
#
# File: pbot2.pl
# Author: pragma_
#
# Purpose: IRC Bot (2nd generation)
#
# Version History:
########################

my $VERSION = "0.3.14";

########################
# todo! add support for admin management
# todo! multi-channel support pathetic
# todo! most of this crap needs to be refactored
# 0.3.14(07/03/07): do not expand escaped dollar-signs in factoids (adlib)
# 0.3.13(07/01/07): fork all modules
#                   added unload_module, enable_command, disable_command
#                   automatically export factoids every $export_factoids_timeout seconds
# 0.3.12(05/20/07): lol?  Prevent recursive aliasing infinite loop, x -> a, a -> x
# 0.3.11(05/20/07): added 'alias'
# 0.3.10(05/08/05): dont ban by nick, wait for nickserv response before joining chans
# 0.3.9 (05/06/05): stop logging joins, fixed join flood ban?
# 0.3.8 (04/28/05): changed 'top10' to 'top20' throughout
# 0.3.7 (04/28/05): 'top10 recent' command lists 10 most recent factoid additions
# 0.3.6 (04/15/05): join/part flood earns ban (broken, I'm lazy)
# 0.3.5 (03/24/05): fix bug in interpret_command re $commands and $keyword
#                   keeps track of op state in multi-channels (but not commands)
#                   added nick searching to top10
# 0.3.4 (03/22/05): added kick
#                   list also lists admins
#                   ban also kicks nick
#                   unban also modes -b in addition to ChanServ AUTOREM DEL
#                   oops, moved $is_opped = 0 from lose_ops() to on_mode()
# 0.3.3 (03/21/05): added ban, unban using ChanServ AUTOREM
# 0.3.2 (03/20/05): stays opped for a minimum of 5 minutes before deop
# 0.3.1 (03/18/05): log out departed admins
#                   implemented ignore and unignore
#                   flooding with commands triggers timed ignore
#                   no flood consequences for logged in admins
# 0.3.0 (03/17/05): Hi-res timer support.
#                   renamed %admin_commands to %internal_commands
#                   added admin levels to %admin_commands
#                   added access levels to internal commands
#                   interpret_command uses access levels and checks login status
#                   removed all extraneous loggedin() checks
#                   internal commands processed before bot commands
{'fraction_non_alphanumeric': 0.11473300450353849, 'fraction_numerical': 0.06562298949174351, 'mean_word_length': 2.4043795620437955, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 2, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5404117', 'n_tokens_mistral': 1550, 'n_tokens_neox': 1347, 'n_words': 509}