Commit Graph

230 Commits

Author SHA1 Message Date
Pragmatic Software 1b70de807b Change split / / to split /\s+/ throughout 2017-09-02 00:39:29 -07:00
Pragmatic Software 793303fcde Fix factoid var expansion such that 0 can now be yielded 2017-09-02 00:27:01 -07:00
Pragmatic Software 2f014ba2f0 Use /say on returns whose first word is a variable 2017-09-02 00:14:13 -07:00
Pragmatic Software 678d82676d Add `interpolate` factoid metadata to control interpolation 2017-08-31 03:10:20 -07:00
Pragmatic Software 3b93d6c281 Escape single-quotes before using GetOptionsFromString and shellwords 2017-08-30 02:12:05 -07:00
Pragmatic Software 3d7388b402 Correct expansion of $nick and $args and such 2017-08-28 23:15:57 -07:00
Pragmatic Software 25e104732e Whoops, don't add an $ to $0 expansion, use $0 in factoids and $$0 for factoid variables instead 2017-08-27 20:40:15 -07:00
Pragmatic Software a6e495352f Remove extraneous $1 2017-08-27 19:54:46 -07:00
Pragmatic Software c5da50593a Expand $0 and /call in factoid variables 2017-08-27 19:52:36 -07:00
Pragmatic Software 75c6375339 Refactor code-factoid execution a little bit 2017-08-27 04:18:31 -07:00
Pragmatic Software 2cd007d6c4 Execute code-factoids in action_with_args 2017-08-26 21:42:01 -07:00
Pragmatic Software 770e678170 code-factiod symbol name exclusion now more robust 2017-08-26 03:45:58 -07:00
Pragmatic Software 6d552cc710 Double-quoted $0 in code-factoids now expand to root-keyword 2017-08-26 01:50:42 -07:00
Pragmatic Software 1a08156443 Add $0 in factoid action to expand to first keyword used to invoke factoid 2017-08-26 01:45:18 -07:00
Pragmatic Software 06d341b41f Automagically transpose a/an preceding factoid variable expansion 2017-08-25 23:36:11 -07:00
Pragmatic Software 8cae7a0847 Pre-expand factoid variables in code-factoids 2017-08-25 15:32:28 -07:00
Pragmatic Software 7f2f32f3d0 Limit max action length from code-factoid result 2017-08-24 15:19:12 -07:00
Pragmatic Software 872d31528a Add code-factoids! 2017-08-23 19:25:43 -07:00
Pragmatic Software 98a061b232 Fix $nick and $arg being overridden by factoids 2017-08-23 19:14:46 -07:00
Pragmatic Software 6e0456940b Repeatedly expand factoid variables for sub-expansions 2017-08-23 00:21:46 -07:00
Pragmatic Software 93a482490d Ensure `version` factoid is always created after load() 2017-08-05 20:25:26 -07:00
Pragmatic Software 381b4bee4b Use Time::Duration for rate_limit message 2017-08-04 21:05:31 -07:00
Pragmatic Software 45c47aaea7 Remove explicit check if command exists when looking for existing factoids 2017-08-03 16:15:52 -07:00
Pragmatic Software 9864ce09ae Factoid doesn't have effective-level, not the bot itself... 2017-08-03 13:28:52 -07:00
Pragmatic Software 121de07ae2 Whoops, attempted to modify current $action in loop 2017-08-01 21:31:58 -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
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 0e4f2d1447 Minor effective-level /kick derp 2016-11-16 19:14:00 -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 0397068a7f Undo recent blink addition 2016-10-23 03:50:34 -07:00
Pragmatic Software 8addeb5d49 Allow "nick: !command" to address to nick; minor improvements 2016-10-14 05:56:54 -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 e6e7f325fb Add individual change-logs for factoid triggers 2015-12-13 13:58:01 -08: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 89eda8f0a9 Fix undefined variable warning in find_factoid 2015-10-19 12:21:42 -07:00
Pragmatic Software 930801a5fb Require curly braces or backticks around embedded commands 2015-10-10 04:27:36 -07:00
Pragmatic Software 54b8750d1b Allow adding channels as factoid adlib modifier 2015-10-05 02:11:52 -07:00
Pragmatic Software cf72a11658 Improve factoid expansions 2015-10-05 02:03:13 -07:00
Pragmatic Software a5c700eec3 Correct encode_entities() in export_factoids() for URLs, etc 2015-10-02 20:14:48 -07:00
Pragmatic Software dc2f372551 Add missing encode_entities() to export_factoids() 2015-10-02 20:06:25 -07:00
Pragmatic Software 04aaeb5475 Fix handling of no factoid found from find_factoid() 2015-09-19 00:27:15 -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 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 ecaa45b3dc Expand factoid variables sooner so argument processing occurs on expanded action 2015-09-14 09:06:00 -07:00
Pragmatic Software fa2865fb10 Fix potential undefined variable warning 2015-09-08 01:30:08 -07:00
Pragmatic Software 8c16fbd3e5 Allow factoids to be referenced from within messages
E.g.,

