expose iter_all_messages, reference Thread from Message

This commit is contained in:
Dima Gerasimov 2019-12-07 18:42:00 +00:00
parent 5d25f92f29
commit 97f5fb2f36

View file

@ -1,7 +1,7 @@
from pathlib import Path from pathlib import Path
from shutil import rmtree from shutil import rmtree
from tempfile import TemporaryDirectory from tempfile import TemporaryDirectory
from typing import Union from typing import Iterator, Union
import my_configuration.repos.fbmessengerexport.model as messenger import my_configuration.repos.fbmessengerexport.model as messenger
from my_configuration import paths from my_configuration import paths
@ -19,15 +19,26 @@ def _dump_helper(model: messenger.Model, tdir: Path) -> None:
print(msg, file=fo) print(msg, file=fo)
def dump_chat_history(path: Union[Path, str]) -> None: def get_model() -> messenger.Model:
p = Path(path) return messenger.Model(paths.fbmessenger.export_db)
# TODO FIXME result type?
def iter_all_messages() -> Iterator[messenger.Message]:
model = get_model()
for t in model.iter_threads():
yield from t.iter_messages()
def dump_chat_history(where: Union[Path, str]) -> None:
p = Path(where)
assert not p.exists() or p.is_dir() assert not p.exists() or p.is_dir()
m = messenger.Model(paths.fbmessenger.export_db) model = get_model()
with TemporaryDirectory() as tdir: with TemporaryDirectory() as tdir:
td = Path(tdir) td = Path(tdir)
_dump_helper(m, td) _dump_helper(model, td)
if p.exists(): if p.exists():
rmtree(p) rmtree(p)