This repository has been archived by the owner on Jan 20, 2024. It is now read-only.
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Timur Demin <me@tdem.in>
- Loading branch information
Showing
3 changed files
with
40 additions
and
17 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,36 +1,37 @@ | ||
from datetime import datetime | ||
from json import loads | ||
|
||
def exportNotes(inputJson, outputDir): | ||
def exportNotes(notesList, outputDir): | ||
""" | ||
Exports the notes from Scarlet Notes to Notable. | ||
@param inputJson: an object generated with `json.load()` | ||
@param notesList: a list of `Note` | ||
@param outputDir: output directory name | ||
""" | ||
for note in inputJson['notes']: | ||
for note in notesList: | ||
# color is not available in Notable, so it's not preserved | ||
# the metadata Notable uses is just YAML front matter | ||
if note['folder'] != '': | ||
outputFolder = outputDir + '/' + note['folder'] | ||
if note.folder != '': | ||
outputFolder = outputDir + '/' + note.folder | ||
else: | ||
outputFolder = outputDir | ||
outputFileName = outputFolder + '/' + note['uuid'] + '.md' | ||
tags = '[{0}]'.format(note['tags']) | ||
timestamp = int(note['timestamp']) | ||
updateTimestamp = int(note['updateTimestamp']) | ||
created = datetime.utcfromtimestamp(timestamp) | ||
modified = datetime.utcfromtimestamp(updateTimestamp) | ||
outputFileName = outputFolder + '/' + note.uuid + '.md' | ||
# make up a string containing all of the tags | ||
tags = '' | ||
for tag in note.tags: | ||
tags += tag + ',' | ||
tags.rstrip(',') | ||
created = datetime.utcfromtimestamp(note.timestamp) | ||
modified = datetime.utcfromtimestamp(note.updateTimestamp) | ||
with open(outputFileName) as output: | ||
# print YAML front matter first, then dump the note content | ||
# print YAML front matter first | ||
output.write('---') | ||
output.write('created: {0}'.format(created)) | ||
output.write('modified: {0}'.format(modified)) | ||
output.write('tags: {0}'.format(tags)) | ||
output.write('tags: [{0}]'.format(tags)) | ||
output.write('---') | ||
output.write('') # an empty string | ||
# dump the note text as well, contained in another | ||
# JSON-formatted string | ||
noteText = loads(note['description'])['note']['text'] | ||
output.write(noteText) | ||
output.write(note.content) | ||
return |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
from json import loads | ||
|
||
class Note: | ||
""" | ||
A Scarlet Notes note model. Has six properties: `uuid`, `folder`, | ||
`updateTimestamp`, `timestamp`, `tags`, and `content`. | ||
The timestamps are both ints in Unix time. UUID and folder are both | ||
strings. `content` is a string containing all of the note content. | ||
""" | ||
def __init__(self, note): | ||
self.uuid = note['uuid'] | ||
self.folder = note['folder'] | ||
self.updateTimestamp = int(note['updateTimestamp']) | ||
self.timestamp = int(note['timestamp']) | ||
self.tags = note['tags'].split(',') | ||
self.content = loads(note['description'])['note']['text'] |