diff --git a/src/js/gcode-viewer.js b/src/js/gcode-viewer.js index 2f6e6cf..3b9d7e7 100644 --- a/src/js/gcode-viewer.js +++ b/src/js/gcode-viewer.js @@ -54,7 +54,7 @@ module.exports = { methods: { load: async function(file) { - if (file == this.file) { + if (file != this.file) { return; } diff --git a/src/py/bbctrl/FileHandler.py b/src/py/bbctrl/FileHandler.py index 9b4b20c..b8de974 100644 --- a/src/py/bbctrl/FileHandler.py +++ b/src/py/bbctrl/FileHandler.py @@ -23,7 +23,10 @@ class FileHandler(bbctrl.APIHandler): filename = self.request.path.split('/')[-1] self.uploadFilename = url_unescape(filename) \ - .replace('\\', '/') \ + .encode("ascii", errors="replace") \ + .decode() \ + .replace('\\', '_') \ + .replace('/', '_') \ .replace('#', '-') \ .replace('?', '-') @@ -71,7 +74,8 @@ class FileHandler(bbctrl.APIHandler): def get(self, filename): if not filename: raise HTTPError(400, 'Missing filename') - filename = os.path.basename(filename) + + filename = os.path.basename(url_unescape(filename)) try: with open(self.get_upload(filename).encode('utf8'), 'r') as f: diff --git a/src/py/bbctrl/State.py b/src/py/bbctrl/State.py index e4c4212..e4e3b94 100644 --- a/src/py/bbctrl/State.py +++ b/src/py/bbctrl/State.py @@ -32,7 +32,7 @@ import os import bbctrl from watchdog.observers import Observer from watchdog.events import FileSystemEventHandler - +import glob class UploadChangeHandler(FileSystemEventHandler): def __init__(self, state): self.state = state @@ -123,14 +123,12 @@ class State(object): if not os.path.exists(upload): os.mkdir(upload) - from shutil import copy - copy(bbctrl.get_resource('http/buildbotics.nc'), upload) - for path in os.listdir(upload): - if os.path.isfile(upload + '/' + path): - files.append(path) + files = filter(os.path.isfile, glob.glob(upload + '/*')) + # Sort list of files based on last modification time in ascending order + files = sorted(files, key=os.path.getmtime, reverse=True) + files = list(map(lambda f: f.replace("./upload/", ""), files)) - files.sort() self.set('files', files) if len(files): self.select_file(files[0])