From 16931460dce67d4bd40f1f094981488d8c472471 Mon Sep 17 00:00:00 2001 From: cms Date: Fri, 25 Dec 2015 14:37:49 +0100 Subject: [PATCH 1/3] fix download action (#229) --- acd_cli.py | 16 +++++++++------- acdcli/cache/query.py | 3 +++ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/acd_cli.py b/acd_cli.py index 8092959..90f64fd 100755 --- a/acd_cli.py +++ b/acd_cli.py @@ -476,7 +476,7 @@ def create_dl_jobs(node_id: str, local_path: str, preserve_mtime: bool, return 0 if node.is_folder: - return traverse_dl_folder(node_id, local_path, preserve_mtime, exclude, jobs) + return traverse_dl_folder(node, local_path, preserve_mtime, exclude, jobs) loc_name = node.name @@ -500,15 +500,13 @@ def create_dl_jobs(node_id: str, local_path: str, preserve_mtime: bool, return 0 -def traverse_dl_folder(node_id: str, local_path: str, preserve_mtime: bool, +def traverse_dl_folder(node: 'Node', local_path: str, preserve_mtime: bool, exclude: 'List[re._pattern_type', jobs: list) -> int: """Duplicates remote folder structure.""" if not local_path: local_path = os.getcwd() - node = cache.get_node(node_id) - if node.name is None: curr_path = os.path.join(local_path, 'acd') else: @@ -521,9 +519,13 @@ def traverse_dl_folder(node_id: str, local_path: str, preserve_mtime: bool, return ERR_CR_FOLDER ret_val = 0 - children = sorted(cache.list_children(node.id)) - for child in children: - ret_val |= create_dl_jobs(child.id, curr_path, preserve_mtime, exclude, jobs) + folders, files = cache.list_children(node.id) + folders, files = sorted(folders), sorted(files) + + for file in files: + ret_val |= create_dl_jobs(file.id, curr_path, preserve_mtime, exclude, jobs) + for folder in folders: + ret_val |= traverse_dl_folder(folder, curr_path, preserve_mtime, exclude, jobs) return ret_val diff --git a/acdcli/cache/query.py b/acdcli/cache/query.py index fc87239..47aa1da 100644 --- a/acdcli/cache/query.py +++ b/acdcli/cache/query.py @@ -93,6 +93,9 @@ def __init__(self, row): except IndexError: self.size = 0 + def __lt__(self, other): + return self.name < other.name + def __hash__(self): return hash(self.id) From c4520bac110f0a4bf22c99f34ab30eb2fe5dd255 Mon Sep 17 00:00:00 2001 From: "Peter G. Marczis" Date: Tue, 5 Dec 2017 11:43:50 +0100 Subject: [PATCH 2/3] Added a python requirements so you can easily install the necessary python packages in a virutalenv. --- python-requirements.txt | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 python-requirements.txt diff --git a/python-requirements.txt b/python-requirements.txt new file mode 100644 index 0000000..de77ce7 --- /dev/null +++ b/python-requirements.txt @@ -0,0 +1,12 @@ +appdirs==1.4.3 +certifi==2017.11.5 +chardet==3.0.4 +dateutils==0.6.6 +idna==2.6 +python-dateutil==2.6.1 +pytz==2017.3 +requests==2.18.4 +requests-toolbelt==0.8.0 +six==1.11.0 +urllib3==1.22 + From ea31874d6e60b584e7dc4bf36bc2923f81d59c64 Mon Sep 17 00:00:00 2001 From: "Peter G. Marczis" Date: Tue, 5 Dec 2017 15:33:40 +0100 Subject: [PATCH 3/3] Added missing requirement --- python-requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/python-requirements.txt b/python-requirements.txt index de77ce7..d9558d9 100644 --- a/python-requirements.txt +++ b/python-requirements.txt @@ -1,6 +1,7 @@ appdirs==1.4.3 certifi==2017.11.5 chardet==3.0.4 +colorama==0.3.9 dateutils==0.6.6 idna==2.6 python-dateutil==2.6.1