Commit Graph

883 Commits

Author SHA1 Message Date
Pragmatic Software 00203f1705 Update version 2015-04-20 21:33:17 -07:00
Pragmatic Software 3bb3407d37 Update version 2015-04-19 01:55:55 -07:00
Pragmatic Software f20932b442 Allow setting channel-specific registry item `no_url_titles` and `no_compile_blocks` to prevent invoking these in those channels
Rename $mynick to $botnick throughout
2015-04-19 01:55:52 -07:00
Pragmatic Software 4bda217774 Use botnick instead of trigger for stdin commands
Since trigger can be set to be a regex or character-class, use
botnick instead to ensure that commands are properly interpreted.
2015-04-19 01:53:46 -07:00
Pragmatic Software 778933caad Update version 2015-04-16 03:12:14 -07:00
Pragmatic Software 29b3d7e80f Update version 2015-04-14 20:14:24 -07:00
Pragmatic Software 789a4bfe2d Correct handling of `tell`ing factoid aliases 2015-04-14 20:14:22 -07:00
Pragmatic Software b38456e411 Update version 2015-04-13 15:43:22 -07:00
Pragmatic Software a9df8351d3 Move English-to-seconds time duration parser to Utils::ParseDate
Update ban_user_timed() and ignore_user() to use Utils::ParseDate
2015-04-13 15:43:19 -07:00
Pragmatic Software 9ff76ad500 Reduce pseudo-AI typing delay 2015-04-13 15:41:11 -07:00
Pragmatic Software b9b0a55b4e Ensure banmask is a proper mask when doing nick bans 2015-04-13 15:40:43 -07:00
Pragmatic Software 990604e085 Update version 2015-04-11 16:00:40 -07:00
Pragmatic Software 111717c798 Improve `ban` command to understand English time durations
You can now use sentences like "1 hour and 30 minutes" to ban for 5400 seconds.
Also, can now ban in channels from a /msg.
2015-04-11 16:00:20 -07:00
Pragmatic Software a6bafb12a4 Update version 2015-04-10 14:59:20 -07:00
Pragmatic Software 59c29977e6 Improve handling of factoids
Fix adding factoid to local channel when a factoid of same name already exists for global channel
Fix calling factoid from another channel with `fact` command
Do not prepend nick argument to aliases (/call factoids)
2015-04-10 14:59:17 -07:00
Pragmatic Software d89e05b759 Update version 2015-04-10 05:08:19 -07:00
Pragmatic Software f5723d425e Update version 2015-04-10 03:43:52 -07:00
Pragmatic Software c4ec393153 Update version 2015-04-09 11:04:48 -07:00
Pragmatic Software 6642281b8a Update version 2015-04-06 00:49:51 -07:00
Pragmatic Software a15b343752 Update version 2015-04-05 02:32:18 -07:00
Pragmatic Software fcdf24deb5 Update version 2015-04-03 15:33:24 -07:00
Pragmatic Software 17afac5908 Check commands table for keyword before searching regexs 2015-04-03 15:33:19 -07:00
Pragmatic Software d8c12522ed Update version 2015-04-03 13:06:29 -07:00
Pragmatic Software d1341ab4bd Use proper lookbehind to prevent expansion of escaped variables
Remove adlib recursion loop since using $action already enables
recursion since subsitution on $action resets the regex position
2015-04-03 13:06:24 -07:00
Pragmatic Software d2711956d6 Update version 2015-04-03 12:33:42 -07:00
Pragmatic Software ae3791815b Allow recursive expansion of adlib variables
Rename $count to $depth to reflect recursion
2015-04-03 12:33:39 -07:00
Pragmatic Software 383c194966 Don't remove trailing punctuation from arguments
Rename $count to $depth to reflect recursion
2015-04-03 12:32:35 -07:00
Pragmatic Software f3bf1f5e5b Rename $count to $depth to reflect recursion 2015-04-03 12:31:46 -07:00
Pragmatic Software e76592442c Update version 2015-04-03 10:41:07 -07:00
Pragmatic Software 433f381bc9 Don't expand $1, $2, etc, as adlibs 2015-04-03 10:40:48 -07:00
Pragmatic Software 7cd174506f Update version 2015-04-03 10:12:37 -07:00
Pragmatic Software 528f66bfed Refactor Factoids.pm to allow expansion of variables in all factoid types
Variables like $args and adlib variables can now be expanded in modules
and other factoid types.
2015-04-03 10:11:21 -07:00
Pragmatic Software 060d3aee6a Fix wrong channel for `fact` command
The `fact` command was using $channel instead of $from, which
caused the result to be sent to the channel the factoid lives
in instead of the channel the command was invoked in.
2015-04-03 10:08:57 -07:00
Pragmatic Software 2a0912342e Update version 2015-03-30 15:04:12 -07:00
Pragmatic Software c73f8b6a01 Minor refactor 2015-03-30 15:04:08 -07:00
Pragmatic Software b2714e2d16 Update version 2015-03-29 20:26:35 -07:00
Pragmatic Software b6f842bafc Rename some missed variables from previous name-change 2015-03-29 20:26:08 -07:00
Pragmatic Software b36a4fb2c9 Improve message output queue
- Use distinct per-channel queues
- Use timestamp of last message in queue to add delay
- Increase typing speed from 4 characters per second to 7 cps
2015-03-29 20:24:36 -07:00
Pragmatic Software 3f62bfbd94 Update version 2015-03-28 17:52:42 -07:00
Pragmatic Software e199f6309a Factoids can now be set to use a delayed output queue instead of immediately responding 2015-03-28 17:50:43 -07:00
Pragmatic Software 6701ee67f9 find_factoid() can now be told to return found alias instead 2015-03-28 17:49:42 -07:00
Pragmatic Software 5457e129b0 Update version 2015-03-27 13:01:15 -07:00
Pragmatic Software 7599fb0c19 Correct handling of bot trigger in /msg since earlier commit allowing trigger to be a regex 2015-03-27 13:00:43 -07:00
Pragmatic Software 5117c601fb Update version 2015-03-27 04:09:50 -07:00
Pragmatic Software 9140cbec07 Remove ancient obsoleted -1 check on Nickserv account 2015-03-27 04:09:39 -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 377cf99d35 Update version 2015-03-23 04:27:49 -07:00
Pragmatic Software 44bdf26ebc Add support for per-channel bot trigger characters 2015-03-23 04:27:41 -07:00
Pragmatic Software 2e9f15b7e2 Support IPv6 banmasks 2015-03-23 04:18:33 -07:00
Pragmatic Software 0db12b82ae Update version 2015-03-20 21:14:11 -07:00
Pragmatic Software be47b2cbf2 Improve output of blacklist and ignorelist commands 2015-03-20 21:14:07 -07:00
Pragmatic Software 3e88db4505 Update version 2015-03-16 23:22:22 -07:00
Pragmatic Software 728e05e514 Correct minor logic error 2015-03-16 23:22:18 -07:00
Pragmatic Software b45b707ec2 Update version 2015-03-16 21:10:12 -07:00
Pragmatic Software 9a52fffcdd Rename ShitList to BlackList; minor refactor of IgnoreList 2015-03-16 21:08:25 -07:00
Pragmatic Software d350affa93 Update version 2015-03-15 20:13:03 -07:00
Pragmatic Software cb9ead7624 Incorporate custom `workdir` field into URL for modules 2015-03-15 20:12:44 -07:00
Pragmatic Software 9abce1c102 Update version 2015-03-15 14:07:54 -07:00
Pragmatic Software 284f943c08 Fix typos 2015-03-15 14:07:38 -07:00
Pragmatic Software e604767517 Add support for shitlisting hostmasks 2015-03-15 13:52:30 -07:00
Pragmatic Software 73ba1e7c19 Update version 2015-03-11 02:00:14 -07:00
Pragmatic Software 7970018777 Improve handling of nick-change flood 2015-03-11 02:00:10 -07:00
Pragmatic Software 9ec50d8f5d Update version 2015-03-04 00:41:41 -08:00
Pragmatic Software 386e03c184 Add `stayloggedin` field to admin accounts to prevent logging out when /parting or /quitting 2015-03-04 00:39:44 -08:00
Pragmatic Software d5073be98f Update version 2015-02-17 01:47:38 -08:00
Pragmatic Software e0971e8158 Update version 2015-02-17 01:32:28 -08:00
Pragmatic Software f06aa9dda6 Update version 2015-02-15 20:30:34 -08: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 19788eec47 Use 0 second timeout on SelectHandler's select
We do not need to wait for any timeout period in SelectHandler's
select since IRC.pm's select has a 1 second (by default) timeout.

