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

Commit eb20376

Browse files
committed
Merge branch 'master' of https://github.com/alperenkose/geeknote3 into 3.0
2 parents e398815 + 3d28887 commit eb20376

File tree

13 files changed

+43
-38
lines changed

13 files changed

+43
-38
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ obtaining the personal token.
149149
$ geeknote settings
150150
Geeknote
151151
******************************
152-
Version: 2.0.21
152+
Version: 3.0
153153
App dir: /Users/username/.geeknote
154154
Error log: /Users/username/.geeknote/error.log
155155
Current editor: vim

geeknote/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "2.0.21"
1+
__version__ = "3.1"

geeknote/editor.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ def ENMLtoText(
148148
content = content.replace(chr(160), " ") # no-break space
149149
content = Editor.HTMLUnescape(content)
150150

151-
return content.encode("utf-8")
151+
return content
152152

153153
@staticmethod
154154
def wrapENML(contentHTML):
@@ -282,7 +282,8 @@ def __init__(self, editor, content, noteExtension, raw=False):
282282
if not noteExtension:
283283
noteExtension = config.DEF_NOTE_EXT
284284
(tempfileHandler, tempfileName) = tempfile.mkstemp(suffix=noteExtension)
285-
os.write(tempfileHandler, content if raw else self.ENMLtoText(content))
285+
content = content if raw else self.ENMLtoText(content)
286+
os.write(tempfileHandler, content.encode('utf-8'))
286287
os.close(tempfileHandler)
287288

288289
self.content = content

geeknote/geeknote.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1003,7 +1003,7 @@ def _editWithEditorInThread(
10031003
if result:
10041004
prevChecksum = editor.getTempfileChecksum()
10051005

1006-
if not thread.isAlive():
1006+
if not thread.is_alive():
10071007
# check if thread is alive here before sleep to avoid losing data saved during this 5 secs
10081008
break
10091009
thread.join(timeout=5)

geeknote/storage.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -278,7 +278,7 @@ def getSettings(self):
278278
settings = self.session.query(Setting).all()
279279
result = {}
280280
for item in settings:
281-
result[item.key] = item.value
281+
result[item.key] = pickle.loads(item.value)
282282
return result
283283

284284
@logging
@@ -307,7 +307,7 @@ def getSetting(self, key):
307307
"""
308308
instance = self.session.query(Setting).filter_by(key=key).first()
309309
if instance:
310-
return str(instance.value)
310+
return instance.value
311311
else:
312312
return None
313313

geeknote/tools.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -83,14 +83,15 @@ def decodeArgs(args):
8383

8484

8585
def stdoutEncode(data):
86-
try:
87-
return data.decode("utf8").encode(sys.stdout.encoding)
88-
except:
86+
# this is not for logging output, it is for output from geeknote queries to evernote
87+
if isinstance(sys.stdout.encoding, str) and sys.stdout.encoding != 'utf-8':
88+
return data.encode('utf-8').decode(sys.stdout.encoding)
89+
else:
8990
return data
9091

9192

9293
def stdinEncode(data):
93-
try:
94-
return data.decode(sys.stdin.encoding).encode("utf8")
95-
except:
94+
if isinstance(sys.stdin.encoding, str) and sys.stdin.encoding.lower() != 'utf-8':
95+
return data.encode(sys.stdin.encoding).decode('utf-8')
96+
else:
9697
return data

requirements.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,5 @@ lxml
99

1010
# Testing requirements
1111
pytest
12+
pytest-runner
1213
mock

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#!/usr/bin/env python2
1+
#!/usr/bin/env python3
22
# -*- coding: utf-8 -*-
33

44
import sys

tests/test_geeknote.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ def test_parseInput2(self):
7777
)
7878
self.assertEqual(testData["tags"], ["tag1", "tag2"])
7979

80+
# this doesn't seem to work in Python 3 - need help
8081
def check_editWithEditorInThread(self, txt, expected):
8182
testNote = tools.Struct(title="note title",
8283
content=txt)

tests/test_gnsync.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,19 +40,19 @@ def tearDown(self):
4040
shutil.rmtree(self.test_dir)
4141

4242
def test_strip_eng(self):
43-
self.assertEqual(remove_control_characters(self.given_eng.decode('utf-8')).encode('utf-8'),
43+
self.assertEqual(remove_control_characters(self.given_eng),
4444
self.expected_eng)
4545

4646
def test_strip_kor(self):
47-
self.assertEqual(remove_control_characters(self.given_kor.decode('utf-8')).encode('utf-8'),
47+
self.assertEqual(remove_control_characters(self.given_kor),
4848
self.expected_kor)
4949

5050
def test_strip_chn(self):
51-
self.assertEqual(remove_control_characters(self.given_chn.decode('utf-8')).encode('utf-8'),
51+
self.assertEqual(remove_control_characters(self.given_chn),
5252
self.expected_chn)
5353

5454
def test_strip_nochange(self):
55-
self.assertEqual(remove_control_characters(self.given_combined.decode('utf-8')).encode('utf-8'),
55+
self.assertEqual(remove_control_characters(self.given_combined),
5656
self.expected_combined)
5757

5858
@patch('geeknote.gnsync.logger', autospec=True)
@@ -86,5 +86,5 @@ def mock_note_load(note):
8686
AnyStringWith("codec can't decode byte")
8787
)
8888

89-
with open(self.test_dir + "/Test Note.txt", 'r') as f:
89+
with open(self.test_dir + "/Test Note.txt", 'r', encoding='utf-8') as f:
9090
self.assertIn("œ ž © µ ¶ å õ ý þ ß Ü", f.read())

0 commit comments

Comments
 (0)