<pragma-> Userbob: You can learn more about candide by reading its !help page and checking out its !source
<candide> Userbob: To learn all about me, see http://www.iso-9899.info/wiki/Candide
<candide> Userbob: My guts can be browsed at https://github.com/pragma-/pbot

Only three triggers will be processed per message.  (I should create a
registry entry to customize this.)

Messages that are addressed at a specific user that exists in the channel will
have that user's name prepended to the factoid output.

Factoid triggers that are referenced from within messages will not produce
error messages if the factoid is not found.

Factoids that have an $arg or $nick special variable will not be triggered as
a reference.

Factoids that have the `noembed` meta-data value set to a true value will not
be invoked as a reference.
2015-09-03 20:56:44 -07:00
Pragmatic Software bded959ba4 Remove unnecessary logic 2015-07-23 17:46:33 -07:00
Pragmatic Software ba87aef524 Improve factshow/factfind behavior
factshow's and factfind's channel argument is now optional.

The commands will now automatically determine the channel a factoid lives in
if it is the only factoid of that name.

If there are multiple factoids existing in different channels then the commands
will display a disambiguation message and require an explicit channel argument
to choose a specific channel's factoid.
2015-07-21 15:07:56 -07:00
Pragmatic Software 241c30b4f4 Do not override special variables in expand_factoid_vars() 2015-07-09 23:24:00 -07:00
Pragmatic Software 1179a7e1f1 Don't remove dollar-sign from unexpanded factoid vars 2015-07-06 20:01:17 -07:00
Pragmatic Software a0c798dd2a Expand factoid variables in /call statements
This allows us to call random factoids.

E.g.:

  factadd global fact1 is /say This is fact1.
  factadd global fact2 is /say Fact2 is also a pretty neat fact.
  factadd global fact3 is /say But don't forget about fact3!
  factadd global facts is fact1 fact2 fact3
  factadd global randomfact is /call $facts

Invoking the `randomfact` factoid will now randomy pick between
fact1, fact2 and fact3.

This was added to support the `randomkr` factoid.
2015-07-06 19:39:33 -07:00
Pragmatic Software 83f84e261a Minor bug-fixes 2015-07-01 15:21:08 -07:00
Pragmatic Software 144c3ec63b Fix apostrophe in expand action arguments, and fix regex 2015-06-26 00:10:23 -07:00
Pragmatic Software f10e1c1c89 Support factoid argument indexing/slicing ($arg[0], $arg[2:4], etc) 2015-06-25 22:56:10 -07:00
Pragmatic Software d431d70ac1 Reduce verbosity of factoid debug messages 2015-06-20 17:48:00 -07:00
Pragmatic Software f2a8839707 Add $randomnick special factoid variable 2015-06-08 04:43:00 -07:00
Pragmatic Software 789a4bfe2d Correct handling of `tell`ing factoid aliases 2015-04-14 20:14:22 -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 17afac5908 Check commands table for keyword before searching regexs 2015-04-03 15:33:19 -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 ae3791815b Allow recursive expansion of adlib variables
Rename $count to $depth to reflect recursion
2015-04-03 12:33:39 -07:00
Pragmatic Software 433f381bc9 Don't expand $1, $2, etc, as adlibs 2015-04-03 10:40:48 -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 6701ee67f9 find_factoid() can now be told to return found alias instead 2015-03-28 17:49:42 -07: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 f640ade74e Fix regex factoids so that regular factoid keywords have priority over regex triggers 2014-10-28 20:33:11 +00:00
Pragmatic Software 4dbec8001e Fix regex factoids in global namespace not being triggered 2014-10-14 02:30:14 +00:00
Pragmatic Software 60d8235999 Add registry entry to control max recursion depth for interpreter 2014-05-31 01:05:47 +00:00
Pragmatic Software a81ba775fc Restored load, unload, count and histogram commands.
Removed enable/disable commands; use factset instead.

Add default_rate_limit registry entry.

