1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452
|
Revision history for Perl extension Bot::BasicBot::Pluggable.
{{NEXT}}
- Avoid spurious table exists warning in ::Store::DBI (RT #75849, PR #11),
with thanks to Michael Alexander (omni)
- Fix typo in doco (alt_nicks not alt_nicks) - also with thanks to omni
- New infobox options to allow newlines / pipes in factoids
(PR #14, with thanks to Jaggz H (@jaggzh)
1.20 - 2017-04-06
- Support irc_raw and irc_raw_out (new events added in Bot::BasicBot 0.91 in
order to provide raw IRC traffic)
1.11 - 2017-03-31
- Fix deps list (MooseX::GetOpt -> ::Getopt)
1.10 - 2017-03-30
- Support "private" channels, which still show up in seen responses,
but without leaking the contents of messages in that channel to other
channels
- Handle "seen" on one's self better
- Various contributions from ailin-nemui in PR-7, including:
- IPv6 support
- Setting module priorities
- Bugfixes for using the DBM::Deep store
- Ability to protect infobot factoids
- Ability to send other users factoids in public
1.00 - 2016-06-13
- Match only one "word" in seen responses
Avoid silly mis-triggers. GH PR-3 (bigpresh)
- Ignore links in messages from ourselves, so we avoid turtle
situations. GH PR-2 (bigpresh)
- Karma plugin - match nicks with \S+, not \w+, so nicks with
hyphens in can have karma. GH PR-1 (bigpresh)
- Better-document how said() resturn value is handled, to avoid
potential confusion. GH PR-4 (bigpresh)
*********************************************************************
David Precious (BIGPRESH) taking over maintainership at this point,
kind thanks to Mike Eldridge (DIZ) for kindly handing over
maintainership to me.
I still make active use of this bot framework, and want to see it
continue to be loved and supported, so bug reports and pull requests
are welcome!
*********************************************************************
0.97 - Thu Jun 14 10:39:29 CDT 2012
- more fixes from bigpresh
- fix regression in ChanOp->isop() introduced in 0.95 (thanks to ambs for finding it)
0.96 - Wed Feb 29 21:05:58 CST 2012
- more fixes from bigpresh:
- fix tests busted by karma changes
- fix regression in the seen module
0.95 - Tue Nov 15 20:58:25 CST 2011
- a number of fixes and enhancements from bigpresh:
- new feature: ability to hide channels from being "seen" by the Seen module
- new feature: ability for the Karma module to report karma upon change
- cleanup in the Karma module (plus an easter egg)
- eliminate warnings in ChanOp module
- typo fixes
- allow the configfile to be undef from adamtaylor
- handle interrogatives in the Karma module
0.94 - Tue Nov 15 20:45:32 CST 2011
- botched release (forgot to pull before releasing - *sigh*)
0.93 - Mon Jun 27 10:40:24 CDT 2011
- when creating temporary files for Store::Storable->save, make sure
they are created in the same directory that the final file will be
moved to. if not, the rename may fail if the source and destination
are on separate filesystems. (RT #68886)
- correctly parse relative paths from *.storable file globbing in the
Storable backend store. this was preventing the store from restoring
data for modules. (RT #68887)
0.92 - Thu May 5 08:39:08 CDT 2011
- added ability to load modules of arbitrary depth, courtesy of david
precious (bigpresh)
- refactor Auth module so that it doesn't step on other modules by
eating all bang commands, also courtesy of bigpresh.
- added Crypt::SaltedHash to the prereqs list
0.91 - Tue Dec 7 00:05:51 CST 2010
- added transparent support for salted password hashes (RT #63232),
courtesy of david precious (bigpresh)
- fix busted flood protection (RT #62864), courtesy of david precious
(bigpresh)
- fix minor warning-producing exception in ChanOp->isop, also courtesy
of the B.P.
0.90 - Fri Nov 5 17:14:30 CDT 2010
- bumped dependency on Log::Log4perl from 0 to 1.11 due to dependency
on the trace log level (RT #56540)
0.89 - Thu Oct 28 18:09:18 CDT 2010
- Added DBD::SQLite and YAML::XS to the test dependency list
- Quote table identifiers in Bot::BasicBot::Pluggable::Store::DBI
- Bot::BasicBot::Pluggable is under new maintenance \o/
0.88 2010/08/29
Removing build dependencies for Test::Perl::Critic and Test::Tidy.
Bot::BasicBot::Pluggable is looking for a new maintainer (again...)
as the current maintainer is not using it anymore. Please mail
to <mdom@cpan.org> if you are interested in taking over this fine
module.
0.87 2010/05/09
Remove all recommends due some failing tests. In a future release,
some of the modules with long dependencies will be removed from
this distribution and form their own on CPAN. I look at you DBI...
Switched to Dist::Zilla
0.86 2010/03/28
Thanks to Jacob Helwig for the follwoing changes:
Join: Check for auth after checking whether we should handle
the message at
Add a new check to Bot::BasicBot::Pluggable::Module::Join to see whether
the module should handle the message at all, and move the "is the user
authed" after this check.
By doing this we no longer send out "Sorry, ..." messages if someone
happens to say "botname: Hi there!" without being authorized.
0.85 2010/02/13
This is the David-Precious-aka-bigpresh-release, who commited all
changes via Github. Thanks!
- Join: Don't accept commands to join/part channels unless the
user asking us to do so is auth'd to the bot
- ChanOp: Make the ChanOp module actually work (uhm...)
0.84 2009/12/11
- Log4Perl: Instead of just printing error messages to stdout,
the bot now uses Log4perl to emit warnings and debugging information.
For now i just added this new capability to Bot::BasicBot::Pluggable
but this will be expanded to all the modules in one of the next
releases.
The bot's old log() function will now emit a message with
priority warning to mimic the old behaviour.
The command line bots now have two new options: --loglevel and
--logconfig.
- Commandline Bot: A simple command line bot was part of the
github repository for quite some time now, but it was never
shipped with a release before. To close #46875 and as it's a
really neat way to test some modules, i'll reworked
bot-basicbot-pluggable-cli, added
App::Bot::BasicBot::Pluggable::Console and
Bot::BasicBot::Pluggable::Console and use
Test::Bot::BasicBot::Pluggable as its basis. You can call it
with the same arguments as its irc cousin, but some options
like --server or even --channel does not (yet?) make any sense
in this context.
- Auth: Added allow_anonymous as requested and implemented by
Toni Spets. Setting this value to true, does basically disable
authentication for all modules, that are not explicitly checking
for the users authentication level.
You only ever want to set this value to true, if you want to
develop modules that need to prefix commands with ! for
unauthenticated users. You've been warned.
- Loader, Vars: As direct consequence Loader.pm and Vars.pm do
now check explicitly.
- Loader: !list does now also return all available but not loaded
modules (thanks to Manuel Hachtkemper for the hint). I can see
that the old behaviour might be a little bit confusing for some
users.
- available_modules() returns really all available modules ...
till this release the bot just returned modules in PERL5LIB and
ignored modules in ./modules and ./
- Store: DBI, DBM::Deep and DBD::SQLite are no langer hard
requirements of this module. Bot::BasicBot::Pluggable now tries
to load all storage types in a predefined order until one returns
successfully. Normally you should just select one explicitly.
- Base.pm: Removed Base.pm from the list of available modules und
depracate its usage
- Try::Tiny: Error handling is now performed by try::tiny instead
of writing all the eval boilerplate. Although it does lack some
convenience, i selected it as we'll get it through moose in any
case.
- ChanOp.pm: New core module to handle channel managment operations
like oping, deoping, kicking and flood control. Please take a
closer look at this module, it definitly needs some testing!
0.83 2009/11/08
- added four missing dispatch events from Bot::Basicbot: nick_change,
kicked, topic and userquit. All four can now be handled by modules.
- converted some evaled expressions to code blocks
- documented a problem with hash signs in yaml configuration files
0.82 2009/08/31
- Failing tests on cpantesters as two tests are creating intermediate
files.
I'm just using the memory backend again.
0.81 2009/08/30
- redfined logic of --store option
Although i added a store option in the last version of the
command line bot, it wasn't really helpful as you just could
load storage backend without any options. The --store option
is now a hashref, with the only drawback that you have to
specify a storage type even if you just want load a backend
without any options.
- moved store_from_hashref from B::BB::P to B::BB::P::Store and
renamed it to new_from_hashref. This could possibly *break*
code, but i didn't expect it to. *hrhr*
0.80 2009/08/15
- new command line bot
big rewrite of the command line bot with the help of MooseX::Getopt
and MooseX::SimpleConfig. It should be possible to call a lot of
aspects of the pluggable infrastructure without writing perl code.
0.79 2009/07/12
- the need-more-sleep-release ... sorry, that's the last for today
- replied was never called ... now we put it back in front again
but shallow copy the message first
0.78 2009/07/12
- replied is now called after reply so that modules really can't change the message
0.77 2009/07/12
- added a new event 'replied' to give any module the chance to act on that
- Join:
- corrected missing command in help
- Seen:
- now also reckognize joins and parts
- Infobot:
- there's an user defineable http_timeout variabe that defaults to ten
seconds (fixes #3239)
- settable limit on how many RSS items to return
- just shorten entries when @entries is bigger than user_max_entries
- Vars:
- checking the definedness of $value so you can set a variable to 0 for example
0.76 2009/06/28
- the store paramter to B:BB:P->new() can now also be a string
- new config interface for modules
- search for keywords in Infobot.pm now returns the right number of factoids
- when deleting factoids return the right answer
- total rewrite of the join module (old database format will be converted on the fly)
- a lot of new tests
- new module Bot::BasicBot::Pluggable::Store::Memory (kind of)
- new module Test::Bot::BasicBot::Pluggable::Store
- testbot now intercepts the help call
0.74 2009/06/20
- added additional slash to fix #46928 (t/05infobot.t)
- added t/03store_storable.t
- closes #3258: instead of just overwriting the storable file it creates a tempfile and the move it
- Moved FakeBot to Test::Bot::BasicBot::Pluggable so that it's accessable for other Modules
- renamed infobot.t and title.t
- only create a new table if it doesn't exists yet in Store::DBI
0.72 2009/06/04
- Fixed absolute path in t/infobot.t ... stupid!
- Added me (Mario) to the author list
- Added the git repository to the meta resources
0.71 2009/06/01
- Add a test for unparsable rss feeds to Infobot
- Better error message for unparsable rss feeds in Infobot
- Added ignore_re option to Title (by osfameron)
- Adjusting documentation for Load to refer to the real behaviour
0.7 2009/03/10
- Missing t/FakeBot.pm added to MANIFEST
- Adjusted number of tests for Test::More
- Karma:
- Testsuide added
- Listing of explainations works again (settable by num_comments)
- New variable random_reasons
- Documentation updated
0.6 2009/03/04
It's been.. uh.. 4 years. There are tickets in RT that simply don't apply to
the current codebase. Personally, I never work on this module, use it for one
small thing that never changes, and have started to really dislike programming
in perl recently. Thus I'm just going to release trunk as-is. It's got a lot
of changes. Things might break. Sorry. I dislike other people doing this,
and I dislike _me_ doing this, but I see very few other options at this point.
I'm putting all the code in a github repository at
http://github.com/jerakeen/bot-basicbot-pluggable
if people want to actually track what goes on. Anyone want to take B::B::P
over?
--
This is the "Morbus release". Why the "Morbus release"?
Quite simply because he did everything you see below.
You can chastise him for his ego at http://disobey.com/.
- Revised documentation for Pluggable.pm and Module.pm.
- Auth: Revised documentation, switched to admin() not said().
- DNS: Revised documentation, switched to told() not said().
- Google:
- Revised documentation, switched to told() not said().
- Removed deprecated Net::Google ie() and oe() methods.
- Default language restriction set to just 'en'; removed 'fr'.
- Removed explicit starts_at of 0, which is the default.
- New option added: num_results (default: 3).
- New option added: languages (default: en).
- New option added: require_addressing (default: 1).
- Join: Revised documentation, switched to told() not said().
- Karma:
- Revised documentation, switched to told() and seen().
- Replaced fisher_yates with newer version from Perl 5.8.
- Fixed a bunch of little nigglies here and there.
- New option added: num_comments (default: 3).
- New option added: show_givers (default: 1).
- New option added: ignore_selfkarma (default: 1).
- If only "karma", we assume $mess->{who} now.
- Now understands "<botname>++" and "<botname>--";
- Loader: Revised documentation, switched to told() not said().
- Seen:
- Revised documentation, switched to seen() and told().
- Echoed $who is now what the user typed, not lc'd version.
- New option added: allow_hiding (default: 1).
- Title: Revised documentation, switched to admin() not said().
- Vars:
- Revised documentation, switched to told() not said().
- Removed the check for the existence of $value on a !set. This
check would fail whenever anyone tried to set the $value to 0,
which makes perfect sense when you're trying to turn off a boolean'd
feature. !unset doesn't work because that entirely deletes the
$variable, which means it'll be reset to the default the next
time the module is reloaded or the bot is restarted.
- Revised documentation for Store.pm and Store/* modules.
- Infobot:
- Revised all the documentation, added more examples.
- Removed the 'ask' option; it was never actually used.
- Renamed option 'passive_ask' to 'passive_answer'. More sense.
- Added a small but decent list of common stopwords.
- New option: num_results (for "search for <term>"; default 20).
- New option: require_question ("water?" or "water"; default 1).
- Entirely removed the "literal $object" feature.
- New option: min_length (minimum $object length; default 3).
- New option: max_length (maximum $object length; default 25).
- New option: unknown_responses (random list of "No clue." responses).
- You can now replace facts with "no, $bot, $object is..." too.
- $who in a factoid is now replaced by $mess->{who}.
- Stopwords were NOT being stopped on word boundaries. Fixed.
- "no, $bot, $object is also $fact" now works for appending.
- Added handling of "my" as in "my cat is named chloe".
0.50 2004/01/18
- Moved Bot::BasicBot::Pluggble::Module::Base to B::B::P::Module.pm,
and added Base.pm as an empty subclass, for neatness.
- Documented the object store methods better.
- Changed all core modules to use the proget get/set store methods.
- Loader now uses the standard store system.
- Installed shell script to run B::B::P.
- The Infobot module can now passively learn and passively answer questions
(without direct addressing) and you can set these options seperately.
- The storage system is decently abstracted out, and has a
default that does the same thing as the last one.
- Gave the bot a default charset of utf8, because I'm a fan of utf8.
- Utterly changed the Infobot back-end store system. Updating it will be
a pain, I'm sorry, but the last one really sucked. Re-wrote the Infobot
module to be _readable_, or at least slightly less nasty than before.
0.30
- Improved docs.
- Synced version number with Bot::BasicBot again.
- Added NINJA support.
- Moved to Module::Build-based module layout.
- Huge docs improvement, based on feedback from people who
clearly had no idea what I was smoking at the time.
- Decent examples in examples/, and web page copies for people who use CPAN.
- Removed Blog and Shout modules - Blog to be spun off
into a seperate module, Shout was just stupid.
- Support for loading modules from 'Modules' in cwd as well as main lib path.
- The bot is a lot less case-sensitive. Still sensitive for loading
modules, but all the help, etc commands are more friendly.
- Removed 'reply' method (now in Bot::BasicBot).
- Slight module API changes, nothing significant:
- Added a 'tick' callback that happens every 5 seconds.
- Added a 'reply' local method that mirrors the Bot::BasicBot reply.
- Added a 'say' method that calls the Bot::BasicBot say.
- Added a very simple 'tell' method for simple statements.
- Added an 'emoted' callback that works identically to 'said'.
- Added a 'chanjoin' callback, called when someone joins a channel.
- Added a 'chanpart' callback, called when someone leaves a channel.
- Module changes (other than doc improvements):
- Auth:
- Fixed silly bug that meant you didn't actually need to auth.
- Smarter about ignoring things that aren't admin commands.
- Now requires direct addressing.
- Blog: removed. Look for Bot::BasicBot::Pluggable::Module::Blog.
- Spell: Fixed a spelling mistake.
- Infobot: Fixed annoying parser bugs. Needs to re-write whole thing soon.
- Karma: Removed case-sensitivity in karma objects.
0.05 2003/06/09
- Better documentation.
- Vars changable through better interface.
0.04 2003/03/05
- Release coincides with Simon's release of Bot::Basicbot, version matched.
- Therefore the first release that actually Worked out the box.
0.011 2003/02/24
- oops.
0.01 2003/02/24
- original version; created by h2xs 1.22.
|