From 0533cf2e5feb72e13e5b3ad7673abd8506dc0dfb Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 8 Feb 2008 06:39:01 +0000 Subject: [PATCH] Fix #511 --- src/libprs500/ebooks/lrf/any/convert_from.py | 26 +++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/src/libprs500/ebooks/lrf/any/convert_from.py b/src/libprs500/ebooks/lrf/any/convert_from.py index e4cd6578d2..daea5c5e2f 100644 --- a/src/libprs500/ebooks/lrf/any/convert_from.py +++ b/src/libprs500/ebooks/lrf/any/convert_from.py @@ -48,11 +48,31 @@ def find_htmlfile(dir): finally: os.chdir(cwd) +def number_of_unhidden_files(base, listing): + ans = 0 + for i in listing: + i = os.path.join(base, i) + if os.path.isdir(i) or os.path.basename(i).startswith('.'): + continue + ans += 1 + return ans + +def unhidden_directories(base, listing): + ans = [] + for i in listing: + if os.path.isdir(os.path.join(base, i)) and not i.startswith('__') and \ + not i.startswith('.'): + ans.append(i) + return ans + def traverse_subdirs(tdir): temp = os.listdir(tdir) - if len(temp) == 1 and os.path.isdir(os.path.join(tdir, temp[0])): - cdir = os.path.join(tdir, temp[0]) - return traverse_subdirs(cdir) + if number_of_unhidden_files(tdir, temp) == 0: + try: + cdir = os.path.join(tdir, unhidden_directories(tdir, temp)[0]) + return traverse_subdirs(cdir) + except IndexError: + pass return tdir def handle_archive(path):