Add newlines to output of DualIndexHashable set() subroutine.
2014-05-24 12:01:59 +00:00
Pragmatic Software 02c0143634 Add factmove command to rename/move factoids between channels 2014-05-23 12:42:23 +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 d8d26b1cea Add registerable atexit functionality and trap SIGINT 2014-05-16 22:11:31 +00:00
Pragmatic Software 7367e4f18c Include `action_with_args` in factoids export 2014-04-07 04:50:00 +00:00
Pragmatic Software 8338b009d4 Properly handle preserve-whitespace; use modulelaucher_subpattern regex to correct whitespace 2014-03-18 14:55:34 +00:00
Pragmatic Software 36b7e1fa6f Improve handling of interpreter result and module execution 2014-03-14 10:05:11 +00:00
Pragmatic Software 17ed2fb64a Remove extranous ) typo in "Displaying text" string 2014-03-07 16:51:18 +00:00
Pragmatic Software 921c9917a5 Add $channel special variable for factoids/modules that expands to $from parameter 2014-03-04 21:40:13 +00:00
Pragmatic Software 9b2c374bbb Use export_site properly in Quotegrabs.pm 2014-03-03 10:33:34 +00:00
Pragmatic Software f6c75f2b4f Factoids and Quotegrabs HTML exported tables can now be filtered 2014-03-03 09:24:33 +00:00
Pragmatic Software aeec4fb2f5 Restore missing "$keyword is $result" when triggering factoid without $ref_from 2013-10-14 17:22:06 +00:00
Pragmatic Software d374fdfc01 Skip channels without factoids in html export 2013-10-13 10:23:49 +00:00
Pragmatic Software c91a8e5c3d Fix /say substitution derp that allowed "/say /msg foo bar" to actually invoke /msg rather than saying "/msg foo bar" 2013-10-12 15:06:27 +00:00
Pragmatic Software 02ebf106a8 Add table of contents to factoids html export 2013-10-12 13:52:12 +00:00
Pragmatic Software aab27f4797 Improve factoids export to use tablesorter 2013-10-12 13:35:57 +00:00
Pragmatic Software edff4b6c4c Update ref_user to use full hostmask instead of just nick; add edited_by/edited_on to factoid metadata levels hash 2013-07-31 13:48:50 +00:00
Pragmatic Software dc52430044 Add SSL support, and other misc updates 2013-02-25 02:27:24 +00:00
Pragmatic Software 39a38b58f8 Triggering non-existent factoids now attempts to factfind (for keywords and text) before trying a levenshtein closest match (of keywords) 2012-11-04 20:42:38 +00:00
Pragmatic Software ccf1d35a54 Improvements in interpreter; tell <nick> about <command>; etc 2012-08-23 22:50:07 +00:00
Pragmatic Software 8a70c06096 Misc bug fixes and tweaks 2012-07-22 19:22:30 +00:00
Pragmatic Software 1d691caeb9 factoids: don't show nick prefix if has action_with_args; updated factoids
interpreter: don't expand $nick in result for all commands
2011-12-17 00:30:44 +00:00
Pragmatic Software a57394c762 factoids: oops, broke global channel searching, fixed (exact_channel restored) 2011-02-14 08:09:50 +00:00
Pragmatic Software bede029261 factoids: probably adds/remove upper/lowercase keywords 2011-02-14 07:25:15 +00:00
Pragmatic Software cd8791a854 factoids: better handling of triggering factoids in other namesapces; actions_with_args fixed 2011-01-30 07:18:28 +00:00
Pragmatic Software 845dff008e factoids: levenshtein search working again; rate-limit working again 2011-01-30 06:29:05 +00:00
Pragmatic Software e4019895d3 factoids: added comments explaining namespace handling 2011-01-30 03:55:09 +00:00
Pragmatic Software cb2c17f636 factids: er, it is fact <location> <keyword> not fact <keyword> <location>, oops 2011-01-30 03:06:45 +00:00
Pragmatic Software ffdecba6ee factoids: be more clear about how to choose factoids from another channel if ambiguous keyword; find_factoid searches channel namespace better 2011-01-30 03:03:31 +00:00
Pragmatic Software 221a698ecb factoids: if unknown keyword is triggered inadvertedly, .e.g. by referencing the bot by name, and the args dont look like a nick then do not spit out the levenshtein matches text 2011-01-30 02:44:56 +00:00
Pragmatic Software 9336428ea2 factoids: improved handling of factoids belonging to other channels; significantly 2011-01-29 01:21:17 +00:00
Pragmatic Software 44b737a8c3 factoids: allow factset/factunset by regular users; factset/factunset now has list of metadata levels, and does ownership checking; added action_with_args metadata field to be substituted for action if factoid triggered with arguments 2011-01-25 22:40:22 +00:00
Pragmatic Software a619f8fe9b factoids: Dont break factoids if used from stdin 2011-01-24 23:46:07 +00:00
Pragmatic Software 22c1673f3d factoids: dont remove trailing colon and/or comma from keywords in interpreter 2011-01-24 01:30:19 +00:00
Pragmatic Software 0f47100dc9 Rate-limit now per-channel (sort of) 2010-08-14 09:45:58 +00:00
Pragmatic Software 96db60d0fa encode_entities for factoid URLs in HTML export 2010-07-01 05:54:04 +00:00
Pragmatic Software 28a5d47af1 Exported factoids now have clickable links 2010-07-01 01:43:49 +00:00
Pragmatic Software affb2c66d5 Remove trailing comma or colon from end of keyword if other characters exist before it; allow sentence-like arguments again 2010-06-30 12:18:25 +00:00
Pragmatic Software 31e53f2aff Allow question-marks in triggers if more than one is used; remove period from factoid names; return undef if factoid keyword is blank 2010-06-30 11:36:45 +00:00
Pragmatic Software c6e48954c5 Levenshtein distance increased from 50% to 60%; Levenshtein searches all channels on unfound factoid 2010-06-30 10:59:50 +00:00
Pragmatic Software 9fa3b865e9 Factoids now ignore arguments that do not look like a nick if the factoid doesn't take an argument -- fixes factoid triggers on sentences with bot's name; find_factoid searches global channel if $from is not a channel 2010-06-30 04:58:22 +00:00
Pragmatic Software 5f5cd6ec08 regex factoids now trigger properly 2010-06-30 03:48:13 +00:00
Pragmatic Software d7f2583aac Prettier export headers; factrem output for not owner now includes channel 2010-06-29 07:14:26 +00:00
Pragmatic Software 380a2b322c Factoid HTML export table now fits width appropriately 2010-06-29 06:50:49 +00:00
Pragmatic Software 43089e4599 Cleaned up extra factoid groups; made export factoids a little prettier; renamed "default channel" to "global channel" throughout 2010-06-29 06:12:52 +00:00
Pragmatic Software 6d3fc7f628 find_factoid now takes exact_trigger parameter; this fixes confusion with regex factoids 2010-06-27 02:52:06 +00:00
Pragmatic Software 818e09861c Added rate_limit to factoids 2010-06-21 15:23:46 +00:00
Pragmatic Software 562d265261 Adding factoid in a channel now creates that factoid in that channel instead of .*; info command now shows what channel factoid belongs to 2010-06-21 13:28:54 +00:00
Pragmatic Software f9ab0c7e77 Added Time::Duration::ago() to !info command 2010-06-21 10:44:15 +00:00
Pragmatic Software 4be7fe3b34 Refactored Factoids to use DualIndexHashObject; added factset/factunset to set factoid meta-data; factoids now per-channel; slightly unfinished 2010-06-20 06:16:48 +00:00
Pragmatic Software e6f9296010 Removed extra logging information 2010-06-19 17:38:14 +00:00
Pragmatic Software 8ebe546850 New factoid loading/saving -- much more flexible! 2010-05-08 23:36:56 +00:00
Pragmatic Software 1330bfcff5 Allow <foo> is <bar> to pass through to other interpeters if factoid already exists 2010-04-18 07:34:01 +00:00
Pragmatic Software e051ede6f0 List Levenshtein-based closest matches if factoid not found 2010-04-09 22:55:24 +00:00
Pragmatic Software 0c54d9c93e Send message on private ignore; parse adlib variables better 2010-04-02 18:23:31 +00:00
Pragmatic Software 0b78e4ed79 Regex factoids restored 2010-04-02 17:33:18 +00:00
Pragmatic Software d299a8fb0f 90% done in object-oriented conversion -- IgnoreList doesnt save/load/use regex yet. 2010-03-24 06:47:40 +00:00
Pragmatic Software fa50724b58 Progressing on object-oriented conversion. Some functionality may be missing. 2010-03-23 18:24:02 +00:00
Pragmatic Software bd46c11120 Half-way through converting everything to objects. Committing mostly working copy as preview. 2010-03-22 07:33:44 +00:00