HPI/my/browser/export.py
Dima Gerasimov 973c4205df core: cleanup deprecations, exclude from type checking and show runtime warnings
among affected things:

- core.common.assert_never
- core.common.cproperty
- core.common.isoparse
- core.common.mcachew
- core.common.the
- core.common.tzdatetime
- core.compat.sqlite_backup
2024-08-16 10:22:29 +01: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.cachew 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)}