re-adds a removed check for HPI_LOGS, add some docs fix the checks for browserexport/takeout logs to use the computed level from my.core.logging
49 lines
1.1 KiB
Python
49 lines
1.1 KiB
Python
"""
|
|
Parses browser history using [[http://github.com/seanbreckenridge/browserexport][browserexport]]
|
|
"""
|
|
|
|
REQUIRES = ["browserexport"]
|
|
|
|
from my.config import browser as user_config
|
|
from my.core import Paths, dataclass
|
|
|
|
|
|
@dataclass
|
|
class config(user_config.export):
|
|
# path[s]/glob to your backed up browser history sqlite files
|
|
export_path: Paths
|
|
|
|
|
|
from pathlib import Path
|
|
from typing import Iterator, Sequence, List
|
|
|
|
from my.core import Stats, get_files, LazyLogger
|
|
from my.core.common import mcachew
|
|
|
|
from browserexport.merge import read_and_merge, Visit
|
|
|
|
from .common import _patch_browserexport_logs
|
|
|
|
|
|
logger = LazyLogger(__name__, level="warning")
|
|
_patch_browserexport_logs(__name__)
|
|
|
|
|
|
# all of my backed up databases
|
|
def inputs() -> Sequence[Path]:
|
|
return get_files(config.export_path)
|
|
|
|
|
|
def _cachew_depends_on() -> List[str]:
|
|
return [str(f) for f in inputs()]
|
|
|
|
|
|
@mcachew(depends_on=_cachew_depends_on, logger=logger)
|
|
def history() -> Iterator[Visit]:
|
|
yield from read_and_merge(inputs())
|
|
|
|
|
|
def stats() -> Stats:
|
|
from my.core import stat
|
|
|
|
return {**stat(history)}
|