From 2c60151a45e452964f55a3940f3cff9f8b5b6bd1 Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Fri, 24 Apr 2009 02:16:54 +0900 Subject: [PATCH 1/7] ignore console input in mplayer --- anki/sound.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/anki/sound.py b/anki/sound.py index e9919549b..e5324338c 100644 --- a/anki/sound.py +++ b/anki/sound.py @@ -53,12 +53,12 @@ queue = [] manager = None if sys.platform.startswith("win32"): - externalPlayer = ["mplayer.exe", "-ao", "win32", "-really-quiet"] + externalPlayer = ["mplayer.exe", "-ao", "win32", "-really-quiet", "-noconsolecontrols"] dir = os.path.dirname(os.path.abspath(sys.argv[0])) os.environ['PATH'] += ";" + dir os.environ['PATH'] += ";" + dir + "\\..\\dist" # for testing else: - externalPlayer = ["mplayer", "-really-quiet"] + externalPlayer = ["mplayer", "-really-quiet", "-noconsolecontrols"] # don't show box on windows if sys.platform == "win32": From 2944b8194bb5344b2efb47059ec2c71670f16ed4 Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Sat, 25 Apr 2009 02:38:48 +0900 Subject: [PATCH 2/7] if audio player fails to start, give better error --- anki/sound.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/anki/sound.py b/anki/sound.py index e5324338c..1205654d9 100644 --- a/anki/sound.py +++ b/anki/sound.py @@ -121,8 +121,11 @@ class QueueMonitor(threading.Thread): time.sleep(0.1) if queue: path = queue.pop(0) - retryWait(subprocess.Popen( - externalPlayer + [path], startupinfo=si)) + try: + retryWait(subprocess.Popen( + externalPlayer + [path], startupinfo=si)) + except OSError: + raise Exception("Audio player not found") else: return From 61fc7b4430a5d0ecfd9a6ca82b13291206d76d98 Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Sat, 25 Apr 2009 03:04:52 +0900 Subject: [PATCH 3/7] lower tags in python, as sqlite doesn't have full unicode tables --- anki/tags.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/anki/tags.py b/anki/tags.py index dd72c7d91..aa68b6766 100644 --- a/anki/tags.py +++ b/anki/tags.py @@ -51,10 +51,8 @@ def tagIds(s, tags): ids = {} s.statements("insert or ignore into tags (tag) values (:tag)", [{'tag': t} for t in tags]) - tagsD = dict(s.all(""" -select lower(tag), id from tags + tagsD = dict([(x.lower(), y) for (x, y) in s.all(""" +select tag, id from tags where tag in (%s)""" % ",".join([ - "'%s'" % t.replace("'", "''") for t in tags]))) - for tag in tags: - ids[tag.lower()] = tagsD[tag.lower()] - return ids + "'%s'" % t.replace("'", "''") for t in tags]))]) + return tagsD From 169dc16ced8c834fb77074654fde8986d20b7fdb Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Sat, 25 Apr 2009 03:27:46 +0900 Subject: [PATCH 4/7] remove deprecated popen call --- anki/features/japanese.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/anki/features/japanese.py b/anki/features/japanese.py index 8fce19b78..13d75a6c6 100644 --- a/anki/features/japanese.py +++ b/anki/features/japanese.py @@ -3,6 +3,7 @@ # License: GNU GPL, version 3 or later; http://www.gnu.org/copyleft/gpl.html import sys, os +from subprocess import Popen, PIPE from anki.utils import findTag, stripHTML from anki.hooks import addHook @@ -45,7 +46,9 @@ class KakasiController(object): from errno import ENOENT raise OSError(ENOENT, 'Kakasi not available') # don't convert kana to hiragana - (self.kin, self.kout) = os.popen2("kakasi -isjis -osjis -u -JH -p") + p = Popen("kakasi -isjis -osjis -u -JH -p", shell=True, + bufsize=-1, stdin=PIPE, stdout=PIPE) + (self.kin, self.kout) = (p.stdin, p.stdout) self._open = True def close(self): From e51fec907be13d66f60cf927e2ab31eece08895b Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Sat, 25 Apr 2009 03:28:21 +0900 Subject: [PATCH 5/7] bump version --- anki/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/anki/__init__.py b/anki/__init__.py index f763d5d70..2a7a70e16 100644 --- a/anki/__init__.py +++ b/anki/__init__.py @@ -53,6 +53,6 @@ try: except ImportError: pass -version = "0.9.9.7.5" +version = "0.9.9.7.6" from anki.deck import DeckStorage From 90f726e63453c6a721010f7024b1e5c696bd3e72 Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Sat, 25 Apr 2009 03:57:56 +0900 Subject: [PATCH 6/7] remove version numbers from import, as osx gets confused --- anki/importing/__init__.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/anki/importing/__init__.py b/anki/importing/__init__.py index eb61cfd96..3e13f967f 100644 --- a/anki/importing/__init__.py +++ b/anki/importing/__init__.py @@ -260,7 +260,7 @@ from anki.importing.wcu import WCUImporter Importers = ( (_("Text separated by tabs or semicolons (*)"), TextImporter), - (_("Anki 1.0 deck (*.anki)"), Anki10Importer), - (_("Mnemosyne 1.x deck (*.mem)"), Mnemosyne10Importer), - (_("CueCard deck (*.wcu)"), WCUImporter), + (_("Anki Deck (*.anki)"), Anki10Importer), + (_("Mnemosyne Deck (*.mem)"), Mnemosyne10Importer), + (_("CueCard Deck (*.wcu)"), WCUImporter), ) From c89d75b01cba859317aa6da18273f13ead515908 Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Sat, 25 Apr 2009 21:41:13 +0900 Subject: [PATCH 7/7] bump version --- anki/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/anki/__init__.py b/anki/__init__.py index 2a7a70e16..dde8776d9 100644 --- a/anki/__init__.py +++ b/anki/__init__.py @@ -53,6 +53,6 @@ try: except ImportError: pass -version = "0.9.9.7.6" +version = "0.9.9.7.6b" from anki.deck import DeckStorage