Releases: hangoutsbot/hangoutsbot
Patch release
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
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
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 supersedesslackrtm
. 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 underslackrtm [legacy backup]
-- you'll need to replace theslackrtm
block with its contents. -
Controlling hangout history & link joins
Two new plugins,
linksharing
andofftherecord
, 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
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 theimage
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
- this version may leave an empty folder
Known bugs/issues
telesync
:slackrtm
usage of memory.json is semi-broken (long-term issue, re: #797)- interaction issues in multi-relay chats using
telesync
,slackrtm
,syncrooms
,slack
andtelegram
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
- optional parameter
- 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*
)
- enhanced
- 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
- image: implements shared functionality via
- 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
- override default behaviour of per-conv autoreplies completely overriding global autoreplies and merge them instead with any of the following methods:
- 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 globalstrict_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
- autoreply
- 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 toimage/image_*.py
- unittest - all
- localisation updated to latest, based on the hangoutsbot translation project
- version bump to 2.8.0
2.7.11 release
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 chatpluginmanager.py
: addplugin and removeplugin actually loads/unloads the plugin now, getplugins sorts the plugins alphabeticallytelesync
: Major updates, including ability to sync replies and G+ profiles. Refer to wikitldr.py
: New commandtldrecho
to configure where the bot sends the tldr. Refer to wikirestrictedadd.py
Works for bots joining hangouts, can enable/disablestrict_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 #641cleverbot.py
fix for server requiring loginforecast.py
updated to reflect using darksky.net instead of forecast.io- Minor bugfix in
image_screenshot.py
slackrtm.py
join message changedspawn.py
executes in lowercasesubscribe.py
regex updatedxkcd.py
plugin cleanup- Sinks bugfix
- version bump
Minor release
- 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!
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
- 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
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
[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