Goals
The primary aim of the project was to port the opsdroid matrix connector from matrix-python-sdk to matrix-nio in order to add support for encryption. Besides these there were some side-goals as well. Heres the list of all the goals we set out with:
- Port the connector to matrix-nio
- Implement encryption support in the connector
- Create a new matrix database module for opsdroid based on the older module using matrix-nio
- Add support for unused matrix events
- Add homeserver lookup using
.well-known
API request - Add device verification for the opsdroid bot
Project
This is everything I worked on in the course of the project
Port to matrix-nio
We had help from Michael Albert with this PR which I helped review and optimize.
Tweaks to the New Connector
The new connector needed some tweaks and corrections as described in this issue.
Encryption Support for the Matrix Connector
Adding encryption support was the main objective of the GSoC project. Porting to matrix-nio was the first step in achieving this.
Optional Dependencies for Opsdroid
An unexpected side effect of introducing encryption support was the need for providing options to the user as to what modules to install due to difficulty in installing one of the dependencies.
Matrix Database Module
The database opsdroid module was supposed to be a simple project but turned out to be much more challenging than expected.
Extras
Along the way, some small problems arose which needed solving.
- Fix some modules not being removed properly when closing opsdroid
- Accept hyphens in Tox generative section names
- Temporarily pin black to older version
Leftovers
Some goals that could not be achieved.
- Add support for unused matrix events
- Add homeserver lookup using
.well-known
API request - Add device verification for the opsdroid bot