Skip to content

2.8.0 - please read upgrade guidance

Compare
Choose a tag to compare
@nylonee nylonee released this 24 Apr 20:09
· 437 commits to master since this release

special note: this release was incorrectly tagged as v2.8.0 (with the v) - an identical commit tagged 2.8.0 has been added - the release notes here are applicable to both tags.


This is the last version that works with our local forked version of hangups - the next major release (3.0) will only be compatible with the latest official hangups library.

Further info and detailed change logs can be found in #776.

Upgrade guidance

  • cleverbot: requires an api key (docs updated)
  • autoreply, image_memegenerator, image_links, image_screenshot, image_linker_reddit: if you are using an explicitly defined plugins key in config.json, please add the image plugin
    • this version may leave an empty folder image_linker_reddit in the plugins dir, containing another empty __pycache subfolder - you may safely remove this

Known bugs/issues

  • telesync:
    • image syncs may be broken
    • incomplete html markup may break message sending (possibly re: #788)
    • some actions may require bot/plugin restart: supergroup upgrade, add/remove admins (re: #802)
  • slackrtm usage of memory.json is semi-broken (long-term issue, re: #797)
  • interaction issues in multi-relay chats using telesync, slackrtm, syncrooms, slack and telegram e.g. messages duplication, failed to sync, infinite messaging loops, messages not relayed, etc

general changelog

  • framework upgrades
    • enhanced /bot help
      • markdown support for command/sub-command help in docstrings
      • general help also shows all bot aliases below 9 characters in length
    • config auto_alias_one_to_one turns off botalias requirement in direct bot chats (default: false)
    • hidden plugin visibility when using manual plugins configuration key
    • pluginmanager commands now part of plugin control commands; outputs actions taken when run
    • updated installation guide
    • docker example
    • per-conversation opt-out
      • optional parameter <convid|partial conv title> matching a single group conversation
      • converts user global opt-out flag into list of per-conversations opt-outs: listed conversations won't receive alerts from participating plugins
        • dev note: 1-to-1 becomes invisible to the initiating conversation
      • toggle per-conversation opt-outs by calling /bot optout <convid|partial conv title> again
      • behaviour of parameterless /bot optout is unchanged until user successfully adds first per-conversation opt-out; to quick-convert per-conversation opt-outs back to a global opt-out, use /bot optout all
    • change tagging return behaviour with tag tagging-merge - instead of exclusively using the highest-specificity conv/user tag, merge the entire chain from most-specific (e.g <convid>|<chatid>) to least specific (global conv/user wildcard *)
  • new plugin
    • image: implements shared functionality via bot.call_shared(): image_validate_link, image_upload_single, image_upload_raw, image_validate_and_upload_single (docs
  • plugin enhancements
    • autoreply
      • override default behaviour of per-conv autoreplies completely overriding global autoreplies and merge them instead with any of the following methods:
        • /bot tagset conv <conv_id> autoreplies-merge
        • /bot tagset conv * autoreplies-merge + /bot tagset conv * tagging-merge (optional, merges all tag from per-conversation to wildcards to global)
        • config key "autoreplies.merge": true to switch on global merging
      • shared functionality with tldr plugin: insert {tldr} into a response to inject the target conversation's TLDR text into autoreply response
    • botalive: "fuzzy" watermarking, runs only when conversation active
    • default: by default config outputs to one-to-one
    • image_linker_reddit: improved gfycat support, latest trigger words
    • image_memegenerator: integration with public api
    • mentions: support per-conversation opt-out
    • restrictedadd: strict botkeeper checks can be disabled with /bot tagset conv <convid> restrictedadd-whitelist - this tag overrides global strict_botkeeper_check
    • spawn: location links can be injected as environment variable
    • subscribe
      • support per-conversation opt-out
      • add admin command /bot testsubscribe <keyword> to trigger your own subscriptions
  • internal fixes for plugins: botaddnotif, cleverbot, forwarding, restrictedadd, slackrtm, syncrooms, subscribe, tldr
  • plugin folder migration
    • unittest - all _unittest_*.py moved to _unittest/unittest_*.py
    • example - all _example_*.py moved to _example/example_*.py
    • image - all image_*.py moved to image/image_*.py
  • localisation updated to latest, based on the hangoutsbot translation project
  • version bump to 2.8.0