12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- from __future__ import annotations
-
- from typing import Any, List, Set
- from pydantic import BaseModel
-
- from million.model.message import Message
- from million.model.participant import Participant
-
- class Image(BaseModel):
- creation_timestamp: int
- uri: str
-
- def __eq__(self, other: Image) -> bool:
- return self.creation_timestamp == other.creation_timestamp \
- and self.uri == other.uri
-
- class JoinableMode(BaseModel):
- mode: int
- link: str
-
- class FacebookExport(BaseModel):
- messages: List[Message]
- participants: Set[Participant]
- title: str
- is_still_participant: bool
- thread_path: str
- magic_words: Set[Any]
- image: Image
- joinable_mode: JoinableMode
-
- def merge(self, other: FacebookExport) -> None:
- if self == other:
- self.messages.extend(other.messages)
- self.participants.update(other.participants)
- self.magic_words.update(other.magic_words)
-
- def sort(self) -> None:
- self.messages.sort(key = lambda m: m.timestamp_ms)
-
- # NOTE Toughen equality conditions ?
- def __eq__(self, other: FacebookExport) -> bool:
- return self.title == other.title \
- and self.image == other.image
|