cc-4105: major code cleanup
This commit is contained in:
parent
57a8a6a7f7
commit
38e8c3871e
6 changed files with 96 additions and 63 deletions
|
@ -12,17 +12,18 @@ class AirtimeDB(Loggable):
|
|||
|
||||
def reload_directories(self):
|
||||
"""
|
||||
this is the 'real' constructor, should be called if you ever want the class reinitialized.
|
||||
there's not much point to doing it yourself however, you should just create a new AirtimeDB
|
||||
instance.
|
||||
this is the 'real' constructor, should be called if you ever want the
|
||||
class reinitialized. there's not much point to doing it yourself
|
||||
however, you should just create a new AirtimeDB instance.
|
||||
"""
|
||||
# dirs_setup is a dict with keys:
|
||||
# u'watched_dirs' and u'stor' which point to lists of corresponding
|
||||
# dirs
|
||||
dirs_setup = self.apc.setup_media_monitor()
|
||||
dirs_setup[u'stor'] = normpath( dirs_setup[u'stor'] )
|
||||
dirs_setup[u'watched_dirs'] = map(normpath, dirs_setup[u'watched_dirs'] )
|
||||
dirs_with_id = dict([ (k,normpath(v)) for k,v in self.apc.list_all_watched_dirs()['dirs'].iteritems() ])
|
||||
dirs_setup[u'watched_dirs'] = map(normpath, dirs_setup[u'watched_dirs'])
|
||||
dirs_with_id = dict([ (k,normpath(v)) for k,v in
|
||||
self.apc.list_all_watched_dirs()['dirs'].iteritems() ])
|
||||
|
||||
self.id_to_dir = dirs_with_id
|
||||
self.dir_to_id = dict([ (v,k) for k,v in dirs_with_id.iteritems() ])
|
||||
|
@ -37,7 +38,8 @@ class AirtimeDB(Loggable):
|
|||
|
||||
# We don't know from the x_to_y dict which directory is watched or
|
||||
# store...
|
||||
self.watched_directories = set([ os.path.normpath(p) for p in dirs_setup[u'watched_dirs'] ])
|
||||
self.watched_directories = set([ os.path.normpath(p) for p in
|
||||
dirs_setup[u'watched_dirs'] ])
|
||||
|
||||
def to_id(self, directory):
|
||||
return self.dir_to_id[ directory ]
|
||||
|
@ -69,26 +71,30 @@ class AirtimeDB(Loggable):
|
|||
|
||||
def dir_id_get_files(self, dir_id):
|
||||
base_dir = self.id_to_dir[ dir_id ]
|
||||
return set(( os.path.join(base_dir,p) for p in self.apc.list_all_db_files( dir_id ) ))
|
||||
return set(( os.path.join(base_dir,p) for p in
|
||||
self.apc.list_all_db_files( dir_id ) ))
|
||||
|
||||
def directory_get_files(self, directory):
|
||||
"""
|
||||
returns all the files(recursively) in a directory. a directory is an "actual" directory
|
||||
path instead of its id. This is super hacky because you create one request for the
|
||||
recorded directory and one for the imported directory even though they're the same dir
|
||||
in the database so you get files for both dirs in 1 request...
|
||||
returns all the files(recursively) in a directory. a directory is an
|
||||
"actual" directory path instead of its id. This is super hacky because
|
||||
you create one request for the recorded directory and one for the
|
||||
imported directory even though they're the same dir in the database so
|
||||
you get files for both dirs in 1 request...
|
||||
"""
|
||||
normal_dir = os.path.normpath(unicode(directory))
|
||||
if normal_dir not in self.dir_to_id:
|
||||
raise NoDirectoryInAirtime( normal_dir, self.dir_to_id )
|
||||
all_files = self.dir_id_get_files( self.dir_to_id[normal_dir] )
|
||||
if normal_dir == self.recorded_path():
|
||||
all_files = [ p for p in all_files if mmp.sub_path( self.recorded_path(), p ) ]
|
||||
all_files = [ p for p in all_files if
|
||||
mmp.sub_path( self.recorded_path(), p ) ]
|
||||
elif normal_dir == self.import_path():
|
||||
all_files = [ p for p in all_files if mmp.sub_path( self.import_path(), p ) ]
|
||||
all_files = [ p for p in all_files if
|
||||
mmp.sub_path( self.import_path(), p ) ]
|
||||
elif normal_dir == self.storage_path():
|
||||
self.logger.info("Warning, you're getting all files in '%s' which includes imported + record"
|
||||
% normal_dir)
|
||||
self.logger.info("Warning, you're getting all files in '%s' which \
|
||||
includes imported + record" % normal_dir)
|
||||
return set(all_files)
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue