Adicionar src-py/renatoxsr/scripts/bulk_jsonl.py
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
#!/usr/bin/env python3
|
||||
# vim: set ft=python ts=4 sw=4 et encoding=utf-8 :
|
||||
# SPDX-FileCopyrightText: 2025-present RenatoXSR <renatoxsr@gmail.com>
|
||||
# SPDX-License-Identifier: BSD-3-Clause-Clear
|
||||
import argparse, json, os, sys
|
||||
from pathlib import Path
|
||||
import datetime as dt
|
||||
|
||||
from renatoxsr.utils import hash_b58, pandoc
|
||||
from renatoxsr.logger import set_logger
|
||||
logger = set_logger(__name__)
|
||||
if "--debug" in sys.argv:
|
||||
logger.setLevel("DEBUG")
|
||||
|
||||
def parse_args():
|
||||
p = argparse.ArgumentParser()
|
||||
p.add_argument("--src", default=os.getcwd())
|
||||
p.add_argument("--glob", default="*")
|
||||
p.add_argument("--overwrite", default=False)
|
||||
p.add_argument("--logfile", default=sys.stderr, help="Log output(default: sys.stderr)")
|
||||
p.add_argument("--loglevel", default="INFO", help="Log level (default: INFO)")
|
||||
p.add_argument("filename",
|
||||
default=dt.datetime.now().isoformat().replace(":", "_"),
|
||||
help="output file (default: `datetime.now().isoformat()`)")
|
||||
return p.parse_args()
|
||||
|
||||
def main():
|
||||
parsed_args = parse_args()
|
||||
logger.setLevel(parsed_args.loglevel)
|
||||
|
||||
with open(Path(parsed_args.filename), "w" if parsed_args.overwrite else "a") as output_file:
|
||||
for fpath in Path(parsed_args.src).glob(parsed_args.glob):
|
||||
data = {"hash": hash_b58(fpath), "fpath": str(fpath), "markdown": pandoc(fpath)}
|
||||
if not data["markdown"]:
|
||||
logger.error("No markdown output from '%s' (hash:%s)", fpath, data["hash"])
|
||||
continue
|
||||
output_file.write(json.dumps(data)+"\n")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user