Fix filtered_members models updates

This commit is contained in:
miruka 2020-10-30 01:21:18 -04:00
parent 055b68126a
commit b38fbc6d9b
2 changed files with 9 additions and 6 deletions

View File

@ -1,6 +1,7 @@
# Copyright Mirage authors & contributors <https://github.com/mirukana/mirage>
# SPDX-License-Identifier: LGPL-3.0-or-later
from copy import copy
from typing import TYPE_CHECKING, Any, Dict, Optional
from . import SyncId
@ -40,7 +41,7 @@ class ModelProxy(Model):
they should be converted to a same `ModelItem`
subclass by overriding this function.
"""
return item
return copy(item)
def source_item_set(

View File

@ -11,9 +11,13 @@ if TYPE_CHECKING:
from .models.items import Account, Member
ORDER: Dict[str, int] = {
"online": 0,
"unavailable": 1,
"offline": 2,
"online": 0,
"echo_online": 1,
"unavailable": 2,
"echo_unavailable": 3,
"invisible": 4,
"echo_invisible": 5,
"offline": 6,
}
@ -50,7 +54,6 @@ class Presence:
cleared when client stops (`MatrixClient._start()`).
"""
class State(AutoStrEnum):
offline = auto() # can mean offline, invisible or unknwon
unavailable = auto()
@ -64,7 +67,6 @@ class Presence:
def __lt__(self, other: "Presence.State") -> bool:
return ORDER[self.value] < ORDER[other.value]
presence: State = State.offline
currently_active: bool = False
last_active_at: datetime = datetime.fromtimestamp(0)