Releases: johnmaguire/Cardinal
Releases · johnmaguire/Cardinal
3.4.0 (Burgundy)
Added
- Support for censored words (e.g. to avoid sending banned words to a server)
Changed
urbandictplugin now limits Urban Dictionary definitions to 300 characterstickerplugin now includes a Yahoo! Finance link in.stockresponsesmoviesplugin now prioritizes exact title matches
Fixed
tickerwas switched to use Twelve Data instead of IEX, as IEX API keys are no longer freeweatherplugin now correctly calculates Celcius temperatures- Various bugs around channel mode tracking (currently only used for detecting if colors are disallowed)
3.3.2
Fixed
- Mobile Twitter link detection
- Provide a more descriptive error when searching by ID (movies plugin)
- Updated dependencies (of which Twisted had a CVE that did not affect Cardinal) out of an abundance of caution
Changed
- Up to 6 stocks are allowed in ticker plugin config
- Market cap rank is included in crypto lookups
- Bump default Wikipedia snippet length to 250 characters
3.3.1
Fixed
- Multiple versions of a plugin could run simultaneously if Cardinal experienced a disconnection (#195)
- ticker plugin no longer triggers on holidays -- thanks @ForeverEndeavor! (#194)
- github plugin correctly recognizes pull request URLs
- dice plugin had no limits which could result in memory exhaustion
3.3.0 (Chili)
Added
- Cryptocurrency plugin (
.crypto) for fetching cryptocurrency prices - Last.fm now playing (
.np) now opportunistically looks up a YouTube music video - Initial support for channel tracking, as well as stripping formatting characters from channels which ban them
Fixed
.helpcommand was not returning output- Some Wikpiedia pages did not return summaries (#187)
- Case sensitivity bug in seen plugin
- Weather plugin broken with Yahoo API deprecation -- thanks @obviyus! (#192)
Changed
3.2.1
Added
- Twitter URL handling plugin
- imgur URL handling plugin
- random plugin (dice rolling)
.tellcommand toseenplugin for messaging offline users.searchcommand for searching IMDb (returns multiple results which can be selected)
Changed
- Ability to change
tickerplugin attempts to be more resilient to missing API data- Generic URL handling can now be disabled in the
urlsplugin (it will only rely on other plugins to handle URLs)
3.2.0 (Vermilion)
Added
- Added Wolfram Alpha plugin
- Added movies (OMDb/IMDb) and TV (TVmaze) plugins
entrypointsyntax in aplugin.pyfile, removing need for asetupfunction
Changed
- Urban Dictionary plugin now shows upvotes and downvotes
- "Natural language" syntax to Cardinal now requires a full command (
Cardinal: .ping) and supports@regexcommands - Weather plugin now uses km/h abbreviation instead of kph
- Plugins can now use
entrypoint = PluginClassinstead of defining asetup()function which is now deprecated (#186)
Deprecated
setup()function in lieu of newentrypointmodule attribute - this will be removed in 4.0 (#186)
Fixed
- Plugins which raised an Exception from their constructor were not able to be reloaded
- Urban Dictionary, Github, Youtube, and Last.fm plugins now thread their HTTP calls to improve performance
- sed plugin now handles empty replacement patterns (e.g.
s/foobar//) - Wikipedia plugin now handles various edge cases, such as disambiguation pages, better (#185)
- Edge cases around event callback registration, particularly when wrapped in
@defer.inlineCallbacks
3.1.1
Added
tickerplugin now allows predictions to be made in USD in addition to percentages
Fixed
tickerplugin works again (AlphaVantage replaced with IEX Cloud)- Various bugs with certain results from the
wikipediaplugin (#185)
Changed
googleplugin now allows configuring the number of results shown
3.1.0 (Saffron)
Added
util.is_actionandutil.parse_actionfor determining if a message is a /me message
Fixed
- Quits without messages were not logged correctly
- Handling of /me messages in sed (#180)
- Handling of /me messages in seen (#184)
- Cardinal configuration was not loaded correctly, causing failures to connect
- Issues with internal handling (e.g.
self.nicknamenot getting updated and failures to log channel messages) .seendid not work if nick case did not match
Changed
3.0.0 (Carmine)
Added
- 8ball plugin (#138) -- thanks @target111!
- seen plugin (#170) -- thanks @jsmailes!
- sed plugin to correct previously sent message
- ticker plugin which periodically sends stock information
- Ability to issue commands to server on connection (#120)
- Ability to save a weather location in weather plugin (
.setw <location>) - Ability to automatically rejoin channels Cardinal is kicked from to the
join_on_inviteplugin - Full asynchronous plugin support
- Formatting API in the
cardinal.utilmodule - Asynchronous sleep method in the
cardinal.utilmodule - Lightweight JSON database API for plugins
- Channel blacklist for plugins in the Cardinal config file
- Setting of botmode (
+B) when joining compatible IRC servers
Changed
- Switched Cardinal from Python 2 to Python 3
- Admin configuration now allows for any combination of
nick,identandhostto identify admins - Made remind plugin asynchronous instead of thread-based
- Made URLs plugin asynchronous by deferring HTTP requests to a thread
- Docker container name now defaults to
cardinal
Removed
- Ability to specify configuration from the command line
- Ability to specify Cardinal configuration in YAML instead of JSON
- Ability to specify plugin configuration in YAML instead of JSON
- Broken calculator plugin
- Broken
.comparecommand in Last.fm plugin - notes plugin due to lack of interest and use
Fixed
- Google plugin did not work
- Event registration occurred only on initial load of plugins, not reloads
- Various other minor fixes
Security
- Updated Twisted away from a version with CVEs out of an abundance of caution
2.3.0 (Lipstick)
Security
- Update Twisted to a version without CVEs
Added
realnameandusernameconfiguration options (#108) -- thanks @Katorone!
Fixed
- YouTube plugin credentials fixed (accidental rotation, sorry!) (#45)
- Docker container will now restart unless it was manually stopped (e.g. on server reboot)
- Various erroneous class members have been converted to instance members