Commit Graph

134 Commits

Author SHA1 Message Date
Pragmatic Software 9f265a0f0e Do not enforce anti-flood on logged in bot admins 2015-02-15 20:16:37 -08:00
Pragmatic Software 800b097a34 Use NickList instead of MessageHistory for target channels 2015-02-14 04:03:18 -08:00
Pragmatic Software e5909965f7 Move anti-away stuff to its own AntiAway.pm module; add /me actions to anti-away detection 2014-12-27 04:53:42 +00:00
Pragmatic Software d1e7abc175 Add event dispatcher module to allow modules to dispatch events and
to register handlers to listen for events.

Update IRCHandlers module to use new event dispatcher to dispatch
irc.events.  Update several modules to register with dispatcher
to listen for irc.events.

Improve handling of reconnection upon unexpected disconnection.

Todo: update more things to use new event dispatcher logic.
2014-11-01 00:15:21 +00:00
Pragmatic Software 5a63fbd705 Auto-kick people who change nicks to a nick matching $bad_away_nicks 2014-10-28 20:35:33 +00:00
Pragmatic Software a679b0ff15 Improve handling of KICK events wrt to message history 2014-10-14 02:32:22 +00:00
Pragmatic Software 83af062376 Fix case-sensitivity to show QUIT messages properly 2014-09-09 07:19:10 +00:00
Pragmatic Software 34d9a2a6d9 Appropriately wildcard /gateway/ hostmask bans 2014-08-18 14:57:12 +00:00
Pragmatic Software 654cce66a5 Improve check for ban-evasion when nick-change is detected 2014-08-12 05:51:21 +00:00
Pragmatic Software 23b725eeb8 Prevent warning about given/when; incorporate general offense counter in enter abuse offenses; decrement enter abuses once every 24 hours instead of once per hour 2014-07-11 12:54:56 +00:00
Pragmatic Software 35e150d2b6 Optimize ban-evasion logic to significantly reduce number of SQLite queries; add registry entry for debugging ban-evasion 2014-05-21 04:52:17 +00:00
Pragmatic Software 5ba8ab0a4b Do not ban nick-flood on non-channels 2014-05-20 22:24:58 +00:00
Pragmatic Software 39c0cd3fb5 Add registry entry to enable/disable antiflood enforcement 2014-05-20 10:14:09 +00:00
Pragmatic Software 710bbb76cc Add registry get_array_value() subroutine 2014-05-19 09:55:47 +00:00
Pragmatic Software 349afd4ae0 Correct enter_abuse_punishment default value 2014-05-19 04:30:36 +00:00
Pragmatic Software 937282a114 Add more values to registry for antiflood and lagchecker 2014-05-19 02:42:18 +00:00
Pragmatic Software 30e3c5ce35 Remove PBot getter/setters; move anti-flood registry defaults to AntiFlood.pm 2014-05-18 20:09:05 +00:00
Pragmatic Software e07df35cbf Move command modules out of PBot.pm and into their respective modules
E.g., FactoidCommands.pm is now loaded inside Factoids.pm, etc.

Misc reformatting/refactoring of PBot.pm
2014-05-18 00:27:57 +00:00
Pragmatic Software d955bfa06c Add centralized configuration registry module
Allows changing of bot configuration values without needing to restart
bot instance or needing to edit pbot.pl script.

Registry will initially be populated with default values from pbot.pl,
but if a registry file exists then the registry values will take
precedence over the pbot.pl values. For instance, if you regset the
bot trigger to '%' then the trigger will be '%' even if pbot.pl has '!'
or something else explicitly set.

Some registry items can have trigger hooks associated with them.  For
instance, the irc->botnick registry entry has a change_botnick_trigger
associated with it which changes the IRC nick on the server when a new
value is set via regset/regadd.

Tons of other fixes and improvements throughout.
2014-05-17 20:08:19 +00:00
Pragmatic Software 2e2188532c Correct logic for Guest nick-change allowance 2014-05-16 05:58:21 +00:00
Pragmatic Software a7681c36cb Don't enforce nick anti-flood for services-mandated changes to Guest nick 2014-05-16 05:53:39 +00:00
Pragmatic Software cd54dcb573 Track and handle nick-change events; add anti-nick-flood detection 2014-05-16 00:48:46 +00:00
Pragmatic Software 1f242aeec4 Detect and handle KICK events 2014-05-15 15:49:56 +00:00
Pragmatic Software f8fc04f6e5 Distinct JOIN and DEPARTURE events to improve join-flood detection, etc 2014-05-15 01:39:33 +00:00
Pragmatic Software 11efde4d0d Comment out some verbose debugging log statements 2014-05-13 15:09:29 +00:00
Pragmatic Software 54ac8ec0ef Convert message history to use SQLite database instead of Perl hashtable
Added MessageHistory.pm and MessageHistory_SQLite.pm.  May eventually port
and add MessageHistory_Hashtable.pm as was done with Quotegrabs, but this is
not particularly high on the todo list.

