- Dropped support for Python 2.
- popquotes and excuses are removed from the package. Include them explicitly in your deployment to maintain compatibility.
- paste command now allows for auth to be provided.
- saysomething no longer requires 30 seconds to startup, but will time out waiting for the quotes and logging to startup after 30 seconds.
pmxbot.core.AliasHandler now expects a 'parent' argument referring to the parent command. The doc parameter is no longer honored, but instead refers to parent.doc. Commands that construct AliasHandlers explicitly will need to be updated, though no known implementations do so.
commands will now defer to the decorated function's docstring for the command help if no doc is supplied. So now the following are equivalent:
@command('something', doc='do something special') def func(...): return 'something' @command('foo') def func(...): """ do something special """ return 'something'
- Use wordnik-py3 on Python 3
- Fix issue in new MongoDBFullTextLogger where docs weren't processed.
- Fix issue in log search on Python 3.
- Added MongoDBFullTextLogger, leveraging MongoDB Full Text Search on MongoDB 2.4 or later (if enabled).
- Removed !googlecalc, which depended on iGoogle, now defunct.
- Restored !urbandict using the API instead of HTML scraping.
- Include channel in hyperlink for logs for logged channels.
- Added support for logging leave events as well as join events.
- Added a new @on_leave decorator, suitable for implementing custom handlers for leave events.
- pmxbot command now optionally accepts multiple config files.
- Added support for keepalives. To enable, set the 'TCP keepalive' config value to a non-zero number of seconds or a period string like '3 minutes'. If configured correctly, pmxbot will report during startup the interval that it detected, and every interval, it will send a 'ping' message to the server.
- Issue #27: Fix display of aliases in web help.
- Added a version command to get the pmxbot version or version of other package in the environment.
- Allow keyword arguments to @regexp decorator.
- Added pmxbot.core.FinalRegistry for registering callback functions to be called when the bot exits.
- Extracted RSSFeeds.format_entry.
- Added pmxbot.core.SwitchChannel. Handlers can yield this sentinel, constructed with the name of a new channel, to cause subsequest messages to be sent on the indicated channel.
- Removed db_uri from LoggingCommandBot (attribute and constructor). Clients that invoke the constructor or expect the attribute to be present will need to be updated to use the value from the config instead.
- Refactored FeedHistory, allowing for other classes to re-use the history concept in other RSS handlers.
- Exposed the bot instance as pmxbot.core._bot (experimental).
- New @regexp decorator. Similar to @contains, except allows regular expressions instead of simple string matching. See the README for an example of usage. Thanks to Craig Wright for the contribution.
- pmxbot will assume local host name is appropriate for logs URL if no logs URL is specified in the config.
- One may now specify the database name in the URI.
- pmxbot will log the config when starting up.
- Updated to work with irc 5.0
- @contains decorator has a new keyword parameter: allow_chain. Set to True to allow subsequent @contains decorators to match.
- Issue #18: Strip periods from acronym, fixing errors from remote service.
- Now use irc 3.3.
- Python 3 bug fixes.
- Updated to irc 3.1.
- Replaced cleanhtml with BeautifulSoup.
- Preliminary Python 3 support (compiles and runs).
- Initial support for logging joins/parts in logged channels.
- Added !logs command to query for the location of the logs.
- Moved config to 'pmxbot.config'.
- Config parameter no longer required.
This release incorporates another substantial refactor. The pmxbotweb package is being removed in favor of the namespaced-package pmxbot.web.
Additionally, config entries for the pmxbotweb command have been renamed:
- `web_host` is now simply `host` - `web_port` is now simply `port`
A backward-compatibility shim has been added to support the old config values until version 1104.
The backward compatibile module pmxbot.botbase has been removed.
Build 1102 of pmxbot involves some major refactoring to normalize the codebase and improve stability.
With version 1102, much of the backward compatibility around quotes and karma has been removed:
- The Karma store must now be referenced as `pmxbot.karma:Karma.store` (a class attribute). It is no longer available as `pmxbot.pmxbot:karma` nor `pmxbot.util:karma` nor `pmxbot.karma.karma`. - Similarly, the Quotes store must now be referenced as `pmxbot.quotes:Quotes.store` (a class attribute). - Similarly, the Logger store must now be referenced as `pmxbot.logging:Logger.store` instead of `pmxbot.botbase.logger`.
Other backward-incompatible changes:
- The `config` object has been moved into the parent `pmxbot` package. - A sqlite db URI must always specify the full path to the database file; pmxbot will no longer accept just the directory name.
- Renamed `pmxbot.botbase` to `pmxbot.core`. A backward-compatibility `botbase` module is temporarily available to provide access to the public `command`, `execdelay`, and similar decorators.