Add device_id to client db

This commit is contained in:
Tulir Asokan 2020-07-11 16:22:27 +03:00
parent 9578883bbb
commit 09108f6a73
6 changed files with 47 additions and 10 deletions

View file

@ -60,7 +60,7 @@ class Client:
self.remote_avatar_url = None
self.client = MaubotMatrixClient(mxid=self.id, base_url=self.homeserver,
token=self.access_token, client_session=self.http_client,
log=self.log, loop=self.loop,
log=self.log, loop=self.loop, device_id=self.device_id,
store=ClientStoreProxy(self.db_instance))
self.client.ignore_initial_sync = True
self.client.ignore_first_sync = True
@ -273,6 +273,10 @@ class Client:
def access_token(self) -> str:
return self.db_instance.access_token
@property
def device_id(self) -> str:
return self.db_instance.device_id
@property
def enabled(self) -> bool:
return self.db_instance.enabled

View file

@ -21,7 +21,7 @@ from sqlalchemy import Column, String, Boolean, ForeignKey, Text
from sqlalchemy.engine.base import Engine
import sqlalchemy as sql
from mautrix.types import UserID, FilterID, SyncToken, ContentURI
from mautrix.types import UserID, FilterID, DeviceID, SyncToken, ContentURI
from mautrix.util.db import Base
from .config import Config
@ -53,6 +53,7 @@ class DBClient(Base):
id: UserID = Column(String(255), primary_key=True)
homeserver: str = Column(String(255), nullable=False)
access_token: str = Column(Text, nullable=False)
device_id: DeviceID = Column(String(255), nullable=True)
enabled: bool = Column(Boolean, nullable=False, default=False)
next_batch: SyncToken = Column(String(255), nullable=False, default="")

View file

@ -21,10 +21,8 @@ class ClientStoreProxy(ClientStore):
def __init__(self, db_instance) -> None:
self.db_instance = db_instance
@property
def next_batch(self) -> SyncToken:
return self.db_instance.next_batch
async def put_next_batch(self, next_batch: SyncToken) -> None:
self.db_instance.edit(next_batch=next_batch)
@next_batch.setter
def next_batch(self, value: SyncToken) -> None:
self.db_instance.edit(next_batch=value)
async def get_next_batch(self) -> SyncToken:
return self.db_instance.next_batch