duck2logseq.py

nogajun
Duck noteのJSONファイルをLogseqのMarkdownに変換する
Duck noteからエクスポートしたJSONファイルをlogseqのjournal用のMarkdownに変換します。
journalとして取り込むのは、logseqがインポートしたファイルの時間をインポートできないからです。あと、Linuxでしか使っていないのでWindowsやMacで使えるかわからないです。
usage
python duck2logseq.py -o (logseqのjournalフォルダ) localdb.json
duck2logseq.py
import json
import argparse
import os
import datetime
def main(args):
f = args.infile[0]
data = json.load(f)
epath = args.output
for i in data["messages"]:
# 作成日時
create_date = int(i["createdAt"]) // 1000
cdate = datetime.datetime.fromtimestamp(create_date).date()
ctime = datetime.datetime.fromtimestamp(create_date).time()
# ファイル名に日付をセット
efile = str(cdate).replace("-", "_")
expfile = "{}/{}.md".format(epath, efile)
# リストに出力データをセットする
expdata = []
# コンテンツ追加
expdata.append("- ({})\n".format(ctime))
expdata.append("\t- ```text\n{}\n\t ```\n\t- \n".format(i["body"]))
# 出力
with open(expfile, mode="a") as f:
f.writelines(expdata)
parser = argparse.ArgumentParser(description="Convert Duck note JSON file to Logseq Markdown file.", add_help=True)
parser.add_argument("-o", "--output", default=os.path.dirname(__file__), help="Output directory")
parser.add_argument("infile", type=argparse.FileType("r"), default="localdb.json", nargs=1, help="Duck note json (.json)")
args = parser.parse_args()
main(args)