3
0
mirror of https://github.com/pragma-/pbot.git synced 2024-12-30 22:52:34 +01:00
Commit Graph

1475 Commits

Author SHA1 Message Date
Pragmatic Software
9864ce09ae Factoid doesn't have effective-level, not the bot itself... 2017-08-03 13:28:52 -07:00
Pragmatic Software
c9c39673d8 Update version 2017-08-01 21:37:21 -07:00
Pragmatic Software
4f628b4cd7 AntiTwitter nicks now case-insensitive... whoops! 2017-08-01 21:37:00 -07:00
Pragmatic Software
85d74f53b1 Message history improvements 2017-08-01 21:36:31 -07:00
Pragmatic Software
b932fe73eb Move WHO stuff to IRCHandlers.pm 2017-08-01 21:35:56 -07:00
Pragmatic Software
e723379c4d Improve the bot's understanding of "me" and "my" 2017-08-01 21:34:57 -07:00
Pragmatic Software
74fe574332 Make channel argument optional for factadd, factrem and factchange (other fact commands eventually...) 2017-08-01 21:33:57 -07:00
Pragmatic Software
121de07ae2 Whoops, attempted to modify current $action in loop 2017-08-01 21:31:58 -07:00
Pragmatic Software
06eb50736d Update version 2017-06-19 18:21:53 -07:00
Pragmatic Software
f3620ddd90 Normalize /session hostmasks 2017-06-19 18:21:47 -07:00
Pragmatic Software
aadc829865 Update version 2017-06-19 00:37:38 -07:00
Pragmatic Software
9344c19003 Oops, add IF NOT EXISTS to index creation 2017-06-19 00:37:32 -07:00
Pragmatic Software
ef6c44f17d Update version 2017-06-18 03:45:38 -07:00
Pragmatic Software
cfba69b09f Minor correction of a log message 2017-06-18 03:45:35 -07:00
Pragmatic Software
6a64907bd2 Update version 2017-06-18 03:40:58 -07:00
Pragmatic Software
fa854c087f Normalize x-random hostmasks with user field to not pollute message database
Significant optimizations to message database structure and queries
2017-06-18 03:40:51 -07:00
Pragmatic Software
cc3154a2c6 Flag SQLite queries that take more than 100ms to complete, if SQL logging is enabled 2017-06-18 03:37:01 -07:00
Pragmatic Software
c8d2f8e632 Update version 2017-06-11 23:33:42 -07:00
Pragmatic Software
c2ed83b8a0 Optimize some message history SQL 2017-06-11 23:33:38 -07:00
Pragmatic Software
caf254ab73 Update version 2017-06-07 19:31:14 -07:00
Pragmatic Software
8612b7c210 Update version 2017-05-23 17:05:31 -07:00
Pragmatic Software
29f6510ec2 Check for existing temp ban before temp-banning 2017-05-23 17:05:25 -07:00
Pragmatic Software
7357ba706e Update version 2017-05-21 02:23:21 -07:00
Pragmatic Software
ac246dbdef Increase timer resolution from 10 seconds to 1 second 2017-05-21 02:23:15 -07:00
Pragmatic Software
2d85b14b2e Add ircd config mapping; automatically unban certain types of bans after 7 days 2017-05-21 02:20:44 -07:00
Pragmatic Software
35b1c13012 Make certain unban actions immediate instead of using unban queue 2017-05-21 02:18:44 -07:00
Pragmatic Software
414b11f787 Make unban queue more robust; allow immediate unban/unmute too 2017-05-21 02:18:00 -07:00
Pragmatic Software
3cd63f5161 Update version 2017-05-20 23:48:35 -07:00
Pragmatic Software
461f1a3066 Use unban queue to group multiple -b/-q into a single command, with a delay between multiple commands 2017-05-20 23:48:03 -07:00
Pragmatic Software
a219f3d9a7 AntiTwitter: use more restrictive nick-similarity value 2017-05-20 23:45:30 -07:00
Pragmatic Software
373ebc03b3 Improve is_present_similiar to accept custom similarity values 2017-05-20 23:44:45 -07:00
Pragmatic Software
f5be26a98c Use arg bundling for aka 2017-05-20 23:43:34 -07:00
Pragmatic Software
f2f88d9caf Update version 2017-05-14 05:45:52 -07:00
Pragmatic Software
08ac91f11b Update version 2017-05-14 01:39:07 -07:00
Pragmatic Software
5bc65c9f67 Update version 2017-05-13 23:57:23 -07:00
Pragmatic Software
05f27d0c8f Update version 2017-05-13 23:43:05 -07:00
Pragmatic Software
69f2f5477a Update version 2017-04-10 19:57:39 -07:00
Tomasz Kramkowski
382e47d971 Fix "keys on scalar" deprecation warning on newer perl. (#3)
This patch fixes the warning "Experimental keys on scalar is now
forbidden" which appears when running pbot on newer versions of perl.
2017-04-10 19:55:52 -07:00
Pragmatic Software
f65f6df116 Update version 2017-04-10 19:47:48 -07:00
Pragmatic Software
d29dcc3765 Slightly improve recall 2017-04-10 19:35:14 -07:00
Pragmatic Software
15c17744ba Comment out some verbose log messages 2017-04-10 19:35:14 -07:00
Pragmatic Software
0697035284 Improve error message for ParseDate 2017-04-10 19:35:14 -07:00
Pragmatic Software
be80680626 Improve twit detection 2017-04-10 19:35:14 -07:00
Pragmatic Software
a21b27a11f $randomnick now limited to nicks who have spoken in last 2 hours 2017-04-10 19:35:14 -07:00
Pragmatic Software
cf4478c1a4 Minor bug/typo fixes 2017-04-10 19:35:14 -07:00
Tomasz Kramkowski
b5d8f72254 License project under MPL2
This patch adds the file LICENSE which is the verbatim copy of the
Mozilla Public License Version 2.0 as retreived from
https://www.mozilla.org/media/MPL/2.0/index.815ca599c9df.txt on
2017-03-05.

This patch also places license headers for the MPL2 type A variant of
the license header in the following files:

PBot/AntiFlood.pm
PBot/BanTracker.pm
PBot/BlackList.pm
PBot/BotAdminCommands.pm
PBot/BotAdmins.pm
PBot/ChanOpCommands.pm
PBot/ChanOps.pm
PBot/Channels.pm
PBot/Commands.pm
PBot/DualIndexHashObject.pm
PBot/EventDispatcher.pm
PBot/FactoidCommands.pm
PBot/FactoidModuleLauncher.pm
PBot/Factoids.pm
PBot/HashObject.pm
PBot/IRCHandlers.pm
PBot/IgnoreList.pm
PBot/IgnoreListCommands.pm
PBot/Interpreter.pm
PBot/LagChecker.pm
PBot/Logger.pm
PBot/MessageHistory.pm
PBot/MessageHistory_SQLite.pm
PBot/NickList.pm
PBot/PBot.pm
PBot/Plugins.pm
PBot/Plugins/AntiAway.pm
PBot/Plugins/AntiKickAutoRejoin.pm
PBot/Plugins/AntiRepeat.pm
PBot/Plugins/AntiTwitter.pm
PBot/Plugins/AutoRejoin.pm
PBot/Plugins/Counter.pm
PBot/Plugins/Quotegrabs.pm
PBot/Plugins/Quotegrabs/Quotegrabs_Hashtable.pm
PBot/Plugins/Quotegrabs/Quotegrabs_SQLite.pm
PBot/Plugins/UrlTitles.pm
PBot/Plugins/_Example.pm
PBot/Refresher.pm
PBot/Registerable.pm
PBot/Registry.pm
PBot/RegistryCommands.pm
PBot/SQLiteLogger.pm
PBot/SQLiteLoggerLayer.pm
PBot/SelectHandler.pm
PBot/StdinReader.pm
PBot/Timer.pm
PBot/Utils/ParseDate.pm
PBot/VERSION.pm
build/update-version.pl
modules/acronym.pl
modules/ago.pl
modules/c11std.pl
modules/c2english.pl
modules/c2english/CGrammar.pm
modules/c2english/c2eng.pl
modules/c99std.pl
modules/cdecl.pl
modules/cfaq.pl
modules/cjeopardy/IRCColors.pm
modules/cjeopardy/QStatskeeper.pm
modules/cjeopardy/Scorekeeper.pm
modules/cjeopardy/cjeopardy.pl
modules/cjeopardy/cjeopardy_answer.pl
modules/cjeopardy/cjeopardy_filter.pl
modules/cjeopardy/cjeopardy_hint.pl
modules/cjeopardy/cjeopardy_qstats.pl
modules/cjeopardy/cjeopardy_scores.pl
modules/cjeopardy/cjeopardy_show.pl
modules/codepad.pl
modules/compiler_block.pl
modules/compiler_client.pl
modules/compiler_vm/Diff.pm
modules/compiler_vm/cc
modules/compiler_vm/compiler_client.pl
modules/compiler_vm/compiler_server.pl
modules/compiler_vm/compiler_server_vbox_win32.pl
modules/compiler_vm/compiler_server_watchdog.pl
modules/compiler_vm/compiler_vm_client.pl
modules/compiler_vm/compiler_vm_server.pl
modules/compiler_vm/compiler_watchdog.pl
modules/compiler_vm/languages/_c_base.pm
modules/compiler_vm/languages/_default.pm
modules/compiler_vm/languages/bash.pm
modules/compiler_vm/languages/bc.pm
modules/compiler_vm/languages/bf.pm
modules/compiler_vm/languages/c11.pm
modules/compiler_vm/languages/c89.pm
modules/compiler_vm/languages/c99.pm
modules/compiler_vm/languages/clang.pm
modules/compiler_vm/languages/clang11.pm
modules/compiler_vm/languages/clang89.pm
modules/compiler_vm/languages/clang99.pm
modules/compiler_vm/languages/clangpp.pm
modules/compiler_vm/languages/clisp.pm
modules/compiler_vm/languages/cpp.pm
modules/compiler_vm/languages/freebasic.pm
modules/compiler_vm/languages/go.pm
modules/compiler_vm/languages/haskell.pm
modules/compiler_vm/languages/java.pm
modules/compiler_vm/languages/javascript.pm
modules/compiler_vm/languages/ksh.pm
modules/compiler_vm/languages/lua.pm
modules/compiler_vm/languages/perl.pm
modules/compiler_vm/languages/python.pm
modules/compiler_vm/languages/python3.pm
modules/compiler_vm/languages/qbasic.pm
modules/compiler_vm/languages/scheme.pm
modules/compiler_vm/languages/server/_c_base.pm
modules/compiler_vm/languages/server/_default.pm
modules/compiler_vm/languages/server/c11.pm
modules/compiler_vm/languages/server/c89.pm
modules/compiler_vm/languages/server/c99.pm
modules/compiler_vm/languages/server/clang.pm
modules/compiler_vm/languages/server/clang11.pm
modules/compiler_vm/languages/server/clang89.pm
modules/compiler_vm/languages/server/clang99.pm
modules/compiler_vm/languages/server/cpp.pm
modules/compiler_vm/languages/server/freebasic.pm
modules/compiler_vm/languages/server/haskell.pm
modules/compiler_vm/languages/server/java.pm
modules/compiler_vm/languages/server/qbasic.pm
modules/compiler_vm/languages/server/tendra.pm
modules/compiler_vm/languages/sh.pm
modules/compiler_vm/languages/tendra.pm
modules/compliment
modules/cstd.pl
modules/define.pl
modules/dice_roll.pl
modules/excuse.sh
modules/expand_macros.pl
modules/fnord.pl
modules/funnyish_quote.pl
modules/g.pl
modules/gdefine.pl
modules/gen_cfacts.pl
modules/gencstd.pl
modules/get_title.pl
modules/getcfact.pl
modules/google.pl
modules/gspy.pl
modules/gtop10.pl
modules/gtop15.pl
modules/headlines.pl
modules/horoscope
modules/horrorscope
modules/ideone.pl
modules/insult.pl
modules/love_quote.pl
modules/man.pl
modules/map.pl
modules/math.pl
modules/prototype.pl
modules/qalc.pl
modules/random_quote.pl
modules/seen.pl
modules/urban
modules/weather.pl
modules/wikipedia.pl
pbot.pl
pbot.sh

It is highly recommended that this list of files is reviewed to ensure
that all files are the copyright of the sole maintainer of the
repository. If any files with license headers contain the intellectual
property of anyone else, it is recommended that a request is made to
revise this patch or that the explicit permission of the co-author is
gained to allow for the license of the work to be changed.

I (Tomasz Kramkowski), the contributor, take no responsibility for any
legal action taken against the maintainer of this repository for
incorrectly claiming copyright to any work not owned by the maintainer
of this repository.
2017-03-06 00:31:15 +00:00
Pragmatic Software
210099f4e3 Update version 2017-03-03 11:42:43 -08:00
Pragmatic Software
0e24a3758f unban by nick will now go through all akas for matching bans 2017-03-03 11:42:39 -08:00
Pragmatic Software
608130395d Update version 2017-02-27 04:47:02 -08:00
Pragmatic Software
71fabfc0ea Update version 2017-02-22 12:09:11 -08:00
Pragmatic Software
75ca6d61a8 Make AntiTwitter more robust 2017-02-22 12:09:06 -08:00
Pragmatic Software
0685843e3f Update version 2017-02-22 04:18:29 -08:00
Pragmatic Software
9621c6ffbe AntiTwitter: Warn twice before tempban; add logging 2017-02-22 04:18:26 -08:00
Pragmatic Software
30eba50bdc Update version 2017-02-21 05:50:06 -08:00
Pragmatic Software
1e4e101386 Update version 2017-02-21 05:37:48 -08:00
Pragmatic Software
5efc55c306 Ignore interpreted messages in AntiTwitter 2017-02-21 05:37:43 -08:00
Pragmatic Software
6c1e15db80 Update version 2017-02-21 05:26:30 -08:00
Pragmatic Software
aac788831a Only one punishment per message! 2017-02-21 05:26:26 -08:00
Pragmatic Software
b1432a8112 Update version 2017-02-21 05:20:23 -08:00
Pragmatic Software
ca4be630ea Add AntiTwitter plugin 2017-02-21 05:20:17 -08:00
Pragmatic Software
4591e8639b Update version 2017-02-20 18:08:44 -08:00
Pragmatic Software
282d97936f Update version 2017-01-29 18:01:33 -08:00
Pragmatic Software
85b8915494 Fixed some stuff 2017-01-29 18:01:26 -08:00
Pragmatic Software
63f1f973b0 Add missing return 0 to event handler 2016-12-16 19:22:42 -08:00
Pragmatic Software
c78dbbb911 Check for value of key instead of existence in loggedin() 2016-12-16 19:20:57 -08:00
Pragmatic Software
be2e568066 Update version 2016-12-13 15:42:56 -08:00
Pragmatic Software
ca36ee00cd Ignore nicks that have not had activity in the last 1 hour when looking for similar nicks; add nicks to NickList when updating activity if they do not exist yet 2016-12-13 15:42:50 -08:00
Pragmatic Software
3c60a8452c Update version 2016-12-09 15:31:41 -08:00
Pragmatic Software
50c5c15fbd recall now skips nick-prefix and botnick-postfix messages 2016-12-09 15:31:36 -08:00
Pragmatic Software
534523287b Update version 2016-12-06 20:47:29 -08:00
Pragmatic Software
2cc4302c0b Update version 2016-12-04 22:00:55 -08:00
Pragmatic Software
c2a2debf3e Nick-floods are now once again detected 2016-12-04 22:00:50 -08:00
Pragmatic Software
4d2a89987b Update version 2016-12-01 05:19:04 -08:00
Pragmatic Software
ba7149f518 Add missing parentheses to recently added SQL statements 2016-12-01 05:18:56 -08:00
Pragmatic Software
af02bc43d3 Update version 2016-12-01 05:05:10 -08:00
Pragmatic Software
a4d23bc445 Er, use OR instead of AND... 2016-12-01 05:05:07 -08:00
Pragmatic Software
9eca3d5adc Update version 2016-12-01 04:57:28 -08:00
Pragmatic Software
d47edc100b Improve robustness of message history tracking 2016-12-01 04:57:25 -08:00
Pragmatic Software
a5260ef056 Update version 2016-11-30 20:57:28 -08:00
Pragmatic Software
ff51114a4f Missed a couple of account/ancestor replacements for nick-changes 2016-11-30 20:57:26 -08:00
Pragmatic Software
961f54f261 Update version 2016-11-30 09:28:36 -08:00
Pragmatic Software
3091516cc6 Reduce scope of $ancestor to nick-changes only
Move message account debug log messages behind a debug toggle
2016-11-30 09:28:19 -08:00
Pragmatic Software
8ba4ffffe4 More robust coverage of aliases when managing message history accounts
When adding a new unknown hostmask to the message history accounts, we now
take significant advantage of the aliases table to find an existing account
id for the hostmask before assigning it a new account id.

Likewise, we now take significant advantage of the aliases table when looking
for a nick-change match.

Fix misc channel case-sensitivity issues, add missing last-seen hostmask
updates, reduce message account linking log verbosity level.
2016-11-29 01:50:49 -08:00
Pragmatic Software
bbf45a3fab Fix potential channel name case-sensitivity issues; misc minor fixes 2016-11-29 01:44:31 -08:00
Pragmatic Software
3537b74877 Update last_seen hostmask field in WHO replies 2016-11-29 01:43:11 -08:00
Pragmatic Software
5012886d71 Update version 2016-11-28 12:15:32 -08:00
Pragmatic Software
ecd5feced1 AntiKickAutoRejoin: Fix channel case-sensitivity discrepancy and ignore roulette kicks (*BANG!*) 2016-11-28 12:15:26 -08:00
Pragmatic Software
31cb645f30 Update version 2016-11-17 18:34:15 -08:00
Pragmatic Software
a5bb523f96 Make secret stuff more secret 2016-11-17 18:34:11 -08:00
Pragmatic Software
e37b48822b Update version 2016-11-17 15:57:53 -08:00
Pragmatic Software
df8e15b39e Fix factlog for deleted factoids not in global channel 2016-11-17 15:57:48 -08:00
Pragmatic Software
107b4e9883 Update version 2016-11-16 19:15:50 -08:00
Pragmatic Software
3fbefa6746 Put some alias linking messages behind a debug toggle 2016-11-16 19:15:45 -08:00
Pragmatic Software
5d3298462a Add error messages to a couple of commands 2016-11-16 19:14:39 -08:00
Pragmatic Software
0e4f2d1447 Minor effective-level /kick derp 2016-11-16 19:14:00 -08:00
Pragmatic Software
fdf529f2ae Update version 2016-11-16 19:07:04 -08:00
Pragmatic Software
f3b3e90cdc Add factoid effective-level metadata and ability to kick from such factoids
Factoids can now have an effective-level metadata field. When set, certain
functionality requiring an effective-level will be enabled.

For now, that is currently only the /kick command, which has an effective-level
of 10.

Factoids with an effective-level set will also have the locked metadata
attribute set as well to prevent people from changing the factoid.  The
locked and/or effective-level attributes will be removable only by admins
whose level is equal to or greater than the effective-level.
2016-11-16 19:07:01 -08:00
Pragmatic Software
39399e78ae Allow debug tracing of event handlers; don't remove handlers on error 2016-11-16 18:59:13 -08:00
Pragmatic Software
4ed61096dd Missing hash dereference 2016-11-04 12:40:17 -07:00
Pragmatic Software
6fbd6d5620 Update version 2016-10-29 10:47:12 -07:00
Pragmatic Software
3bd424aacc Fix possible case-sensitivity issues 2016-10-29 10:47:08 -07:00
Pragmatic Software
72faa9169f Update version 2016-10-23 03:52:03 -07:00
Pragmatic Software
170dac5776 Improve !cmd and nick: !cmd processing 2016-10-23 03:51:59 -07:00
Pragmatic Software
0397068a7f Undo recent blink addition 2016-10-23 03:50:34 -07:00
Pragmatic Software
7f00047af8 Update version 2016-10-14 05:56:57 -07:00
Pragmatic Software
8addeb5d49 Allow "nick: !command" to address to nick; minor improvements 2016-10-14 05:56:54 -07:00
Pragmatic Software
4764b034e1 Update version 2016-09-28 14:13:47 -07:00
Pragmatic Software
c64dca7b07 Forgot a return 0 in an IRC handler, causing other related handlers to not fire after that handler 2016-09-28 14:13:44 -07:00
Pragmatic Software
49a21b2027 Update version 2016-09-25 12:59:05 -07:00
Pragmatic Software
c56b9662b8 Whoops, fix nick-similarity behavior for non-nicks 2016-09-25 12:59:03 -07:00
Pragmatic Software
c6473d0255 Update version 2016-09-25 00:24:52 -07:00
Pragmatic Software
2001fc1908 Whoops, return proper nick-casing for exact-match is_present_similar() result 2016-09-25 00:24:49 -07:00
Pragmatic Software
81e106285e Update version 2016-09-25 00:03:40 -07:00
Pragmatic Software
f34854fcec Add nick similarity completion
Previously, the bot wouldn't address people by nick if the provided nick
argument doesn't exist in the channel.

Now, the bot's nick list is searched for a nick with a certain similarity
percentage in the order of most recently spoken nicks first. This allows
the bot to address nicks when somebody may have forgotten to add a trailing
underscore/punctuation or may have typoed the nick.

The similarity percentage can be set via the interpreter->nick_similiarty
registry key.  A value of 0 should disable the behavior.
2016-09-25 00:03:37 -07:00
Pragmatic Software
6369a8df99 Update version 2016-09-23 18:32:03 -07:00
Pragmatic Software
3fd2519a87 Minor text change; don't aggressively pursue ping-timeouts 2016-09-23 18:32:00 -07:00
Pragmatic Software
d8854603c3 Update version 2016-09-22 08:26:46 -07:00
Pragmatic Software
0cd4102d37 Whoops, NickList should be registered after IRCHandlers since IRCHandlers depends on NickList for AntiFlood QUIT handling 2016-09-22 08:26:42 -07:00
Pragmatic Software
4091127213 Make aka usage message more concise 2016-09-22 08:25:50 -07:00
Pragmatic Software
e4d62a2e18 Update version 2016-09-13 12:43:31 -07:00
Pragmatic Software
754d38b50e Fix mismatching WHO id if no WHO replies 2016-09-13 12:43:27 -07:00
Pragmatic Software
1f03985178 Update version 2016-09-02 02:17:12 -07:00
Pragmatic Software
687a5e0ae2 Check WHO when joining channels
When joining a channel, check the WHO list for that channel in order
to obtain all hostmask, nickserv and gecos information and check for
potential ban evasions.
2016-09-02 02:17:10 -07:00
Pragmatic Software
87d02af264 check_bans now can do a dry-run 2016-09-02 02:12:20 -07:00
Pragmatic Software
ca5b832ddf Replace baninfo dump with terse line 2016-09-02 02:09:43 -07:00
Pragmatic Software
3225d74206 Update version 2016-08-30 02:14:36 -07:00
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
8102e1bc21 Update version 2016-08-29 20:47:49 -07:00
Pragmatic Software
d07458425f No need to WHOIS on joins if extended-join is available 2016-08-29 20:47:46 -07:00
Pragmatic Software
ca349804ca Update version 2016-08-28 22:36:50 -07:00
Pragmatic Software
eff8046f2c kick command now provides random insult if no kick reason is given 2016-08-28 22:36:46 -07:00
Pragmatic Software
c93d3db39c Update version 2016-08-28 03:49:30 -07:00
Pragmatic Software
1442485d0b Support account-notify and extended-join capabilities 2016-08-28 03:49:27 -07:00
Pragmatic Software
43351ed8c2 Update version 2016-08-26 04:52:43 -07:00
Pragmatic Software
08a26a70a7 Minor derp with log message 2016-08-26 04:52:38 -07:00
Pragmatic Software
255b42efee Update version 2016-08-26 04:31:55 -07:00
Pragmatic Software
2dea20130f Missed a spot 2016-08-26 04:31:51 -07:00
Pragmatic Software
26c80d8351 Update version 2016-08-26 04:02:33 -07:00
Pragmatic Software
c13f3ae9dc Catch more rare scenarios for strongly linking accounts 2016-08-26 04:02:30 -07:00
Pragmatic Software
e532c5711f Update version 2016-08-25 01:42:11 -07:00
Pragmatic Software
568c1c8732 Use ? instead of ! to denote nickchange akas 2016-08-25 01:42:06 -07:00
Pragmatic Software
ba6fb2c2d7 Improve linking of accounts 2016-08-25 01:41:32 -07:00
Pragmatic Software
6d0a548c26 Update version 2016-08-17 20:34:49 -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
d77ea29b47 Update version 2016-08-01 01:46:30 -07:00
Pragmatic Software
96afc969b3 Update version 2016-07-15 14:09:33 -07:00
Pragmatic Software
674a96431b Improve nick-change evasion detection logic 2016-07-15 14:09:29 -07:00
Pragmatic Software
133b5d1875 Update version 2016-07-01 13:29:46 -07:00
Pragmatic Software
949dc14525 Command queue no longer delays commands relative to each other 2016-07-01 13:29:26 -07:00
Pragmatic Software
b03a4b68e6 Update version 2016-07-01 13:03:10 -07:00
Pragmatic Software
41030b5686 Quick rough-draft of auto-rejoin plugin 2016-07-01 13:02:58 -07:00
Pragmatic Software
de856f3887 Now joins channel if /invited (and channel is registered and enabled) 2016-07-01 13:01:34 -07:00
Pragmatic Software
b215dfe9de Add command queue for delayed command processing 2016-07-01 13:00:20 -07:00
Pragmatic Software
4cb77ba143 Minor fix max_recall_time/max_messages initialization 2016-07-01 12:59:31 -07:00
Pragmatic Software
bdfd17612c Add is_active($channel) to determine if $channel is added and enabled 2016-07-01 12:58:29 -07:00
Pragmatic Software
2792a0cb0b Ensure lowercased parameters 2016-07-01 12:56:25 -07:00
Pragmatic Software
ff7141a3d6 Minor improvements 2016-07-01 12:55:52 -07:00
Pragmatic Software
35ef8a7af6 Update version 2016-06-25 18:09:53 -07:00
Pragmatic Software
dcacec18c6 Totally not a bug
Extremely minor rearrangement of interpreter logic so that `!commands` are
parsed before `command, botnick`. Totally not a bug at all. Pay no attention.
2016-06-25 18:09:47 -07:00
Pragmatic Software
bc2bbb8fde Update version 2016-04-10 18:35:18 -07:00
Pragmatic Software
b5c107bcbb Remove extraneous comma 2016-04-10 18:35:11 -07:00
Pragmatic Software
5d62f9e728 Update version 2016-03-15 12:45:17 -07:00
Pragmatic Software
3d90b8fbea Update version 2016-03-06 22:25:26 -08:00
Pragmatic Software
1e892f4ca1 Add silent option to countertriggers 2016-03-06 22:25:22 -08:00
Pragmatic Software
40c5ba8268 Update version 2016-02-25 00:51:55 -08:00
Pragmatic Software
b87db378cf Do not trigger ban evasion if mask matches banmask; use *!*@host instead of *!user@ip-mask for evasions 2016-02-25 00:51:52 -08:00
Pragmatic Software
75b29e78c5 Update version 2016-02-25 00:47:54 -08:00
Pragmatic Software
76d9184c1d Add explicit dereferences 2016-02-25 00:46:55 -08:00
Pragmatic Software
fb846a36ed Obey ignorelist in Counter plugin on_public() 2016-02-25 00:45:46 -08:00
Pragmatic Software
99e505b811 Add silent parameter to prevent logging of ignored messages 2016-02-25 00:45:03 -08:00
Pragmatic Software
d344e6d667 Update version 2016-02-21 01:41:51 -08:00
Pragmatic Software
00d5cef482 Update version 2016-02-19 20:45:01 -08:00
Pragmatic Software
f82a0cd64e Improvements to Counter plugin 2016-02-19 20:44:57 -08:00
Pragmatic Software
f2bd3986b7 Update version 2016-02-19 00:18:03 -08:00
Pragmatic Software
be18316268 For default installs, revert aka level and don't set max_recall_time 2016-02-19 00:17:54 -08:00
Pragmatic Software
b70cf6ad0e Update version 2016-02-18 16:11:29 -08:00
Pragmatic Software
7cc0912712 Restrict aka to admins, and add max_recall_time limit 2016-02-18 16:11:26 -08:00
Pragmatic Software
94026f4488 Update version 2016-02-17 14:57:30 -08:00
Pragmatic Software
1339b30c4b Only admins can add counter triggers 2016-02-17 14:57:24 -08:00
Pragmatic Software
8792633b6a Minor improvement to aka -w 2016-02-17 14:56:57 -08:00
Pragmatic Software
124c5c3577 Update version 2016-02-14 18:29:06 -08:00
Pragmatic Software
d48cc9d976 Skip only bad triggers instead of all triggers 2016-02-14 18:29:00 -08:00
Pragmatic Software
a8983d3a86 Update version 2016-02-14 18:13:33 -08:00
Pragmatic Software
d251d0ac7a Add countertrigger command to Counter plugin 2016-02-14 18:13:27 -08:00
Pragmatic Software
d8c2084587 Update version 2016-02-13 18:39:18 -08:00
Pragmatic Software
98ee3bef02 Add Counter plugin 2016-02-13 18:39:12 -08:00
Pragmatic Software
a3ade65954 Rename unregister_by_name to unregister 2016-02-13 18:38:43 -08:00
Pragmatic Software
8af19a75e9 Delete plugin subs /after/ calling unload() 2016-02-13 18:37:53 -08:00
Pragmatic Software
f59e00e5c9 Update version 2016-02-10 10:14:15 -08:00
Pragmatic Software
7bb18e00a7 Use binary attribute for CSV 2016-02-10 10:14:12 -08:00
Pragmatic Software
194bff37db Update version 2016-02-10 07:10:39 -08:00
Pragmatic Software
110c9cc548 Use CSV for GECOS field 2016-02-10 07:10:37 -08:00
Pragmatic Software
c97ba1de20 Update version 2016-02-10 03:42:45 -08:00
Pragmatic Software
ddeef3cc62 Add support for GECOS 2016-02-10 03:42:42 -08:00
Pragmatic Software
15da1428be Update version 2016-01-29 20:02:58 -08:00
Pragmatic Software
7ccd36d042 Update version 2016-01-29 19:56:34 -08:00
Pragmatic Software
0411249b29 Add AntiRepeat plugin 2016-01-29 19:56:29 -08:00
Pragmatic Software
2b00ce0af5 Update version 2016-01-29 13:09:01 -08:00
Pragmatic Software
b4e8302f32 Do not override pre-existing registry with default values 2016-01-29 13:08:40 -08:00
Pragmatic Software
0d70d85506 Update version 2016-01-29 12:59:17 -08:00
Pragmatic Software
4c5227b351 Unregister timers by id instead of subref 2016-01-29 12:59:07 -08:00
Pragmatic Software
6e4c7853f2 Update version 2016-01-26 19:23:06 -08:00
Pragmatic Software
0b5435bc7d Refactor whitelist 2016-01-26 19:23:03 -08:00
Pragmatic Software
6631b5752e Update version 2016-01-26 09:04:06 -08:00
Pragmatic Software
4a3ec27d78 Improve whitelist functionality 2016-01-26 09:04:03 -08:00
Pragmatic Software
5caa814e44 Update version 2016-01-24 03:02:18 -08:00
Pragmatic Software
8ac4a5999d Add whitelist to blacklist check 2016-01-24 03:02:14 -08:00
Pragmatic Software
01eb05a05e Update version 2016-01-23 06:03:51 -08:00
Pragmatic Software
745686eb75 Update ban-whitelist to support user-whitelist 2016-01-23 06:03:47 -08:00
Pragmatic Software
54973eca0b Update version 2016-01-20 08:13:37 -08:00
Pragmatic Software
d1e3d8267d Update version 2016-01-19 06:51:42 -08:00
Pragmatic Software
14124da3ac Embedded triggers now work at beginning of message 2016-01-19 06:51:40 -08:00
Pragmatic Software
6fe7d4bd75 Update version 2016-01-16 16:55:53 -08:00
Pragmatic Software
4ef978963c Improve unbanme behavior 2016-01-16 16:55:48 -08:00
Pragmatic Software
2e0a5e411c Make "is" optional in factadd 2016-01-16 16:55:18 -08:00
Pragmatic Software
4d6348c5b0 Update version 2015-12-22 17:24:13 -08:00
Pragmatic Software
01fa391fec Update version 2015-12-22 08:13:02 -08:00
Pragmatic Software
c306ae4ce6 Minor text reformatting 2015-12-22 08:12:59 -08:00
Pragmatic Software
b01f29491b Update version 2015-12-14 16:13:46 -08:00
Pragmatic Software
8b66bd82ec Improve factlog command
Now, by default, uses concise timestamp relative durations; e.g. "2d5h ago"
instead of "2 days and 5 hours ago".

Now, by default, shows only nick instead of full hostmask for each entry.

Now accepts optional arguments -t and -h to control the above behavior.

If -t is specified, then it shows a full timedate instead of a relative duration;
e.g., "Sun Dec 13 14:26:56 PST 2015" instead of "2d5h ago".

If -h is specified, then it shows the full hostmask for each entry instead of
just the nick.
2015-12-14 16:13:43 -08:00
Pragmatic Software
d199b3c26c Update version 2015-12-14 14:30:49 -08:00
Pragmatic Software
167d8c2143 Correct error handling for log_factoid() failure to open file 2015-12-14 14:30:44 -08:00
Pragmatic Software
20a8c30d4c Update version 2015-12-13 22:28:11 -08:00
Pragmatic Software
3a25afdb01 Minor textual correct for factlog disambig text 2015-12-13 22:28:00 -08:00
Pragmatic Software
edcf966d56 Update version 2015-12-13 22:21:05 -08:00
Pragmatic Software
1540483639 Show factlog for currently deleted factoids if log file exists 2015-12-13 22:20:57 -08:00
Pragmatic Software
4a765277cb Update version 2015-12-13 22:08:24 -08:00
Pragmatic Software
eb5d90ec48 Fix minor bug creating empty factoid in factset without key argument 2015-12-13 22:08:17 -08:00
Pragmatic Software
03389d4d08 Update version 2015-12-13 14:24:28 -08:00
Pragmatic Software
e6ac123fe1 Add factlog command to see factoid changelogs 2015-12-13 14:24:25 -08:00
Pragmatic Software
66ceac3916 Update version 2015-12-13 13:58:13 -08:00
Pragmatic Software
e6e7f325fb Add individual change-logs for factoid triggers 2015-12-13 13:58:01 -08:00
Pragmatic Software
31cd5d8388 Update version 2015-11-26 12:36:40 -08:00
Pragmatic Software
2962a44c12 No longer remove trailing punctuation from embedded factoid commands 2015-11-26 12:36:36 -08:00
Pragmatic Software
1f1631935b Update version 2015-11-20 21:11:45 -08:00
Pragmatic Software
4cd1211684 Improve unbanme handling
Sometimes people might join the channel uncloaked and get join-flood banned
with their uncloaked hostmask, and then later attempt to join the channel while
cloaked but the network will prevent them from joining since it checks their IP
address against the banlist in addition to their cloak.

Attempts to use unbanme while cloaked will look for a ban matching the cloak
instead of the IP address and will not find their uncloaked join-flood ban.

To fix this, we now traverse all known aliases/hostmasks for an individual
requesting a join-flood unban and remove any and all bans matching any of the
hostmasks linked to this individual.
2015-11-20 21:08:30 -08:00
Pragmatic Software
742eb849e8 Remove duplicate blank line 2015-11-20 21:02:21 -08:00
Pragmatic Software
77d94af516 Update version 2015-10-25 04:01:48 -07:00
Pragmatic Software
aa749860c0 Look for module in global channel before falling back to local channel 2015-10-25 04:01:45 -07:00
Pragmatic Software
4f875f9c4c Update version 2015-10-19 12:21:50 -07:00
Pragmatic Software
89eda8f0a9 Fix undefined variable warning in find_factoid 2015-10-19 12:21:42 -07:00
Pragmatic Software
b23f025a12 Update version 2015-10-10 06:07:30 -07:00
Pragmatic Software
43418c1bc6 Require curly braces or backticks around embedded commands 2015-10-10 06:07:24 -07:00
Pragmatic Software
8bb7dfece6 Update version 2015-10-10 04:27:39 -07:00
Pragmatic Software
930801a5fb Require curly braces or backticks around embedded commands 2015-10-10 04:27:36 -07:00
Pragmatic Software
f364075bff Update version 2015-10-06 17:35:28 -07:00
Pragmatic Software
0fb098ded1 Update version 2015-10-05 02:11:55 -07:00
Pragmatic Software
54b8750d1b Allow adding channels as factoid adlib modifier 2015-10-05 02:11:52 -07:00
Pragmatic Software
2c59908ee8 Update version 2015-10-05 02:03:17 -07:00
Pragmatic Software
cf72a11658 Improve factoid expansions 2015-10-05 02:03:13 -07:00
Pragmatic Software
0f0797c0ee Update version 2015-10-02 20:14:53 -07:00
Pragmatic Software
a5c700eec3 Correct encode_entities() in export_factoids() for URLs, etc 2015-10-02 20:14:48 -07:00
Pragmatic Software
52d437f0da Update version 2015-10-02 20:06:28 -07:00
Pragmatic Software
dc2f372551 Add missing encode_entities() to export_factoids() 2015-10-02 20:06:25 -07:00
Pragmatic Software
f5c1846458 Update version 2015-09-30 09:51:06 -07:00
Pragmatic Software
01f543b3b7 Fix recall from /msg not ignoring the command itself 2015-09-30 09:51:04 -07:00
Pragmatic Software
a3df01bae3 Escape delim in factchange command to allow delimiters such as the pipe character 2015-09-30 09:50:37 -07:00
Pragmatic Software
a562f79956 Update version 2015-09-19 20:02:16 -07:00
Pragmatic Software
43c0361354 Add botnick to "Why would I want to do that to myself?" condition 2015-09-19 20:02:11 -07:00
Pragmatic Software
5abf047602 Update version 2015-09-19 00:27:18 -07:00
Pragmatic Software
04aaeb5475 Fix handling of no factoid found from find_factoid() 2015-09-19 00:27:15 -07:00
Pragmatic Software
d4eb08856a Fix recall logic for integer history 2015-09-18 17:45:25 -07:00
Pragmatic Software
8691e6d7bb Update version 2015-09-17 22:18:22 -07:00
Pragmatic Software
43db8ab34e Update version 2015-09-14 10:32:09 -07:00
Pragmatic Software
b5c5162ad0 Minor refactor of title case of adlib modifier 2015-09-14 10:29:28 -07:00
Pragmatic Software
739c28125b Remove extraneous whitespace 2015-09-14 10:25:16 -07:00
Pragmatic Software
e1d557e75f Update version 2015-09-14 10:22:58 -07:00
Pragmatic Software
aed3f34c43 Add optional modifiers to factoid variables
Adlib list variables can now accept trailing modifier keywords prefixed with
a colon. These can be chained together to combine their effects.

     :uc - uppercases the expansion
     :lc - lowercases the expansion
     :ucfirst - uppercases the first letter in the expansion
     :title - lowercases the expansion and then uppercases the first letter
              (effectively an alias for :lc:ucfirst)

Examples:
   <pragma_> echo $colors:uc
   <candide> RED
   <pragma_> echo $colors:ucfirst
   <candide> Blue
2015-09-14 10:22:55 -07:00
Pragmatic Software
d6319b27c5 Update version 2015-09-14 09:06:48 -07:00
Pragmatic Software
ebc7cb9579 Move enter-abuse logic to after chat flood logic to prevent enter-abuse warning and chat flood ban happening at the same time 2015-09-14 09:06:43 -07:00
Pragmatic Software
ecaa45b3dc Expand factoid variables sooner so argument processing occurs on expanded action 2015-09-14 09:06:00 -07:00
Pragmatic Software
ddeb70f1e3 Update version 2015-09-12 01:52:47 -07:00
Pragmatic Software
50fa9ff706 Improve recall error message when no history is found
`recall` now shows all channels a nick was seen in if they weren't seen in
the requested channel.
2015-09-12 01:52:45 -07:00
Pragmatic Software
dfcef63e5e Update version 2015-09-10 01:51:31 -07:00
Pragmatic Software
70f091545b Replace "me" in factoid arguments only during first interpretation pass 2015-09-10 01:51:24 -07:00
Pragmatic Software
d8183fc405 Update version 2015-09-09 05:24:18 -07:00
Pragmatic Software
7ce40fca4d Correct use/package paths 2015-09-09 05:24:16 -07:00
Pragmatic Software
a158e4458f Rename Plugins/_Readme to Plugins/README 2015-09-08 11:50:14 -07:00
Pragmatic Software
8e188b9013 Correct minor typos in description comment 2015-09-08 11:46:08 -07:00
Pragmatic Software
12cd20c072 Update version 2015-09-08 11:42:47 -07:00
Pragmatic Software
17e4cdb8b3 Move Quotegrabs to Plugins 2015-09-08 11:42:43 -07:00
Pragmatic Software
de2774ed00 Update version 2015-09-08 05:30:06 -07:00
Pragmatic Software
6d8b6532b6 Immediate leave UrlTitles if message doesn't contain a URL 2015-09-08 05:30:02 -07:00
Pragmatic Software
c9711e5fa4 Update version 2015-09-08 04:43:26 -07:00
Pragmatic Software
6c5c263ed2 Move URL titles conditional out of loop 2015-09-08 04:43:24 -07:00
Pragmatic Software
c57c9e2f13 Update version 2015-09-08 01:38:02 -07:00
Pragmatic Software
391cd91191 Add $event->{interpreted} example to _Example plugin 2015-09-08 01:37:59 -07:00
Pragmatic Software
e5097eee69 Move URL titles to UrlTitles.pm plugin
Add $event->{interpreted} field to events to notify other handlers
whether an event was successfully interpreted by the interpreter.

An $event->{interpreted} that is equal to or greater than 100 means the entire
message was consumed and handlers shouldn't do any further processing of it
that would generate any output to channels or users.

Otherwise, $event->{interpreted} is incremented by 1 for each referenced
command that was processed.
2015-09-08 01:37:34 -07:00
Pragmatic Software
fa2865fb10 Fix potential undefined variable warning 2015-09-08 01:30:08 -07:00
Pragmatic Software
d51d2367a1 Correct logic of login command ignore check 2015-09-07 05:04:54 -07:00
Pragmatic Software
1582b35db9 Update version 2015-09-07 00:20:11 -07:00
Pragmatic Software
efcca90444 Revert unplug error message 2015-09-07 00:20:06 -07:00
Pragmatic Software
5c83ea62f3 Rename Pluggable to Plugins 2015-09-06 22:53:49 -07:00
Pragmatic Software
70a3a2a354 Update version 2015-09-06 22:52:43 -07:00
Pragmatic Software
adfdccfd27 Rename Pluggable to Plugins 2015-09-06 22:52:39 -07:00
Pragmatic Software
729728a458 Update version 2015-09-06 22:39:59 -07:00
Pragmatic Software
0b74dd070d Pass PBot %conf to auto-loaded plugins 2015-09-06 22:39:40 -07:00
Pragmatic Software
8d666984dc Move AntiAway and AntiKickAutoRejoin to Pluggable 2015-09-06 22:38:59 -07:00
Pragmatic Software
539aeb3e9f Change "not found" to "failed to load" 2015-09-06 22:22:37 -07:00
Pragmatic Software
ce3a3d4b9b Update version 2015-09-06 22:17:20 -07:00