__init__.py 759 B

123456789101112131415161718192021222324
  1. from mautrix.util.async_db import Database
  2. import sqlite3
  3. import uuid
  4. from .upgrade import upgrade_table
  5. from .disappearing_message import DisappearingMessage
  6. from .user import User
  7. from .puppet import Puppet
  8. from .portal import Portal
  9. from .message import Message
  10. from .reaction import Reaction
  11. def init(db: Database) -> None:
  12. for table in (User, Puppet, Portal, Message, Reaction, DisappearingMessage):
  13. table.db = db
  14. # TODO should this be in mautrix-python?
  15. sqlite3.register_adapter(uuid.UUID, lambda u: str(u))
  16. sqlite3.register_converter("UUID", lambda b: uuid.UUID(b.decode("utf-8") if isinstance(b, bytes) else b))
  17. __all__ = ["upgrade_table", "init", "User", "Puppet", "Portal", "Message", "Reaction",
  18. "DisappearingMessage"]