Removing this unnecessary delay will increase the overall
responsiveness of the bot.
2015-02-15 20:23:07 -08:00
Pragmatic Software 1ffe857ba5 Print IRC debug messages to STDERR 2015-02-15 20:19:51 -08:00
Pragmatic Software ec13cf14bc Search all channels if target channel is not a valid channel (private message, for instance) 2015-02-15 20:18:46 -08:00
Pragmatic Software 04f47ba3a1 Show "global" if namespace is ".*" 2015-02-15 20:17:36 -08:00
Pragmatic Software 9f265a0f0e Do not enforce anti-flood on logged in bot admins 2015-02-15 20:16:37 -08:00
Pragmatic Software 559b9ddde1 Use NickList instead of MessageHistory for target channels 2015-02-14 04:03:39 -08:00
Pragmatic Software 800b097a34 Use NickList instead of MessageHistory for target channels 2015-02-14 04:03:18 -08:00
Pragmatic Software ad1ab83298 Update bad_actions with more matches 2015-02-14 04:02:13 -08:00
Pragmatic Software 9f23aef2d0 Random IRC nicks cannot start with a digit 2015-02-14 04:01:09 -08:00
Pragmatic Software 022f86c3e1 Update version 2015-02-13 15:37:55 -08:00
Pragmatic Software 2db21dd011 Update version 2015-02-13 14:39:27 -08:00
Pragmatic Software 2a63cced1d Update version 2015-02-11 21:38:48 -08:00
Pragmatic Software 23ae41c2f2 Update version 2015-02-07 08:48:58 -08:00
Pragmatic Software b693f96806 Update version 2015-01-29 01:40:00 -08:00
Pragmatic Software 972b542582 Update version 2015-01-29 01:25:09 -08:00
Pragmatic Software 12cd9cb8e0 Improve launching of modules
If a `workdir` factoid key is present, the launcher will chdir
to make the specified value the current working directory.

