Skip to content
This repository was archived by the owner on Apr 25, 2024. It is now read-only.

Commit 4bf762b

Browse files
committed
Merge branch 'master' of https://github.com/bernieke/geeknote into 3.0
2 parents eb20376 + c5b1b8c commit 4bf762b

File tree

4 files changed

+19
-6
lines changed

4 files changed

+19
-6
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
# Packages
44
*.egg
55
*.egg-info
6+
.eggs
67
dist
78
build
89
eggs

geeknote/editor.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ def getImages(contentENML):
5555
Creates a list of image resources to save.
5656
Each has a hash and extension attribute.
5757
"""
58-
soup = BeautifulSoup(contentENML)
58+
soup = BeautifulSoup(contentENML.decode("utf-8"), features='lxml')
5959
imageList = []
6060
for section in soup.findAll("en-media"):
6161
if "type" in section.attrs and "hash" in section.attrs:

geeknote/geeknote.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
from evernote.edam.notestore.ttypes import NotesMetadataResultSpec
1919
import evernote.edam.type.ttypes as Types
2020
from evernote.edam.limits.constants import EDAM_USER_NOTES_MAX
21+
from evernote.edam.error.ttypes import EDAMNotFoundException
2122

2223
from .__init__ import __version__
2324
from . import config
@@ -148,6 +149,10 @@ def wrapper(wrapped_object, *args, **kwargs):
148149
out.failureMessage("Unknown error")
149150
tools.exitErr()
150151

152+
elif isinstance(e, EDAMNotFoundException):
153+
out.failureMessage("EDAMNotFoundException on %s with key %s"
154+
% (e.identifier, e.key))
155+
return None
151156
else:
152157
out.failureMessage("Operation failed")
153158
traceback.print_exc()
@@ -327,7 +332,7 @@ def findNotes(
327332
@EdamException
328333
def loadNoteContent(self, note):
329334
""" modify Note object """
330-
if not isinstance(note, Types.Note):
335+
if not isinstance(note, object):
331336
raise Exception(
332337
"Note content must be an " "instance of Note, '%s' given." % type(note)
333338
)
@@ -346,7 +351,7 @@ def loadNoteContent(self, note):
346351

347352
@EdamException
348353
def loadLinkedNoteContent(self, note):
349-
if not isinstance(note, Types.Note):
354+
if not isinstance(note, object):
350355
raise Excetion(
351356
"Note content must be an " "instance of Note, '%s' given." % type(note)
352357
)
@@ -623,6 +628,8 @@ def saveMedia(self, guid, mediaHash, filename):
623628
resource = self.getNoteStore().getResourceByHash(
624629
self.authToken, guid, mediaHash, True, False, False
625630
)
631+
if resource == None:
632+
return False
626633
open(filename, "w").write(resource.data.body)
627634
return True
628635

geeknote/gnsync.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -389,7 +389,11 @@ def _create_file(self, note):
389389
"imagesInSubdir" in self.imageOptions
390390
and self.imageOptions["imagesInSubdir"]
391391
):
392-
os.mkdir(os.path.join(self.path, escaped_title + "_images"))
392+
try:
393+
os.mkdir(os.path.join(self.path, escaped_title + "_images"))
394+
except OSError:
395+
# Folder already exists
396+
pass
393397
imagePath = os.path.join(
394398
self.path, escaped_title + "_images", escaped_title
395399
)
@@ -405,9 +409,10 @@ def _create_file(self, note):
405409
)
406410
logger.info("Saving image to {}".format(filename))
407411
binaryHash = binascii.unhexlify(imageInfo["hash"])
408-
GeekNote(sleepOnRateLimit=self.sleep_on_ratelimit).saveMedia(
412+
if not GeekNote(sleepOnRateLimit=self.sleep_on_ratelimit).saveMedia(
409413
note.guid, binaryHash, filename
410-
)
414+
):
415+
logger.warning("Failed to save image {}".format(filename))
411416

412417
content = Editor.ENMLtoText(note.content, self.imageOptions)
413418
path = os.path.join(self.path, escaped_title + self.extension)

0 commit comments

Comments
 (0)