HPI/my/browser/export.py
karlicoss 33f8d867e2 my.browser.export: cleanup
- make logging INFO (default) -- otherwise it's too quiet during processing lots of databases
- can pass inputs cachew directly now
2023-11-07 21:24:56 +00:00

47 lines
970 B
Python

"""
Parses browser history using [[http://github.com/seanbreckenridge/browserexport][browserexport]]
"""
REQUIRES = ["browserexport"]
from dataclasses import dataclass
from pathlib import Path
from typing import Iterator, Sequence
import my.config
from my.core import (
Paths,
Stats,
get_files,
make_logger,
stat,
)
from my.core.common import mcachew
from browserexport.merge import read_and_merge, Visit
from .common import _patch_browserexport_logs
@dataclass
class config(my.config.browser.export):
# path[s]/glob to your backed up browser history sqlite files
export_path: Paths
logger = make_logger(__name__)
_patch_browserexport_logs(logger.level)
# all of my backed up databases
def inputs() -> Sequence[Path]:
return get_files(config.export_path)
@mcachew(depends_on=inputs, logger=logger)
def history() -> Iterator[Visit]:
yield from read_and_merge(inputs())
def stats() -> Stats:
return {**stat(history)}