32 lines
1.2 KiB
Python
Executable file
32 lines
1.2 KiB
Python
Executable file
import json
|
|
from datetime import datetime
|
|
|
|
from base import Wallabag_Converter
|
|
|
|
class JSON_Converter(Wallabag_Converter):
|
|
def __init__(self, data: list[dict]):
|
|
self.data = data
|
|
|
|
def convert(self) -> str:
|
|
print(f"[DEBUG] Found {len(self.data)} wallabag entries.")
|
|
|
|
data_out = {"bookmarks": []}
|
|
n = 0
|
|
for entry in self.data:
|
|
bm = {
|
|
"createdAt": datetime.strptime(
|
|
entry["created_at"], "%Y-%m-%dT%H:%M:%S%z"
|
|
).timestamp(),
|
|
"content": {"type": "link", "url": entry["url"]},
|
|
"title": entry["title"] if entry["title"] else None,
|
|
"tags": entry["tags"] + ["_wallabag"],
|
|
# FIXME: Need to wait for better hoarder annotation handling to import them in a good format
|
|
# for now we just turn them _all_ into a single note.
|
|
# DOABLE WITH API? https://docs.hoarder.app/api/create-a-new-highlight
|
|
"note": json.dumps(entry["annotations"])
|
|
if entry["annotations"]
|
|
else None,
|
|
}
|
|
data_out["bookmarks"].append(bm)
|
|
|
|
return json.dumps(data_out)
|