Pragmatic Software
9031d97910
Remove left-over debug messages
2015-05-12 12:59:22 -07:00
Pragmatic Software
fa6dad12cd
Add Aliases
table to MessageHistory
...
Improve linking of known aliases for users by using an aliases table
to track the linkages.
Improve check-bans implementation to use new aliases table for
significant performance gains and reduced resource usage.
2015-05-11 21:27:22 -07:00
Pragmatic Software
3776bef88a
Reduce WHOIS queries when target joins multiple channels at once
2015-05-10 12:36:47 -07:00
Pragmatic Software
3be6755a61
Do not ignore last-spoken nick if nick is logged in bot admin
...
Add debug_enter_abuse registry entry
2015-05-06 21:10:55 -07:00
Pragmatic Software
7f87730de8
Improve handling of Nickserv accounts in check-bans and unbanme
2015-03-27 04:08:47 -07:00
Pragmatic Software
2e9f15b7e2
Support IPv6 banmasks
2015-03-23 04:18:33 -07:00
Pragmatic Software
9a52fffcdd
Rename ShitList to BlackList; minor refactor of IgnoreList
2015-03-16 21:08:25 -07:00
Pragmatic Software
e604767517
Add support for shitlisting hostmasks
2015-03-15 13:52:30 -07:00
Pragmatic Software
7970018777
Improve handling of nick-change flood
2015-03-11 02:00:10 -07:00
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
Pragmatic Software
7f2cefea7a
Don't check for ban evasion on PARTs
2013-07-28 14:12:57 +00:00
Pragmatic Software
d170f75924
Improve ban evasion detection
2013-07-28 10:31:12 +00:00
Pragmatic Software
416115f12f
Ban timeouts hash converted to DualIndexHashObject to properly group masks by channels
2013-07-24 12:35:40 +00:00
Pragmatic Software
dc52430044
Add SSL support, and other misc updates
2013-02-25 02:27:24 +00:00
Pragmatic Software
208f89837f
Improve handling of auto-op and op-commands on per-channel basis
...
Restore functionality to log out admins when they part/quit
Improve display of quit messages in log
2012-10-27 21:03:10 +00:00
Pragmatic Software
f61bb61aeb
Channels: Properly check for arguments to chanadd/chanrem
...
HashObject: Fix potential divide by zero
compiler_vm: Limit cpu usage and kill processes using excess cpu
Unbuffer stdout
2012-10-05 01:59:04 +00:00
Pragmatic Software
2b5ff48a4c
Interpreter: tell <nick> about <command> now case-insensitive
...
AntiFlood: Correct use of ignore list
IgnoreList: Ignoring user without args now permanent instead of 5 mins
Save time when ignore expires instead of seconds remaining
Improve output of `ignore list` command for readability
2012-09-06 10:09:44 +00:00
Pragmatic Software
6b35dc210c
Skip message containing grab command when grabbing own nick; match brackets for compiler-block; etc
2012-08-12 16:41:38 +00:00
Pragmatic Software
876d9fb5c6
Improved grab command to accept regex for history
2012-08-01 09:57:43 +00:00
Pragmatic Software
8a70c06096
Misc bug fixes and tweaks
2012-07-22 19:22:30 +00:00
Pragmatic Software
dd7f84ceff
bantracker: track +q and +b separately to prevent loss of information
...
bantracker: do not ban someone if their hostmask matches their +q mask
bantracker: remove ban timeouts on -q/-b
antiflood: unbanme will not work if manual ban/quiet set in place
2011-12-17 11:43:21 +00:00
Pragmatic Software
d7dc16346c
ban-tracker: track whether ban is +q or +b; do not ban evaders of generic +b bans ending with !*@*
...
anti-flood: improved logic of catching ban evaders
2011-12-15 06:18:10 +00:00
Pragmatic Software
036ae7cdfb
antiflood: do not check accounts if no account
2011-12-12 23:33:39 +00:00
Pragmatic Software
fa01bdde6f
antiflood: fixed code indentation
2011-12-12 19:40:54 +00:00
Pragmatic Software
2fb0598a0e
ban evasion: fixed whitelist logic
2011-12-12 16:40:22 +00:00
Pragmatic Software
acbed6810f
2011-12-12 05:39:38 +00:00
Pragmatic Software
3b0b04f6e1
Corrected inverted ternary herp
2011-12-12 04:21:59 +00:00
Pragmatic Software
6dee494ffd
bantracker: fixed derp
2011-12-12 04:17:03 +00:00
Pragmatic Software
44bef4bdb3
anti-flood: check for ban evasion on nick changes
2011-12-12 00:19:34 +00:00
Pragmatic Software
44ba3001cb
Updated mode +q list tracking to updated freenode syntax; added ban whitelist (for evasion allowing)
2011-12-11 22:56:57 +00:00
Pragmatic Software
314eabaf3e
Quotegrabs: added more information to getq (grab owner and timestamp)
...
Interpreter: remove leading and trailing whitespace from text to improve parsing
AntiFlood: Remove some log output, improve some other log output
2011-12-04 01:13:21 +00:00
Pragmatic Software
438b62552f
anti-flood bantracker now more properly handles detection of proxying in multiple channels
2011-02-14 06:23:22 +00:00
Pragmatic Software
cb20ac607e
anti-flood bantracker now more properly handles detection of proxying in multiple channels
2011-02-13 23:44:05 +00:00
Pragmatic Software
ea198bcab1
irchandlers: now handles multiple modes; e.g. -bbb-o
...
chanops: moved flushqueues to inside loop
anti-flood/bantracker: now tracks quiets as well as bans
anti-flood: should now ban proxied hosts using a banned nickserv account -- untested
2011-02-13 09:05:48 +00:00
Pragmatic Software
b16b5f6275
anti-flood: nick changes now linked to same account via reference
2011-02-13 08:02:27 +00:00
Pragmatic Software
b07306f530
IRC: wait for NickServ NOTICE before identifying
2011-02-12 05:30:44 +00:00
Pragmatic Software
9c17b4bc5a
anti-flood: made some log messages more terse and readable
2011-02-11 06:52:43 +00:00
Pragmatic Software
c4ed12b0cb
anti-flood, IRC, etc: added support for tracking NickServ accounts; refactored flood message history to be keyed on hostmask instead of nick; placed message history channels into its own sub-key
2011-02-11 02:46:35 +00:00
Pragmatic Software
8d524089db
anti-flood: added last offense timestamp; decrease offense counter once every 24 hours without offense
2011-01-27 06:17:39 +00:00
Pragmatic Software
45a2a66d0f
Moved lag-checking code to LagChecker.pm; improved output of !lagcheck command
2011-01-24 23:56:55 +00:00
Pragmatic Software
ed797ca5cf
antiflood: change banfoward timeout first offense to start from 8 hours instead of 32 hours
2011-01-24 22:21:29 +00:00
Pragmatic Software
c29a694359
antiflood: do not check flood if lag is uninitialized or is significant
2011-01-22 09:45:16 +00:00
Pragmatic Software
1f45da7615
antiflood: do not do anti-flood if lag is two seconds or greater
2011-01-22 09:39:39 +00:00
Pragmatic Software
b11b660929
antiflood/pbot: added basic support for lag detection
2011-01-22 09:26:04 +00:00
Pragmatic Software
d5ba966c53
antiflood: corrected check against double-banning chat floods
2011-01-22 04:42:38 +00:00
Pragmatic Software
d2640f8bcb
antiflood: remove generate_random_number; ping timeouts/excess floods no longer treated aggressively, now treated same as other quit/parts
2011-01-22 04:17:35 +00:00
Pragmatic Software
58f19984bf
Display join flood history only if joinwatch >= max joins, to reduce log spam
2010-06-29 00:59:47 +00:00
Pragmatic Software
fe6d08178b
Anti-join flood bans for 2^5 hours for first offense instead of 2^7 hours (now uses 2^(4+number_of_offenses) hours as timeout)
2010-06-27 11:13:30 +00:00
Pragmatic Software
2d11d66b67
Replaced ago_exact with duration_exact in time comparison
2010-06-27 05:39:44 +00:00
Pragmatic Software
999d8ae4a8
Added Time::Duration to anti-flood join history
2010-06-27 05:36:58 +00:00
Pragmatic Software
521ae5c704
Anti-join flood bans for 2^5 hours for first offense instead of 2^7 hours (now uses 2^(4+number_of_offenses) hours as timeout)
2010-06-27 03:22:29 +00:00