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
urbandict
plugin now limits Urban Dictionary definitions to 300 charactersticker
plugin now includes a Yahoo! Finance link in.stock
responsesmovies
plugin now prioritizes exact title matches
Fixed
ticker
was switched to use Twelve Data instead of IEX, as IEX API keys are no longer freeweather
plugin 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
.help
command 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)
.tell
command toseen
plugin for messaging offline users.search
command for searching IMDb (returns multiple results which can be selected)
Changed
- Ability to change
ticker
plugin attempts to be more resilient to missing API data- Generic URL handling can now be disabled in the
urls
plugin (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
entrypoint
syntax in aplugin.py
file, removing need for asetup
function
Changed
- Urban Dictionary plugin now shows upvotes and downvotes
- "Natural language" syntax to Cardinal now requires a full command (
Cardinal: .ping
) and supports@regex
commands - Weather plugin now uses km/h abbreviation instead of kph
- Plugins can now use
entrypoint = PluginClass
instead of defining asetup()
function which is now deprecated (#186)
Deprecated
setup()
function in lieu of newentrypoint
module 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
ticker
plugin now allows predictions to be made in USD in addition to percentages
Fixed
ticker
plugin works again (AlphaVantage replaced with IEX Cloud)- Various bugs with certain results from the
wikipedia
plugin (#185)
Changed
google
plugin now allows configuring the number of results shown
3.1.0 (Saffron)
Added
util.is_action
andutil.parse_action
for 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.nickname
not getting updated and failures to log channel messages) .seen
did 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_invite
plugin - Full asynchronous plugin support
- Formatting API in the
cardinal.util
module - Asynchronous sleep method in the
cardinal.util
module - 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
,ident
andhost
to 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
.compare
command 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
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