prettify fb messenger module

This commit is contained in:
Dima Gerasimov 2020-03-12 20:38:09 +00:00
parent 4e93beee27
commit a1d81b0051

View file

@ -1,16 +1,28 @@
""" """
Module for Facebook Messenger messages Module for Facebook Messenger messages
"""
Uses output for input data [[https://github.com/karlicoss/fbmessengerexport][fbmessengerexport]].
"""
from pathlib import Path from pathlib import Path
from shutil import rmtree from typing import Iterator
from tempfile import TemporaryDirectory
from typing import Iterator, Union from .common import PathIsh
import mycfg.repos.fbmessengerexport.dal as messenger import mycfg.repos.fbmessengerexport.dal as messenger
from mycfg import paths from mycfg import paths
def _dal() -> messenger.DAL:
return messenger.DAL(paths.fbmessenger.export_db)
# TODO Result type?
def messages() -> Iterator[messenger.Message]:
model = _dal()
for t in model.iter_threads():
yield from t.iter_messages()
def _dump_helper(model: messenger.DAL, tdir: Path) -> None: def _dump_helper(model: messenger.DAL, tdir: Path) -> None:
for t in model.iter_threads(): for t in model.iter_threads():
name = t.name.replace('/', '_') # meh.. name = t.name.replace('/', '_') # meh..
@ -23,23 +35,14 @@ def _dump_helper(model: messenger.DAL, tdir: Path) -> None:
print(msg, file=fo) print(msg, file=fo)
def get_model() -> messenger.DAL: def dump_chat_history(where: PathIsh) -> None:
return messenger.DAL(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) p = Path(where)
assert not p.exists() or p.is_dir() assert not p.exists() or p.is_dir()
model = get_model() model = _dal()
from shutil import rmtree
from tempfile import TemporaryDirectory
with TemporaryDirectory() as tdir: with TemporaryDirectory() as tdir:
td = Path(tdir) td = Path(tdir)
_dump_helper(model, td) _dump_helper(model, td)