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
This is everything I worked on in the course of the project
We had help from Michael Albert with this PR which I helped review and optimize.
The new connector needed some tweaks and corrections as described in this issue.
Adding encryption support was the main objective of the GSoC project. Porting to matrix-nio was the first step in achieving this.
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.
The database opsdroid module was supposed to be a simple project but turned out to be much more challenging than expected.
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
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