From 76c7534ecaa7e105a63dc99b045fed112ec20007 Mon Sep 17 00:00:00 2001 From: sashacmc Date: Sat, 18 Jan 2020 02:29:06 +0100 Subject: [PATCH] Add outpath web interface option --- debian/changelog | 6 ++++++ photo_importer/server.py | 27 +++++++++++++++------------ web/index.html | 22 +++++++++++++++++++--- 3 files changed, 40 insertions(+), 15 deletions(-) diff --git a/debian/changelog b/debian/changelog index 479f229..a91a4bb 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +photo-importer (1.0.1) stable; urgency=medium + + * Add outpath web interface option + + -- Alexander Bushnev Fri, 17 Jan 2020 12:29:53 +0100 + photo-importer (1.0.0) stable; urgency=medium * Initial release. diff --git a/photo_importer/server.py b/photo_importer/server.py index 2982834..89d0583 100755 --- a/photo_importer/server.py +++ b/photo_importer/server.py @@ -146,8 +146,8 @@ class PhotoImporterHandler(http.server.BaseHTTPRequestHandler): self.__ok_response(result) - def __import_start(self, in_path): - self.server.import_start(in_path) + def __import_start(self, in_path, out_path): + self.server.import_start(in_path, out_path) return True def __import_stop(self, dev): @@ -159,22 +159,21 @@ class PhotoImporterHandler(http.server.BaseHTTPRequestHandler): def __import_request(self, params): try: action = params['a'][0] - except Exception as ex: - self.__bad_request_response(str(ex)) - logging.exception(ex) - return - - try: in_path = params['p'][0] except Exception as ex: self.__bad_request_response(str(ex)) logging.exception(ex) return + try: + out_path = params['o'][0] + except Exception as ex: + out_path = self.server.out_path() + result = None if action == 'start': - result = self.__import_start(in_path) + result = self.__import_start(in_path, out_path) self.__ok_response(result) elif action == 'stop': result = self.__import_stop(in_path) @@ -187,8 +186,12 @@ class PhotoImporterHandler(http.server.BaseHTTPRequestHandler): return def __sysinfo_request(self, params): + try: + path = params['p'][0] + except Exception as ex: + path = self.server.out_path() res = {} - du = psutil.disk_usage(self.server.out_path()) + du = psutil.disk_usage(path) mem = psutil.virtual_memory() res['disk_size'] = self.__bytes_to_gbytes(du.total) res['disk_usage'] = du.percent @@ -303,7 +306,7 @@ class PhotoImporterServer(http.server.HTTPServer): def fixed_in_path(self): return self.__fixed_in_path - def import_start(self, in_path): + def import_start(self, in_path, out_path): logging.info('import_start: %s', in_path) if in_path in self.__importers and in_path != self.fixed_in_path(): raise Exception('Already started') @@ -311,7 +314,7 @@ class PhotoImporterServer(http.server.HTTPServer): self.__importers[in_path] = importer.Importer( self.__cfg, in_path, - self.out_path(), + out_path, False) self.__importers[in_path].start() diff --git a/web/index.html b/web/index.html index 5a54a19..e5fa255 100644 --- a/web/index.html +++ b/web/index.html @@ -14,7 +14,8 @@
-
+
+
@@ -106,8 +107,12 @@ function updateSysInfo() { + var argpath = ""; + if (g_outpath) { + argpath = "?p=" + g_outpath; + } $.ajax({ - url: "sysinfo", + url: "sysinfo" + argpath, cache: false, success: function(json) { var data = eval(json); @@ -129,8 +134,12 @@ }); } else if (cmd == "start") { + var argpath = ""; + if (g_outpath) { + argpath = "&o=" + g_outpath; + } $.ajax({ - url: "import?a=" + cmd + "&p=" + dev, + url: "import?a=" + cmd + "&p=" + dev + argpath, type: "POST", success: function() { update() @@ -141,6 +150,13 @@ function init() { + var urlParams = new URLSearchParams(window.location.search); + g_outpath = urlParams.get('outpath'); + + if (g_outpath) { + $("#storagePath").html("

Storage: " + g_outpath + "

"); + } + update() updateSysInfo() }