diff --git a/package.json b/package.json index 3b6399cb..51e0144a 100644 --- a/package.json +++ b/package.json @@ -110,6 +110,7 @@ "electron": "^10.2.0", "electron-builder": "^22.10.3", "electron-rebuild": "^2.3.4", + "mime-types": "^2.1.27", "node-abi": "2.19.3", "node-json-minify": "1.0.0", "terser": "^5.5.1" diff --git a/src/classes/filesystem.class.js b/src/classes/filesystem.class.js index dfbdf04b..a75b17c5 100644 --- a/src/classes/filesystem.class.js +++ b/src/classes/filesystem.class.js @@ -554,53 +554,13 @@ class FilesystemDisplay { name = block.name; } + let mime = require("mime-types") + block.path = block.path.replace(/\\/g, "/"); - let filetype = name.split(".")[name.split(".").length - 1]; + let filetype = mime.lookup(name.split(".")[name.split(".").length - 1]); switch (filetype) { - case "xml": - case "yaml": - case "java": - case "cs": - case "cpp": - case "h": - case "html": - case "css": - case "js": - case "md": - case "log": - case "bat": - case "sh": - case "gd": - //To anyone else working with this: Feel free to add on to this list. - Surge - case "txt": - case "json": - fs.readFile(block.path, 'utf-8', (err, data) => { - if (err) { - new Modal({ - type: "info", - title: "Failed to load file: " + block.path, - html: err - }); - console.log(err); - }; - window.keyboard.detach(); - new Modal( - { - type: "custom", - title: _escapeHtml(name), - html: `

`, - buttons: [ - {label:"Save to Disk",action:`window.writeFile('${block.path}')`} - ] - }, () => { - window.keyboard.attach(); - window.term[window.currentTerm].term.focus(); - } - ); - }); - break; - case "pdf": + case "application/pdf": let html = `