From 97f5fb2f36188d357cfd35594ec0caf14e43682a Mon Sep 17 00:00:00 2001 From: Dima Gerasimov Date: Sat, 7 Dec 2019 18:42:00 +0000 Subject: [PATCH] expose iter_all_messages, reference Thread from Message --- my/fbmessenger.py | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/my/fbmessenger.py b/my/fbmessenger.py index c0c6d0f..175ef94 100644 --- a/my/fbmessenger.py +++ b/my/fbmessenger.py @@ -1,7 +1,7 @@ from pathlib import Path from shutil import rmtree from tempfile import TemporaryDirectory -from typing import Union +from typing import Iterator, Union import my_configuration.repos.fbmessengerexport.model as messenger from my_configuration import paths @@ -19,15 +19,26 @@ def _dump_helper(model: messenger.Model, tdir: Path) -> None: print(msg, file=fo) -def dump_chat_history(path: Union[Path, str]) -> None: - p = Path(path) +def get_model() -> messenger.Model: + 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() - m = messenger.Model(paths.fbmessenger.export_db) + model = get_model() with TemporaryDirectory() as tdir: td = Path(tdir) - _dump_helper(m, td) + _dump_helper(model, td) if p.exists(): rmtree(p)