3
0
mirror of https://github.com/pragma-/pbot.git synced 2024-11-23 12:29:27 +01:00
Commit Graph

44 Commits

Author SHA1 Message Date
Pragmatic Software
2c554328c9 Whoops, do check-bans on join for unidentified users as well when extended-join capability is active 2016-08-30 02:14:21 -07:00
Pragmatic Software
08a26a70a7 Minor derp with log message 2016-08-26 04:52:38 -07:00
Pragmatic Software
2dea20130f Missed a spot 2016-08-26 04:31:51 -07:00
Pragmatic Software
c13f3ae9dc Catch more rare scenarios for strongly linking accounts 2016-08-26 04:02:30 -07:00
Pragmatic Software
ba6fb2c2d7 Improve linking of accounts 2016-08-25 01:41:32 -07:00
Pragmatic Software
857d1aa0d3 Refactor message account linking
Linking of message accounts is now significantly less likely to produce
false-positives.

Previously, any hostmasks with matching nick!*@* would be strongly linked
together.  This led to falsely-linking accounts, either inadvertently or
intentionally.

For example, Bob might also be known as Bob_ and Bobby,
but primarily uses Bob as his main nick.  Somebody else might join with
Bobby and end up being linked to Bob.  Now both Bob and the new Bobby are
linked together as the same person, but likely with different *!user@host.

Now if the new Bobby ever gets banned, then Bob will also end up being
banned for evading Bobby's ban.

This was a sore spot in the previous linking implementation.

This new implementation has several adjustments to more intelligently link
accounts only when they're proven beyond a reasonable doubt to be the same
person (e.g. by matching nickserv accounts, etc).

Consequently, rather than aggressively linking accounts and catching more
ban-evaders at the risk of potentially falsely-linking accounts and falsely
detecting innocent people as ban-evaders, this new implementation will instead
link accounts more reliably at the risk of potential ban-evaders not yet being
linked together and thus being able to evade a ban.

This is a more preferable and reasonable risk.  Active channel ops should be
able to catch any obnoxious ban-evaders that slip through this net.
2016-08-17 20:34:45 -07:00
Pragmatic Software
8792633b6a Minor improvement to aka -w 2016-02-17 14:56:57 -08:00
Pragmatic Software
7bb18e00a7 Use binary attribute for CSV 2016-02-10 10:14:12 -08:00
Pragmatic Software
110c9cc548 Use CSV for GECOS field 2016-02-10 07:10:37 -08:00
Pragmatic Software
ddeef3cc62 Add support for GECOS 2016-02-10 03:42:42 -08:00
Pragmatic Software
4ef978963c Improve unbanme behavior 2016-01-16 16:55:48 -08:00
Pragmatic Software
742eb849e8 Remove duplicate blank line 2015-11-20 21:02:21 -08:00
Pragmatic Software
01f543b3b7 Fix recall from /msg not ignoring the command itself 2015-09-30 09:51:04 -07:00
Pragmatic Software
675760289c Allow wild-card in recall/grab text
Do not iterate through weak links when looking for also-known-as
2015-09-03 20:49:06 -07:00
Pragmatic Software
3fa12c208e Improve handling of word-boundaries in searches 2015-08-16 05:20:57 -07:00
Pragmatic Software
35653cb996 Add word-boundaries around text searches 2015-08-05 12:28:15 -07:00
Pragmatic Software
850c8a0525 Add weak/strong also-known-as linking
PBot will now use weak links if the ip address portion of a hostmask
hasn't been seen in the last 48 hours in order to prevent false-positive
linking of dynamic ip addresses.

Weak links are excluded from ban-evasion logic.

Weak links can be manually upgraded to strong links with the `akalink`
command if a human confirms they are the same person through the `aka -w`
command.

Individuals with matching nicks or matching nickserv accounts, etc, will
automatically be strongly linked, as usual.
2015-07-15 00:18:57 -07:00
Pragmatic Software
2ae493f1c2 Add count option to recall command 2015-06-15 17:58:25 -07:00
Pragmatic Software
4db125c3c2 Improve account-tracking and ban-evasion for Freenode irccloud.com web gateways 2015-06-13 16:08:57 -07:00
Pragmatic Software
351385cb67 Properly recurse through all linked ids when getting AKAs; optimize Aliases table and AKA function 2015-05-22 04:23:51 -07:00
Pragmatic Software
d7d6083a25 Add ability to show alias relationships in aka command 2015-05-12 21:46:40 -07:00
Pragmatic Software
20aeeea634 Add akalink and akaunlink commands 2015-05-12 12:59:45 -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
7f87730de8 Improve handling of Nickserv accounts in check-bans and unbanme 2015-03-27 04:08:47 -07:00
Pragmatic Software
b23935b8dc Create SQLite index for Messages table
This significantly speeds up certain SQL actions on
the Messages table that were done for anti-flood detection.

The bot should now be significantly more quicker to catch
floods promptly without delay.

(Also, comment out some logging messages. Perhaps revisit this
and wrap them with a debug registry variable instead.)
2015-02-15 20:30:28 -08:00
Pragmatic Software
f8b6b19398 Show only chat messages in recall surrounding context (no joins/quits/etc) 2015-01-23 13:50:14 -08:00
Pragmatic Software
5ab76e6e6c Add -x/-context <nick> flag to limit recall -before/-after context to that nick 2015-01-23 11:44:38 -08:00
Pragmatic Software
b806a473d2 Add ability to get surrounding message context in recall command
Add the -b/-before and -a/-after flags to the `recall` command to display
that many lines of surrounding context.

For example, `recall -c ##c -b 100` will show the last 100 messages in the ##c
channel.

Another example, `recall pragma- 50 -b 5 -a 5` will show the 5 messages before the 50th
most recent message spoken by pragma- and then show that 50th message and finally show
the 5 messages after it.
2015-01-23 07:36:39 -08:00
Pragmatic Software
f70e044a60 Update latest hostmask last_seen timestamp when linking accounts 2014-10-14 02:33:13 +00:00
Pragmatic Software
750b78cb53 quotemeta doesn't escape underscores, whoops -- manually escape underscores for Message History SQL statements 2014-10-01 21:18:54 +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
46b5b95d54 Escape undesired SQL wildcards in certain statements; add aka command to list also-known-as entries 2014-07-11 12:57:18 +00:00
Pragmatic Software
b9433127d1 Improve wildcard handling 2014-05-31 01:08:01 +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
5c14727fd1 Add SQLite logger and profiler functionality 2014-05-20 10:17:01 +00:00
Pragmatic Software
ac45cf8036 Timer can now update timeout interval by timer id; add timer interval to registry for LagChecker and MessageHistory_SQLite 2014-05-19 10:30:25 +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
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
cd54dcb573 Track and handle nick-change events; add anti-nick-flood detection 2014-05-16 00:48:46 +00:00
Pragmatic Software
92b4ef00cf Improve recall command with better capabilities
The nick field is now optional and Getopt::Long is used to accept targeted
options for channel/history, allowing recalls by text/channel for any nick
which is useful when you know what text the message contained but not who
said it.
2014-05-14 21:23:59 +00:00
Pragmatic Software
dad69fb0c8 Use AutoInactiveDestroy attribute to fix SQLite I/O error due to DBH handle being destroyed when forked process exits 2014-05-13 20:14:38 +00:00
Pragmatic Software
ae6f3a6b3d Don't skip begin_work() if commit() fails 2014-05-13 15:18: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