The objective of this package is to provide a framework for writing bridging appservices for matrix. These bridges can be double puppet or single puppet or a combination of both.
The objective of this framework is that the framework handles maintaining state and the matrix operations and provides an easy to use API to developers to implement the service specific components.
This framework is written using the asyncio module and the co-routine syntax which was introduced in Python 3.5. It uses aiohttp for making HTTP requests and for the web server component. It uses SQLAlchemy to have a database of users and rooms that the bridge is configured for.
- Auth with bot
- Ask for invite to room
Assume everything is public (like IRC bridge but unknown rooms on service side):
- Invite bot user to service room
- Link to matrix room posted in service room.
- Join matrix room.
Keeping rooms invite only on matrix side.
- Invite bot to matrix room
- Invite bot to service room
- Some token printed in the service room
- Issue command in the matrix room with the token.
- Auth with bot
- Ask for invite to room
- Auth'ed user gets admin in room
- Non-authed matrix users are puppeted by service bot user.