Author: duncan
Date: Fri May 18 17:44:59 2007
New Revision: 9578
Modified:
branches/rel-1/freevo/src/audio/plugins/playlist.py
branches/rel-1/freevo/src/image/__init__.py
branches/rel-1/freevo/src/playlist.py
branches/rel-1/freevo/src/util/fileops.py
Log:
[ 1715447 ] Recursive play, .password files, and folder permissions
Fix applied to skip recursive play of directories with .password files
Modified: branches/rel-1/freevo/src/audio/plugins/playlist.py
==============================================================================
--- branches/rel-1/freevo/src/audio/plugins/playlist.py (original)
+++ branches/rel-1/freevo/src/audio/plugins/playlist.py Fri May 18 17:44:59 2007
@@ -109,7 +109,7 @@
time.strftime(self.naming))),'w+')
for f in self.item.files.get():
if os.path.isdir(f):
- for file in util.match_files_recursively(f,
config.AUDIO_SUFFIX):
+ for file in util.match_files_recursively(f,
config.AUDIO_SUFFIX, skip_password=True):
self.playlist_handle.write('%s\n' % os.path.join(f, file))
else:
self.playlist_handle.write('%s\n' % f)
Modified: branches/rel-1/freevo/src/image/__init__.py
==============================================================================
--- branches/rel-1/freevo/src/image/__init__.py (original)
+++ branches/rel-1/freevo/src/image/__init__.py Fri May 18 17:44:59 2007
@@ -124,7 +124,7 @@
fname = os.path.join(dirname, String(fxd.gettext(child)))
if child.name == 'directory':
if fxd.getattr(child, 'recursive', 0):
- f = util.match_files_recursively(fname, self.suffix())
+ f = util.match_files_recursively(fname, self.suffix(),
skip_password=True)
else:
f = util.match_files(fname, self.suffix())
citems = self.get(None, f)
@@ -168,7 +168,7 @@
fname = os.path.join(dirname, fxd.gettext(child))
if child.name == 'directory':
if fxd.getattr(child, 'recursive', 0):
- files += util.match_files_recursively(fname, suffix)
+ files += util.match_files_recursively(fname, suffix,
skip_password=True)
else:
files += util.match_files(fname, suffix)
elif child.name == 'file':
Modified: branches/rel-1/freevo/src/playlist.py
==============================================================================
--- branches/rel-1/freevo/src/playlist.py (original)
+++ branches/rel-1/freevo/src/playlist.py Fri May 18 17:44:59 2007
@@ -248,7 +248,7 @@
len(i) == 2 and vfs.isdir(i[0]):
# (directory, recursive=True|False)
if i[1]:
- self.playlist += util.match_files_recursively(i[0],
self.suffixlist)
+ self.playlist += util.match_files_recursively(i[0],
self.suffixlist, skip_password=True)
else:
self.playlist += util.match_files(i[0],
self.suffixlist)
# set autoplay to True on such big lists
Modified: branches/rel-1/freevo/src/util/fileops.py
==============================================================================
--- branches/rel-1/freevo/src/util/fileops.py (original)
+++ branches/rel-1/freevo/src/util/fileops.py Fri May 18 17:44:59 2007
@@ -248,12 +248,33 @@
return result
-def match_files_recursively(dir, suffix_list):
+def match_files_recursively_skip_protected(result, dirname, names):
+ """
+ help function for match_files_recursively_skip_protected, skipping
directories with a .password file
+ """
+ if dirname:
+ lastdir = dirname[dirname.rfind('/'):]
+ if os.path.exists(os.path.join(dirname, '.password')):
+ _debug_('.password found in "%s"' % dirname)
+ return result
+ if len(lastdir) > 1 and lastdir[1] == '.':
+ return result
+ for name in names:
+ fullpath = vfs.join(dirname, name)
+ result.append(fullpath)
+
+ return result
+
+
+def match_files_recursively(dir, suffix_list, skip_password=False):
"""
get all files matching suffix_list in the dir and in it's subdirectories
"""
all_files = []
- os.path.walk(dir, match_files_recursively_helper, all_files)
+ if skip_password:
+ os.path.walk(dir, match_files_recursively_skip_protected, all_files)
+ else:
+ os.path.walk(dir, match_files_recursively_helper, all_files)
matches = misc.unique([f for f in all_files if match_suffix(f,
suffix_list) ])
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Freevo-cvslog mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog