support a media prefix

This commit is contained in:
Damien Elmes 2010-12-09 15:34:01 +09:00
parent 84a98550f0
commit 27ca04fab6

View file

@ -152,6 +152,7 @@ class Deck(object):
def _initVars(self): def _initVars(self):
self.tmpMediaDir = None self.tmpMediaDir = None
self.mediaPrefix = ""
self.lastTags = u"" self.lastTags = u""
self.lastLoaded = time.time() self.lastLoaded = time.time()
self.undoEnabled = False self.undoEnabled = False
@ -2997,13 +2998,18 @@ where key = :key""", key=key, value=value):
def mediaDir(self, create=False): def mediaDir(self, create=False):
"Return the media directory if exists. None if couldn't create." "Return the media directory if exists. None if couldn't create."
if self.path: if self.path:
dir = re.sub("(?i)\.(anki)$", ".media", self.path) if self.mediaPrefix:
dir = os.path.join(
self.mediaPrefix, os.path.basename(self.path))
else:
dir = self.path
dir = re.sub("(?i)\.(anki)$", ".media", dir)
if create == None: if create == None:
# don't create, but return dir # don't create, but return dir
return dir return dir
if dir and not os.path.exists(dir) and create: if not os.path.exists(dir) and create:
try: try:
os.mkdir(dir) os.makedirs(dir)
except OSError: except OSError:
# permission denied # permission denied
return None return None
@ -3012,7 +3018,7 @@ where key = :key""", key=key, value=value):
if not self.tmpMediaDir and create: if not self.tmpMediaDir and create:
self.tmpMediaDir = tempfile.mkdtemp(prefix="anki") self.tmpMediaDir = tempfile.mkdtemp(prefix="anki")
dir = self.tmpMediaDir dir = self.tmpMediaDir
if not dir or not os.path.exists(dir): if not os.path.exists(dir):
return None return None
# change to the current dir # change to the current dir
os.chdir(dir) os.chdir(dir)