Antiflood.pm has been updated to use the new MessageHistory API.

The `recall` command has been moved from Quotegrabs into MessageHistory.  It
also now has the ability to ignore messages containing the recall command
itself, for improved usability.

Likewise, the `grab` command will now ignore previous `grab` commands when
grabbing by regex in order to prevent accidentally grabbing previous grab
attempts.

The `join` and `part` commands have been improved to accept multiple channels,
and `part` will use the current channel if none is provided.
2014-05-13 10:15:52 +00:00
Pragmatic Software 2c2b2c2e4b Truncate all messages beyond MAX_NICK_MESSAGES 2014-05-05 05:18:59 +00:00
Pragmatic Software 6dabff19bb Fix ban evasion kicking 2014-04-21 07:26:06 +00:00
Pragmatic Software 8cd59b25da Fix chanop command execution, kick ban evaders 2014-04-19 10:38:16 +00:00
Pragmatic Software 1831d0775d anti-flood: Enter abuse now requires 10 seconds or less between messages 2014-03-13 12:00:28 +00:00
Pragmatic Software 087c819069 anti-flood: Add enter-key abuse tracking; use duration() for displaying ban-lengths; save message history after prune 2014-03-12 22:13:05 +00:00
Pragmatic Software fe020443bb anti-flood: Set hostmask to last known nickserv account when checking accounts until nick without account is found 2014-03-10 08:15:33 +00:00
Pragmatic Software bd3fa4dee3 anti-flood: Improve linking of accounts 2014-03-10 06:28:56 +00:00
Pragmatic Software e808286f24 anti-flood: Now tracks if a user uses different NickServ accounts, and remembers each one for ban-evasion detection 2014-03-10 03:50:02 +00:00
Pragmatic Software e6e02259e4 anti-flood: execute whois command more smartly 2014-03-09 07:15:50 +00:00
Pragmatic Software 3bd73c4866 Improvements to anti-flood message history storage and maintenance 2014-03-09 06:56:48 +00:00
Pragmatic Software 4bcd485c2e Anti-flood: remove some log messages to reduce noise; fix +q $a:account detection 2014-03-07 16:48:56 +00:00
Pragmatic Software e1c4c30743 Slight rewording of join-flood notification message to improve awareness of automatic unbanning 2014-03-05 14:32:24 +00:00
Pragmatic Software 2a4c1bafd1 Don't ban if $a:account matches account 2014-03-04 10:50:12 +00:00
Pragmatic Software 5a61f57f3c Use Storable to save/load message history hash
Reuse config_dir/data_dir variable in pbot.pl
2014-02-05 01:10:56 +00:00
Pragmatic Software ece84c23f8 Remove left-over nick/host lower-casing code 2013-11-17 17:05:20 +00:00
Pragmatic Software f618b29282 Do not lowercase hostmask/nicks in message history (quotegrab now preserves nick case) 2013-11-14 06:35:40 +00:00
Pragmatic Software 274193bed7 Allow quote grabbers to delete their own grabs 2013-10-26 02:39:54 +00:00
Pragmatic Software 1155205f0e Bot now keeps message history for itself -- can now be grabbed for quotegrabs 2013-10-22 18:57:08 +00:00
Pragmatic Software a4def7d653 Fix potential race-condition check-ban issue where a server could send a message immediately after someone is banned, causing them to be falsely detected as evading a ban 2013-10-14 11:53:34 +00:00
Pragmatic Software 7decfdf28a Correct devalidation and QUIT event issues 2013-09-14 01:56:00 +00:00
Pragmatic Software 23d2e57527 Added ability to lock factoids to prevent editing; improved detection of ban-evasion by devalidating accounts on part/quit and devalidating existing accounts that match a banmask when a ban occurs 2013-09-13 21:48:19 +00:00
Pragmatic Software a6f608cda5 Don't remove ban_timeout on -q (only +b/-b are tracked); use wildcard host when banning for evasion instead of specific host 2013-08-06 19:56:28 +00:00
Pragmatic Software 2a332d6415 Improve ban-evasion detection 2013-08-03 17:26:49 +00:00
Pragmatic Software 2509bcec64 Fix splitting of IPv6 masks in modes in IRC/Connection.pm
Include channel in "Unbanning ..." message in unban_user
Set target_nickserv_account if accounts match in check_bans
2013-07-30 09:50:59 +00:00