mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Traverse subdirectories.
This commit is contained in:
parent
817461bdfe
commit
a71d0dc341
@ -46,17 +46,20 @@ def find_htmlfile(dir):
|
|||||||
return os.path.join(dir, file)
|
return os.path.join(dir, file)
|
||||||
finally:
|
finally:
|
||||||
os.chdir(cwd)
|
os.chdir(cwd)
|
||||||
|
|
||||||
|
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)
|
||||||
|
return tdir
|
||||||
|
|
||||||
def handle_archive(path):
|
def handle_archive(path):
|
||||||
tdir = tempfile.mkdtemp(prefix=__appname__+'_')
|
tdir = tempfile.mkdtemp(prefix=__appname__+'_')
|
||||||
extract(path, tdir)
|
extract(path, tdir)
|
||||||
files = []
|
files = []
|
||||||
cdir = tdir
|
cdir = traverse_subdirs(tdir)
|
||||||
temp = os.listdir(tdir)
|
|
||||||
file = None
|
file = None
|
||||||
if len(temp) == 1 and os.path.isdir(os.path.join(tdir, temp[0])):
|
|
||||||
cdir = os.path.join(tdir, temp[0])
|
|
||||||
for ext in ('lit', 'rtf', 'pdf', 'txt'):
|
for ext in ('lit', 'rtf', 'pdf', 'txt'):
|
||||||
pat = os.path.join(cdir, '*.'+ext)
|
pat = os.path.join(cdir, '*.'+ext)
|
||||||
files.extend(glob.glob(pat))
|
files.extend(glob.glob(pat))
|
||||||
@ -93,8 +96,7 @@ def process_file(path, options, logger=None):
|
|||||||
except:
|
except:
|
||||||
logger.exception(' ')
|
logger.exception(' ')
|
||||||
if not newpath:
|
if not newpath:
|
||||||
logger.critical('Could not find ebook in archive')
|
raise UnknownFormatError('Could not find ebook in archive')
|
||||||
return 1
|
|
||||||
path = newpath
|
path = newpath
|
||||||
logger.info('Found ebook in archive: %s', path)
|
logger.info('Found ebook in archive: %s', path)
|
||||||
try:
|
try:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user