Skip to content

Releases: johnmaguire/Cardinal

3.4.0 (Burgundy)

14 Feb 05:44
Compare
Choose a tag to compare

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 characters
  • ticker plugin now includes a Yahoo! Finance link in .stock responses
  • movies plugin now prioritizes exact title matches

Fixed

  • ticker was switched to use Twelve Data instead of IEX, as IEX API keys are no longer free
  • weather plugin now correctly calculates Celcius temperatures
  • Various bugs around channel mode tracking (currently only used for detecting if colors are disallowed)

3.3.2

24 Feb 16:56
Compare
Choose a tag to compare

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

01 Aug 04:56
Compare
Choose a tag to compare

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)

14 Feb 05:07
Compare
Choose a tag to compare

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

  • .setw hint added to .weather when missing a location
  • ticker plugin output changed a little, and company names are now included
  • Music icons now included next to YT music video titles -- thanks @dkim286! (#190)

3.2.1

18 Apr 22:30
Compare
Choose a tag to compare

Added

  • Twitter URL handling plugin
  • imgur URL handling plugin
  • random plugin (dice rolling)
  • .tell command to seen 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)

11 Feb 00:26
Compare
Choose a tag to compare

Added

  • Added Wolfram Alpha plugin
  • Added movies (OMDb/IMDb) and TV (TVmaze) plugins
  • entrypoint syntax in a plugin.py file, removing need for a setup 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 a setup() function which is now deprecated (#186)

Deprecated

  • setup() function in lieu of new entrypoint 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

30 Jan 20:23
Compare
Choose a tag to compare

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)

14 Jan 01:59
Compare
Choose a tag to compare

Added

  • util.is_action and util.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

  • Error replies from the server are now logged as warnings (#183)
  • mIRC formatting removed in .seen command to fix issues with +c channel modes (#182)
  • sed plugin no longer sends corrections if the pattern does not apply (#181)
  • .info response updated, including removal of plugin reload counter

3.0.0 (Carmine)

13 Dec 06:44
Compare
Choose a tag to compare

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 and host 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)

27 Aug 17:45
Compare
Choose a tag to compare

Security

  • Update Twisted to a version without CVEs

Added

  • realname and username configuration 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