Skip to content

Releases: hangoutsbot/hangoutsbot

Patch release

11 Sep 12:31
Compare
Choose a tag to compare

This release bumps the version of hangups in order to fix a breaking change to Hangouts, as well as pinning a maximum version of slackclient so we remain on a compatible version.

Patch release

22 Feb 22:04
059ff8c
Compare
Choose a tag to compare

⚠️ Python version requirement change: In order to keep in sync with the latest changes to hangups (the underlying Hangouts library), the new minimum supported version is Python 3.5.3 (up from 3.4.4).


Bug fixes

  • Docker entrypoint made executable (#869)
  • typo fix in telesync's location handling
  • proper closing of sessions in SlackRTM and telesync

Improvements

  • @ command preprocessor made case-insensitive
  • plugins can now define _finalise() as a coroutine for async unloading tasks
  • hangups is now pinned by version rather than via git

Dependency changes

  • aiohttp updated to the current major version (#960)

Version 3 exits beta

05 Dec 21:19
5d52ed5
Compare
Choose a tag to compare

This is the official release of version 3 of hangoutsbot. v3 has been available for a while under the v3.0 beta branch, now battle-tested and surpassing v2 in stability.

If you've been running the v3.0 branch, you need only switch back to master and pull; no major changes have occured. If you're on v2.x, it should be a relatively painless in-place upgrade: take a backup of your config and memory files, git pull to bring in the new version, restart your bot, and any config migrations should be applied at startup. Note that this means you can't roll back to 2.x after a startup on 3.0, unless you restore a backup of your config and memory files.

Overview of changes

  • Supporting the latest hangups version

    hangoutsbot depends on hangups, a Python library that handles the underlying connection to Hangouts. In v2, we used an old forked version with legacy data structures; in v3, we're now up-to-date with the latest version of hangups.

  • Chatbridge framework and sync improvements

    The chatbridge is an internal protocol that standardises bridges to external networks, like Slack or Telegram. With it brings common features like message formatting in Hangouts, linked identities, and bridged PM support for commands like /bot help.

  • Rewritten version of SlackRTM

    A new plugin _chatbridge.chatbridge_slackrtm has been added, which supersedes slackrtm. It's written from the ground up, is a lot slimmer than its predecessor, and supports some of Slack's more recent changes like file threads.

    Switching is just a case of replacing slackrtm with _chatbridge.chatbridge_slackrtm in your plugins list. Note that the config format has changed, and will be migrated at first startup. If you need to switch back, a copy of the old config block will be present under slackrtm [legacy backup] -- you'll need to replace the slackrtm block with its contents.

  • Controlling hangout history & link joins

    Two new plugins, linksharing and offtherecord, allow you to set and lock the join-by-link and message history settings in individual hangouts. Use /bot linksharing and /bot offtherecord respectively to cycle the current setting.

2.8.0 - please read upgrade guidance

24 Apr 20:09
Compare
Choose a tag to compare

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

2.7.11 release

13 Feb 18:24
Compare
Choose a tag to compare

It's here! #727 brings in patches, and new features!

Major updates:

  • Can use [botalias] in helper texts, will be replaced by the current bot's alias (#704)
  • mentions.py: Mentions directly link to the chat
  • pluginmanager.py: addplugin and removeplugin actually loads/unloads the plugin now, getplugins sorts the plugins alphabetically
  • telesync: Major updates, including ability to sync replies and G+ profiles. Refer to wiki
  • tldr.py: New command tldrecho to configure where the bot sends the tldr. Refer to wiki
  • restrictedadd.py Works for bots joining hangouts, can enable/disable strict_botkeeper_check per hangout or globally

Minor updates:

  • Added example for setting up a virtual environment #735
  • Patch for syncrooms not sending images from mobile #614
  • mentions.py now indicates if mention is coming from an @all trigger #734
  • Patch for memory leak when loading config.json
  • api.py now supports CORS #641
  • cleverbot.py fix for server requiring login
  • forecast.py updated to reflect using darksky.net instead of forecast.io
  • Minor bugfix in image_screenshot.py
  • slackrtm.py join message changed
  • spawn.py executes in lowercase
  • subscribe.py regex updated
  • xkcd.py plugin cleanup
  • Sinks bugfix
  • version bump

Minor release

28 Oct 05:08
Compare
Choose a tag to compare
  • Telesync: Fix errors in init.py (a1e22dc, fixes #583, see PR #561, #562)
  • Botaddnotify: Plugin to allow for tracking of where the bot is being added
  • Chance: Fixes critical bug - Unbounded diceroll command will crash the bot
  • Slackrtm: Minor bug fixes (See (this)[https://github.com//pull/599/commits/ce0255fa561372c29abd49b253cd01b593c87564])
  • Cleaned up sink code (#629)
  • Spawn: Add helper environments (#618)
  • NOTE: Initial commit included a license file change that recently came under discussion. I'm removing the license file from this commit until further instruction from the original author of this project.

MOAR PLUGINS!

01 Jul 14:21
Compare
Choose a tag to compare

Core Bot

  • Function name can optionally be specified when registering a command
  • Added centos6 example startup script
  • Version bump from 2.7.8 to 2.7.9

Plugins

  • Catfact - Can now request more than one fact
  • Cleverbot - Bug fixes
  • Mention - Prevent @ALL botwars
  • Slackrtm - Bug fixes
  • Subscribe - Bug fixes
  • Telesync - Update to support telepot 7.1
  • Gitlab sink - Bug fixes
  • NEW Foursquare plugin
  • NEW Spawn plugin - Spawn arbitrary commands
  • NEW Twitter plugin
  • NEW XKCD plugin

Telegram syncing, plugin manager and bugfixes

18 Apr 00:15
Compare
Choose a tag to compare
  • New plugin Telesync - You can now sync telegram messages to your hangouts!
  • New plugin pluginmanager - You can now easily manage plugins through the bot
  • Assorted bugfixes for other plugins

Bugfixes, cam_mail surveillance plugin, showme plugin, telegram bridge

28 Feb 16:48
Compare
Choose a tag to compare

Plugins

  • cam_mail_intercept - Surveillance system (See #385)
  • forecast - Improvements and bugfixes
  • slackrtm - bugfixes, compatibility update with SlackClient (See #516)
  • image_screenshot - bugfixes, doesn't have to write to hangoutsbot dir anymore (See #488 and #494)
  • image_linker_reddit - typo fix. (See #510)
  • showme new plugin to retrieve images accessible to the hangoutsbot server
  • webbridge_telegram Added basic proof of concept telegram webbridge

2.7.6 Weather and Airport plugins, config.json update, bugfixes

27 Jan 23:04
Compare
Choose a tag to compare

[WARNING]
Run pip3 install -r requirements.txt --upgrade to get translations working!

General:

  • Default config.json edited to only load some initial plugins. This allows us to scale a lot faster with adding new plugins, as they won't all be loaded on boot

New Plugins:

  • Added weather forecast.py
  • Added metar.py plugin

Others:

  • Updated image links to accept .jpeg files
  • Slack.py will respect OTR configuration
  • Small bugfixes to slackrtm.py
  • bugfixes to make simplytranslate work again (requirements.txt updated!)
  • Improved dice roll functions
  • Bugfixes for cleverbot.py
  • Added debian daemon script to examples files