Changelog
2.0.3 – 8/1/10
Changes
- New feature: Reload plugin allows for hot reloading of plugins during development
- New feature: Acl plugin can be used to restrict access to plugins and their methods based on user hostmask and op status
- New feature: Ideone plugin allows for safe execution of code in multiple languages
- New feature: TheFuckingWeather plugin integrates with a web service by the same name to provide an alternative to the Weather plugin
- New feature: Censor plugin integrates with a web service to censor or discard outgoing events based on objectionable content (issue #9)
- New feature: Remind plugin is a port from Phergie 1.x (issue #6)
- New feature: SpellCheck plugin is a port from Phergie 1.x (issue #16)
- New feature: UserInfo plugin is a port of the ServerInfo plugin from Phergie 1.x (issue #48)
- New feature: Weather plugin is a port from Phergie 1.x (issue #17)
- New feature: Tld plugin is a port from Phergie 1.x; now required by the Url plugin (issue #27)
- New feature: Encoding plugin handles decoding markup entities and character encoding conversions (issue #5); now required by the Url plugin
- New feature: Lart plugin is a port from Phergie 1.x (issue #47)
- New feature: Karma plugin is a port from Phergie 1.x (issue #20)
- New feature: Serve, Beer, Cocktail, Tea, and Caffeine plugins are derived from the Drink plugin from Phergie 1.x (issue #2)
- New feature: Cookie and Wine are new plugins inspired by the Drink plugin; both require the Serve plugin
- New feature: Youtube plugin supports “I’m Feeling Lucky”-style searches of YouTube and handles rendering YouTube URLs to provide video information for them
- New feature: Command plugin now supports aliasing commands using an associative array keyed by alias in the
command.aliasessetting - New feature: Google plugin now includes a define command that pulls from Google Dictionary and includes a
google.langsetting for specifying the language in which results should be returned for commands that support it - New feature: NickServ plugin now supports use of regular expressions in the identification trigger phrase
- New feature: Temperature plugin handles conversion between Celsius and Fahrenheit plus calculating the heat index; now required by the Weather and Google plugins
- New feature: Url plugin now detects URLs in both PRIVMSG and CTCP ACTION events
- New feaure: Response class for the Http plugin now has a
getCodeAsString()method - New feature: Streams driver,
Phergie_Connection, andSettings.php.disthave been modified to add support for encodings other than ISO-8859-1 - New feature: New core component methods:
Phergie_Event_Handler::removeEvent(),Phergie_Event_Request::setArgument(),Phergie_Plugin_Abstract::setName(),Phergie_Plugin_Handler::getPluginInfo() - New feature: More unit tests: TerryChay and SpellCheck plugins, plugin handler
- Change: Url plugin has been refactored to use the Http plugin
- Change:
Phergie_Plugin_Helper_Timewas mistakenly not included in 2.0.2, preventing installation of the Twitter plugin – it has been renamed toPhergie_Plugin_Timeand the Twitter plugin has been updated accordingly - Change: Help plugin now uses camelCase for annotations and automatically pulls data for them from class and method docblocks if it is not provided
- Change: Event processing has moved from
Phergie_BottoPhergie_Processclasses (commit) - Change: Streams driver has been updated to account for the possibility of write failure (issue #43)
- Change: Url plugin has been modified to not include the requesting user’s nick in its responses by default
- Change: Url plugin now supports setting the cache time-to-live in seconds using the configuration setting
url.expire - Change: Short-circuiting of event processing from preEvent has been removed; instead, use the
Phergie_Plugin_Iteratorinstance returned by$this->plugins->getIterator()from within a plugin - Bug fix: Runtime issue with the Google plugin was preventing its gmap command from working (issue #49)
- Bug fix: Google plugin was updated to account for markup changes related to its convert command
- Bug fix: Some single-parameter commands like QUIT were having their parameter values truncated in the Streams driver
- Bug fix: Help plugin was truncating annotation values spanning multiple lines
- Bug fix:
Phergie_Autoloadwas not working properly with the unit test suite in some cases - Bug fix: Plugin handler was not injecting dependencies for added concrete plugin instances
- Bug fix: Php plugin was not returning results (issue #41)
- Bug fix: AudioScrobbler plugin was returning blank results (issue #44)
- Bug fix: Url plugin no longer attempts to download the contents of non-HTML files
- Bug fix: Http plugin error handler is now public to allow PHP to use it
- Bug fix: Streams driver now correctly populates the source for CTCP events
- Bug fix: Url plugin now handles decoding more markup entities using the Encoding plugin (issue #50)
- Bug fix: Url plugin now converts vertical spacing in HTML document titles to horizontal spacing for display purposes
- Bug fix: Streams driver now correctly populates the event hostmask for servers not using a command prefix
- Bug fix: preDispatch and postDispatch hooks are now executed even if no events were queued
Affected Packages
- Phergie
- Phergie_Docs
- Phergie_Plugin_AudioScrobbler
- Phergie_Plugin_Beer
- Phergie_Plugin_Caffeine
- Phergie_Plugin_Censor
- Phergie_Plugin_Cocktail
- Phergie_Plugin_Command
- Phergie_Plugin_Cookie
- Phergie_Plugin_Encoding
- Phergie_Plugin_Google
- Phergie_Plugin_Help
- Phergie_Plugin_Http
- Phergie_Plugin_Ideone
- Phergie_Plugin_Karma
- Phergie_Plugin_Lart
- Phergie_Plugin_NickServ
- Phergie_Plugin_Php
- Phergie_Plugin_Reload
- Phergie_Plugin_Remind
- Phergie_Plugin_Serve
- Phergie_Plugin_SpellCheck
- Phergie_Plugin_Tea
- Phergie_Plugin_Temperature
- Phergie_Plugin_TheFuckingWeather
- Phergie_Plugin_Time
- Phergie_Plugin_Tld
- Phergie_Plugin_Url
- Phergie_Plugin_UserInfo
- Phergie_Plugin_Weather
- Phergie_Plugin_Wine
- Phergie_Plugin_Youtube
2.0.2 – 5/3/10
Release Statement
The most noteworthy change in this release is how PING events are processed. Previously, they were processed once per call of the method in Phergie_Bot for handling events. Now, they are processed on a per-connection basis as they should be. This change affected very few core plugins, but they have been modified to account for this change.
Another noteworthy point regarding this release is that it is the first release to sport unit tests, thanks largely to the efforts of Evan Fribourg and Ryan Mauger.
Changes
- New feature: The AudioScrobbler plugin has been ported over from Phergie 1.x
- New feature: A new Http service plugin has been created for plugins requiring a simple HTTP client
- New feature: A new Cache service plugin has been created for general time-based data caching
- New feature: A new Help service plugin has been created to allow plugins to register information about themselves with a central help system using code to parse annotations borrowed from PHPUnit with attribution
- New feature: Plugins can now short-circuit further processing of an event in the
preEventevent handler by returningfalse - Bug fix: The streams driver now populates server-initiated events with hostmasks
- Bug fix: Configuration and event handler objects are now available to the
onLoadevent handler - Bug fix:
Phergie_Plugin_Commandnow uses thegetConfig()accessor method rather than attempting to access the$configproperty directly, which can result in an error in some cases - Bug fix:
Phergie_Plugin_Helper_Timeis now included as a dependency ofPhergie_Plugin_Twitter - Bug fix: A typo in
Phergie_Plugin_Handler::getPlugin()prevented it from returning plugins correctly in some cases - Bug fix: The
onLoadevent handler is now called for plugins loaded automatically as dependencies byPhergie_Plugin_Handler - Bug fix:
Phergie_Plugin_Handlernow usesinclude_onceinstead ofincludeto load plugin classes, mainly to support use of multiple instances of it during testing - Bug fix:
PINGevents are now processed for each connection rather than once per call to the event-handling method inPhergie_Bot;Phergie_Plugin_Prioritizehas been updated to account for this
Affected Packages
- Phergie
- Phergie_Docs
- Phergie_Plugin_AudioScrobbler
- Phergie_Plugin_Cache
- Phergie_Plugin_Command
- Phergie_Plugin_Help
- Phergie_Plugin_Http
- Phergie_Plugin_Prioritize
2.0.1 – 3/6/10
Release Statement
An unfortunate defect was discovered in the core that prompted BC-breaking changes in this release. Methods in the driver classes for sending CTCP event responses and the event processing logic used by the bot class were found to be incompatible, causing the bot to crash if any plugins attempted to send any of these responses. To address this, the offending response methods doVersionResponse, doTimeResponse, and doFingerResponse have been consolidated into their request counterparts. Removing the Response segment from calls to these methods in custom plugins should account for the changes, which are illuminated in this commit. The Ctcp plugin was the only affected core plugin.
Changes
- New feature: The Streams driver now includes SSL support – see the sample configuration file for an example
- New feature: A custom driver can now be enabled via the
driverconfiguration setting (issue #30) - New feature: The AutoJoin plugin now supports different channels per server in the
autojoin.channels setting - Bug fix: The Streams driver no longer blocks indefinitely, allowing the onTick event to function properly
- Bug fix: The Ping plugin now includes sane defaults for configuration settings
- Bug fix: phergie.php now emits a message if
register_argc_argvis disabled - Bug fix:
Phergie_Event_Requestnow supports theINVITEevent type - Bug fix: Include path mishandling causes namespace conflicts with third party components (issue #28)
- Bug fix: phergie.php attempts to include itself as a configuration file in manual installations (issue #29)
- Bug fix: Typo in a variable name in
Phergie_Driver_Streams::doFinger()(issue #31) - Bug fix: Default configuration file not loaded for manual installations (issue #32)
- Bug fix: Missing
VERSIONconstant inPhergie_Bot(issue #33)
Affected Packages
- Phergie
- Phergie_Docs
- Phergie_Plugin_AutoJoin
- Phergie_Plugin_Ctcp
- Phergie_Plugin_Ping
2.0.0 – 2/1/10
- Initial release.
