Translations, Jupyter Notebooks and Gists in v0.12
It has been 6 months since the last full release. So thank you for being patient and thank you to all the contributors who are only just about to see their work cut into a release.
Translations
We now have support for multiple languages in our opsdroid log messages. We have noticed people writing skills in languages other than english and wanted to give people the ability to debug the logs in their native language too. Right now we support Spanish, Catalan, Portugese and Norwegian and we would love to see people add more!
Jupyter Notebooks
Jupyter Notebooks are a great way to write interactive Python. They are popular in the data science community thanks to their ability to mix python code, output from that code and notes written in markdown.
We now support notebook files as single file style skills. You can write your skill in a notebook and then configure opsdroid to load it like you would any other local skill. All cell outputs and markdown will be converted into comments and the code cells will be joined together into a python script.
skills:
- name: myawesomeskill
path: /home/me/src/opsdroid-skills/myawesomeskill/myskill.ipynb
GitHub Gists
We also now support GitHub Gists as a remote skills provider. If you want to write a quick and easy skill you can now publish it as a GitHub Gist and then load it directly into your config using either the Gist URL or the Gist ID.
skills:
- name: myawesomeskill
gist: 6dd35e0f62d6b779d3d0d140f338d3e5
Skip Dependency Installation
When you install an opsdroid skill it will check for a requirements.txt
file and use pip
to install the contents of the file. This allows you to quickly add dependencies to your skill without having to create a full blown setup.py
file. However when you are developing and debugging you may not want the skill to install the dependencies every time.
Now you can specify a no-deps
option when configuring the skill to skip dependency installation.
skills:
- name: myawesomeskill
path: /home/me/src/opsdroid-skills/myawesomeskill/myskill.py
no-deps: true
Reactions
For chat clients which support emoji reactions like Slack you can now get your bot to react to messages instead of respond to them.
@match_regex(r'react to me')
async def react_example(opsdroid, config, message):
message.react('😀')
If the connector you are using doesn’t support reactions message.react()
will return False
.
Full Release Notes
Enhancements
Add github gist support for remote skill source(#577)
Add support for ipython notebooks as skills (#573)
Switch arg parsing to click and add version flag (#522)
Use gettext for translations (#433)
Translation to Spanish (#503)
Norwegian translation (#499)
Add portuguese translation (#463)
Pass extra kwargs to connector.respond() (#493)
Add no-dep flag (#466)
Add message reactions (#459)
Update logging messages to use gettext (#453)
raw_message kwarg addition to the Message class. (#445)
Bug fixes
Safe load ‘included’ yaml files (#589)
Only append if opsdroid exists and general tidying (#590)
Add empty requirements file as workaround to read the docs bug (#557)
Replace except pass with contextlib.suppress (#543)
Fix opsdroid failing if Rasa NLU is not available (#476)
Removes self.opsdroid.skills line that was breaking opsdroid (#474)
Fix aiohttp tests (#462)
Move magic strings to constants file (#380) (#439)
Move recastai and witai magic strings to const file
Increase lint maximums for classes (#448)
Breaking changes
Merge Slack and Websocket connectors to the core project (#530)
Use appdir library to move config/logs (#529)
Remove reload function (#461)
Documentation updates
Google style docstring added to configure_lang (#568)
Add vim tutorial to mkdocs (#556)
Add Google style docstrings to helper.py (#534)
Adding Gitter info in docs.extending (#528)
Update README badges (#506)
Update example configuration (#505)
Add parser configuration to documentation (#502)
Maintainer scripts (#495)
Update documentation for pyup-bot PRs (#485)
Remove bold text on PULL_REQUEST_TEMPLATE (#483)
Add asyncio docs and extend YouTube video text (#478)
Add long description, classifiers and update info in setup.py (#465)
Add documentation for maintainers (#454)
Removed Overview Page from Matchers section. (#451)
Add welcome message config option to the docs (#435) (#438)
Add CodeTriage badge to opsdroid/opsdroid (#436)
Added pypi version image to README (#428)
v0.12.1
Bug fixes
Fix deployment bug in Travis config
v0.12.2
Bug Fixes
Mock https requests in gist tests (#602)
Switch slack library from slacker-asyncio to aioslacker (#597)
Move database submodule into a folder (#612)
Minor package updates