From 1e2f0e51a25e08fbcaf67e54256f7d5a81a3278b Mon Sep 17 00:00:00 2001 From: Alex Yatskov Date: Wed, 24 Dec 2014 17:26:05 +0900 Subject: [PATCH] Allow text word lists to be imported Former-commit-id: ac96ec75dd83094a5dd1455a77f2d0fb68bed0b7 --- yomi_base/reader.py | 16 ++++++++++++++-- yomi_base/reader_util.py | 10 ++++++++-- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/yomi_base/reader.py b/yomi_base/reader.py index d61666f..f3ec030 100644 --- a/yomi_base/reader.py +++ b/yomi_base/reader.py @@ -72,7 +72,8 @@ class MainWindowReader(QtGui.QMainWindow, gen.reader_ui.Ui_MainWindowReader): self.actionFind.triggered.connect(self.onActionFind) self.actionFindNext.triggered.connect(self.onActionFindNext) self.actionHomepage.triggered.connect(self.onActionHomepage) - self.actionImportKindleDeck.triggered.connect(self.onActionImportKindleDeck) + self.actionKindleDeck.triggered.connect(self.onActionKindleDeck) + self.actionWordList.triggered.connect(self.onActionWordList) self.actionOpen.triggered.connect(self.onActionOpen) self.actionPreferences.triggered.connect(self.onActionPreferences) self.actionToggleWrap.toggled.connect(self.onActionToggleWrap) @@ -183,7 +184,7 @@ class MainWindowReader(QtGui.QMainWindow, gen.reader_ui.Ui_MainWindowReader): self.openFile(filename) - def onActionImportKindleDeck(self): + def onActionKindleDeck(self): filename = QtGui.QFileDialog.getOpenFileName( parent=self, caption='Select a Kindle deck to import', @@ -194,6 +195,17 @@ class MainWindowReader(QtGui.QMainWindow, gen.reader_ui.Ui_MainWindowReader): self.importWordList(words) + def onActionWordList(self): + filename = QtGui.QFileDialog.getOpenFileName( + parent=self, + caption='Select a word list file to import', + filter='Text files (*.txt);;All files (*.*)' + ) + if filename: + words = reader_util.extractWordList(filename) + self.importWordList(words) + + def onActionPreferences(self): dialog = preferences.DialogPreferences(self, self.preferences, self.anki) if dialog.exec_() == QtGui.QDialog.Accepted: diff --git a/yomi_base/reader_util.py b/yomi_base/reader_util.py index 1cce7a6..233b406 100644 --- a/yomi_base/reader_util.py +++ b/yomi_base/reader_util.py @@ -18,6 +18,7 @@ from PyQt4 import QtGui import re +import codecs import sqlite3 @@ -249,5 +250,10 @@ def extractKindleDeck(filename): return words -def importWordList(self, words): - pass +def extractWordList(filename): + words = list() + + with codecs.open(unicode(filename), 'rb', 'utf-8') as fp: + words = re.split('[;,\s]', fp.read()) + + return filter(None, words)