Redirect stderr output to a $modulename-stderr in the module's
current working directory.
2015-01-27 23:49:30 -08:00
Pragmatic Software 4b9e177aec Update version 2015-01-24 08:05:58 -08:00
Pragmatic Software 74f717ad51 Update version 2015-01-23 13:50:17 -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 573a18e6ef Update version 2015-01-23 12:33:06 -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 90597350c5 Update version 2015-01-23 07:36:53 -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 8810605691 Show server:port when connecting 2015-01-23 05:35:06 -08:00
Pragmatic Software 659e61f1fb Update version 2015-01-10 15:56:46 -08:00
Pragmatic Software 7243832cc3 Improve connecting/nicking logic
Randomize nick when connecting and change to botnick after identifying.

Identify after receiving connection welcome message.

Ghost existing nick if it is already in use and then attempt to regain it.
2015-01-10 15:56:43 -08:00
Pragmatic Software 28bd6f3611 Update version 2015-01-06 15:35:55 -08:00
Pragmatic Software 5d1412227f Update version 2014-12-30 17:26:35 -08:00
Pragmatic Software ebd47406ca Update version 2014-12-29 23:56:49 -08:00
Pragmatic Software 7a1d37b51a Update version 2014-12-29 23:25:31 -08:00
Pragmatic Software f9e2c3fb49 CJeopardy improvements
- Reduce hint wait-period from 60 seconds to 30 seconds
- Improve ignoring of common leading words in answers
- Correct several grammar mistakes/typos in questions
2014-12-29 23:19:32 -08:00
Pragmatic Software b289fd155e Add repo_module to registry to customize source URL in factinfo command 2014-12-29 23:15:46 -08:00
Pragmatic Software 4c65df0529 Update update-version.pl from svn to git 2014-12-29 23:04:35 -08:00
Pragmatic Software ecd2bad066 Add anti-kick-auto-rejoin module that temporarily kickbans offenders who immediately auto-rejoin after having been kicked 2014-12-28 00:44:15 +00:00
Pragmatic Software 0b9513ca2e Reduce ban-tracker verbosity by putting "Getting baninfo" log messages in a debug block 2014-12-27 05:20:21 +00:00
Pragmatic Software bb5c825aab Correct handling of anti-away /me actions 2014-12-27 05:08:42 +00: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 ba59edb040 Update paren.py module to improve parentheses verbosity 2014-12-20 19:44:40 +00:00
Pragmatic Software a09d3c1d63 Add `permop` channel flag; when non-zero bot automatically ops itself when joining channel, otherwise bot ops itself only when needing to perform an op command and then deops itself after its deop timeout has elapsed 2014-12-18 08:46:13 +00:00
Pragmatic Software 598e2e4988 Add NickList module to track nicks present in channels; dispatch pbot.join/pbot.part events when bot joins/parts channels 2014-11-15 01:18:33 +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 bc604d3ce2 Insert additional events to IRC::Event::_names table so default handlers will pick them up
Fix up indentation of _names table
2014-11-01 00:08: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 c979efcfa6 Ignore add_op_command() for channels bot is not registered or set as op 2014-10-28 20:34:48 +00:00
Pragmatic Software f640ade74e Fix regex factoids so that regular factoid keywords have priority over regex triggers 2014-10-28 20:33:11 +00:00
Pragmatic Software f70e044a60 Update latest hostmask last_seen timestamp when linking accounts 2014-10-14 02:33:13 +00:00
Pragmatic Software a679b0ff15 Improve handling of KICK events wrt to message history 2014-10-14 02:32:22 +00:00
Pragmatic Software 46fa0d52b3 Minor code formatting improvement 2014-10-14 02:30:57 +00:00
Pragmatic Software 4dbec8001e Fix regex factoids in global namespace not being triggered 2014-10-14 02:30:14 +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 79796f9710 CGrammar: Add istrue to static assertion expression; add ability to customize istrue truthiness result, add isfalse 2014-09-19 04:17:37 +00:00
Pragmatic Software 9d3c8c0285 CGrammar: Correct translation of sizeof in static assertions 2014-09-19 03:54:13 +00:00
Pragmatic Software b2e6d7e4c0 Update version 2014-09-11 13:37:57 +00:00
Pragmatic Software 2529d49aac CGrammar: Remove excessive "result of the expression" for parenthesized expressions 2014-09-09 07:20:42 +00:00
Pragmatic Software 83af062376 Fix case-sensitivity to show QUIT messages properly 2014-09-09 07:19:10 +00:00
Pragmatic Software d40361a2bf Disallow ?, [, ], and ~~ in math.pl 2014-08-31 20:27:40 +00:00
Pragmatic Software fa2e3e4b5d Dump LWP error text if get_title.pl fails to fetch webpage 2014-08-31 20:26:24 +00:00
Pragmatic Software 838f232d68 Update C Jeopardy questions 2014-08-31 20:24:08 +00:00
Pragmatic Software a5ede3307e Update C facts module 2014-08-31 20:23:27 +00:00
Pragmatic Software 021401b538 C Jeopardy: Show correctness percentage when an answer is almost correct; recommend #cjeopardy channel when attempting to play via /msg 2014-08-31 20:21:09 +00:00
Pragmatic Software 34d9a2a6d9 Appropriately wildcard /gateway/ hostmask bans 2014-08-18 14:57:12 +00:00
Pragmatic Software 749fda0ff3 Add HHGTTG easter egg to math.pl 2014-08-13 16:55:04 +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 068c6a0559 Add default handler for unhandled IRC events; ignore certain IRC events; improve handling of chan-op requests 2014-08-11 07:34:30 +00:00
Pragmatic Software c40e34b3a1 Add newline to "also known as" output to improve formatting in pastes 2014-08-11 07:33:05 +00:00
Pragmatic Software 321fdc401c Improve handling of white-space when splitting output on new-lines 2014-08-11 07:32:24 +00:00
Pragmatic Software c03a1288b6 CGrammar: Fix a|an substitution to an|a 2014-08-10 05:31:29 +00:00
Pragmatic Software 527e8490a3 CGrammar: Add offsetof 2014-08-10 05:03:37 +00:00
Pragmatic Software 48382de916 Add ability to set maximum number of newlines allowed before truncating for preserve newlines 2014-08-05 23:15:11 +00:00
Pragmatic Software dddc9c3be9 Paste remaining lines to paste site if truncated with more lines remaining when preserve newlines is in effect 2014-08-05 23:11:51 +00:00
Pragmatic Software a8ffedc853 C Jeopardy commands now use preserve_whitespace 2014-08-04 22:51:09 +00:00
Pragmatic Software ca37b4fd4e Fix use of wrong sub name when saving registry entries in add/remove subs 2014-08-04 22:50:22 +00:00
Pragmatic Software b15ab7f84f Add ability to preserve newlines in output; require explicit `factadd` to add factoids 2014-08-04 22:48:32 +00:00
Pragmatic Software 74cffe091c C Jeopardy: More improvements to question database 2014-08-04 21:51:23 +00:00
Pragmatic Software 18d245cf10 C Jeopardy: Now says "Too slow!" if someone else also answers the correct answer within 15 seconds 2014-08-04 06:25:56 +00:00
Pragmatic Software 7d6e505d9f C Jeopardy: Clean up some typoes in the questions 2014-08-04 05:20:28 +00:00
Pragmatic Software bf9fe32682 C Jeopardy: Fix and clean-up some questions; fix substitution if "is" in answers 2014-08-04 00:35:41 +00:00
Pragmatic Software 4bf78bf978 C Jeopardy: Add tons of new questions; add support for supplemental tidbits; don't obscure dashes and underscors in hints 2014-08-03 22:20:54 +00:00
Pragmatic Software 55bdc5b930 Enforce CPU limit on expand_macro module 2014-08-03 22:02:36 +00:00
Pragmatic Software bc871bf4b2 C facts: Improve generation of C facts; update cfacts.txt with new facts 2014-08-02 16:01:51 +00:00
Pragmatic Software 9651847165 C Jeopardy: Correct showing of text/answer in "close enough" output due to recent change in handling of typographical case 2014-07-29 20:21:06 +00:00
Pragmatic Software 236b4c1d06 C Jeopardy: Add time-limit to hints 2014-07-29 20:07:48 +00:00