use PathFilter object to filter paths
This commit is contained in:
@@ -28,15 +28,11 @@ import os
|
||||
import sys
|
||||
import time
|
||||
|
||||
from morituri.common import common, log, mbngs, cache
|
||||
from morituri.common import common, log, mbngs, cache, path
|
||||
from morituri.program import cdrdao, cdparanoia
|
||||
from morituri.image import image
|
||||
|
||||
|
||||
def filterForPath(text):
|
||||
return "-".join(text.split("/"))
|
||||
|
||||
|
||||
# FIXME: should Program have a runner ?
|
||||
|
||||
|
||||
@@ -69,6 +65,18 @@ class Program(log.Loggable):
|
||||
self._stdout = stdout
|
||||
self._config = config
|
||||
|
||||
d = {}
|
||||
|
||||
for key in ['fat', 'special']:
|
||||
value = None
|
||||
value = self._config.getboolean('main', 'path_filter_'+ key)
|
||||
if value is None:
|
||||
value = True
|
||||
|
||||
d[key] = value
|
||||
|
||||
self._filter = path.PathFilter(**d)
|
||||
|
||||
def setWorkingDirectory(self, workingDirectory):
|
||||
if workingDirectory:
|
||||
self.info('Changing to working directory %s' % workingDirectory)
|
||||
@@ -236,9 +244,9 @@ class Program(log.Loggable):
|
||||
if self.metadata:
|
||||
release = self.metadata.release or '0000'
|
||||
v['y'] = release[:4]
|
||||
v['A'] = filterForPath(self.metadata.artist)
|
||||
v['S'] = filterForPath(self.metadata.sortName)
|
||||
v['d'] = filterForPath(self.metadata.title)
|
||||
v['A'] = self._filter.filter(self.metadata.artist)
|
||||
v['S'] = self._filter.filter(self.metadata.sortName)
|
||||
v['d'] = self._filter.filter(self.metadata.title)
|
||||
v['B'] = self.metadata.barcode
|
||||
v['C'] = self.metadata.catalogNumber
|
||||
if self.metadata.releaseType:
|
||||
@@ -246,16 +254,16 @@ class Program(log.Loggable):
|
||||
v['r'] = self.metadata.releaseType.lower()
|
||||
if i > 0:
|
||||
try:
|
||||
v['a'] = filterForPath(self.metadata.tracks[i - 1].artist)
|
||||
v['s'] = filterForPath(
|
||||
v['a'] = self._filter.filter(self.metadata.tracks[i - 1].artist)
|
||||
v['s'] = self._filter.filter(
|
||||
self.metadata.tracks[i - 1].sortName)
|
||||
v['n'] = filterForPath(self.metadata.tracks[i - 1].title)
|
||||
v['n'] = self._filter.filter(self.metadata.tracks[i - 1].title)
|
||||
except IndexError, e:
|
||||
print 'ERROR: no track %d found, %r' % (i, e)
|
||||
raise
|
||||
else:
|
||||
# htoa defaults to disc's artist
|
||||
v['a'] = filterForPath(self.metadata.artist)
|
||||
v['a'] = self._filter.filter(self.metadata.artist)
|
||||
|
||||
# when disambiguating, use catalogNumber then barcode
|
||||
if disambiguate:
|
||||
|
||||
Reference in New Issue
Block a user