From 0bc9374a7d7c119c7b8031c37ac6ff5c46fc4f7b Mon Sep 17 00:00:00 2001 From: Tamas Kocsis Date: Fri, 4 Sep 2020 18:14:22 +0200 Subject: [PATCH] Optional stats to dirList websocket API command --- src/Ui/UiWebsocket.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/Ui/UiWebsocket.py b/src/Ui/UiWebsocket.py index 59f7ffe3..a7cade76 100644 --- a/src/Ui/UiWebsocket.py +++ b/src/Ui/UiWebsocket.py @@ -6,6 +6,7 @@ import shutil import re import copy import logging +import stat import gevent @@ -655,9 +656,19 @@ class UiWebsocket(object): # List directories in a directory @flag.async_run - def actionDirList(self, to, inner_path): + def actionDirList(self, to, inner_path, stats=False): try: - return list(self.site.storage.list(inner_path)) + if stats: + back = [] + for file_name in self.site.storage.list(inner_path): + file_stats = os.stat(self.site.storage.getPath(inner_path + "/" + file_name)) + is_dir = stat.S_ISDIR(file_stats.st_mode) + back.append( + {"name": file_name, "size": file_stats.st_size, "is_dir": is_dir} + ) + return back + else: + return list(self.site.storage.list(inner_path)) except Exception as err: self.log.error("dirList %s error: %s" % (inner_path, Debug.formatException(err))) return {"error": Debug.formatExceptionMessage(err)}