generic_jsonl.py 686 B

1234567891011121314151617181920212223242526272829303132
  1. __package__ = 'archivebox.parsers'
  2. import json
  3. from typing import IO, Iterable
  4. from ..index.schema import Link
  5. from ..util import (
  6. enforce_types,
  7. )
  8. from .generic_json import jsonObjectToLink
  9. def parse_line(line: str):
  10. if line.strip() != "":
  11. return json.loads(line)
  12. @enforce_types
  13. def parse_generic_jsonl_export(json_file: IO[str], **_kwargs) -> Iterable[Link]:
  14. """Parse JSONL format bookmarks export files"""
  15. json_file.seek(0)
  16. links = [ parse_line(line) for line in json_file ]
  17. for link in links:
  18. if link:
  19. yield jsonObjectToLink(link,json_file.name)
  20. KEY = 'jsonl'
  21. NAME = 'Generic JSONL'
  22. PARSER = parse_generic_jsonl_export