mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Also make recursing through directories work with long paths
This commit is contained in:
parent
d2624dedb8
commit
748152cd7a
@ -5,15 +5,18 @@
|
||||
__license__ = 'GPL v3'
|
||||
__copyright__ = '2013, Kovid Goyal <kovid at kovidgoyal.net>'
|
||||
|
||||
import os, time, re
|
||||
import os
|
||||
import re
|
||||
import time
|
||||
from collections import defaultdict
|
||||
from polyglot.builtins import itervalues, map as it_map, unicode_type
|
||||
from contextlib import contextmanager
|
||||
from functools import partial
|
||||
|
||||
from calibre import prints
|
||||
from calibre.constants import iswindows, ismacos, filesystem_encoding
|
||||
from calibre.constants import filesystem_encoding, ismacos, iswindows
|
||||
from calibre.ebooks import BOOK_EXTENSIONS
|
||||
from calibre.utils.filenames import make_long_path_useable
|
||||
from polyglot.builtins import itervalues, map as it_map, unicode_type
|
||||
|
||||
|
||||
def splitext(path):
|
||||
@ -85,7 +88,7 @@ else:
|
||||
|
||||
|
||||
def listdir(root, sort_by_mtime=False):
|
||||
items = (os.path.join(root, x) for x in unicode_listdir(root))
|
||||
items = (make_long_path_useable(os.path.join(root, x)) for x in unicode_listdir(root))
|
||||
if sort_by_mtime:
|
||||
def safe_mtime(x):
|
||||
try:
|
||||
@ -123,12 +126,13 @@ def run_import_plugins(formats):
|
||||
ans = run_import_plugins(formats, import_ctx['group_id'], import_ctx['tdir'])
|
||||
fm = import_ctx['format_map']
|
||||
for old_path, new_path in zip(formats, ans):
|
||||
new_path = make_long_path_useable(new_path)
|
||||
fm[new_path] = old_path
|
||||
return ans
|
||||
|
||||
|
||||
def find_books_in_directory(dirpath, single_book_per_directory, compiled_rules=(), listdir_impl=listdir):
|
||||
dirpath = os.path.abspath(dirpath)
|
||||
dirpath = make_long_path_useable(os.path.abspath(dirpath))
|
||||
if single_book_per_directory:
|
||||
formats = {}
|
||||
for path in listdir_impl(dirpath):
|
||||
|
Loading…
x
Reference in New Issue
Block a user