diff options
author | Phie <phie@phie.ovh> | 2021-02-18 01:37:51 +0300 |
---|---|---|
committer | Phie <phie@phie.ovh> | 2021-02-18 01:37:51 +0300 |
commit | b91931dea404fa56260a0f92b751674d86969760 (patch) | |
tree | c389b49da39699fd6c03986ab275315af4162cba | |
parent | 251653fbe827138ba9c4ff053a672a32a8f5a3dd (diff) |
export note folder
-rw-r--r-- | server/server.js | 38 |
1 files changed, 36 insertions, 2 deletions
diff --git a/server/server.js b/server/server.js index 12270a0..1443907 100644 --- a/server/server.js +++ b/server/server.js @@ -133,9 +133,43 @@ var handle = function (method, path, data, callback) { return; case "/note/get_note": console.log("get note " + settingsHelper.getNotePath() + "/" + args['path']) - fs.readFile(settingsHelper.getNotePath() + "/" + args['path'], "base64", function (err, dataZ) { - callback(err, dataZ) + fs.stat(settingsHelper.getNotePath() + "/" + args['path'], (err, stat) => { + console.log("get note stat " + err) + + if (err) { + callback(undefined) + return + } + if (stat.isFile()) { + console.log("get note file") + + fs.readFile(settingsHelper.getNotePath() + "/" + args['path'], "base64", function (err, dataZ) { + callback(err, dataZ) + }) + } else { + console.log("get note folder") + require('mkdirp').sync(getTmpPath() + "/exported"); + const tmppath = getTmpPath() + "/exported/note.sqd"; + + var fs = require('fs'); + var archiver = require('archiver'); + console.logDebug("start") + var archive = archiver.create('zip'); + var output = fs.createWriteStream(tmppath); + output.on('close', function () { + fs.readFile(tmppath, "base64", function (err, dataZ) { + callback(err, dataZ) + }) + }); + archive.pipe(output); + var compressor = this; + archive + .directory(settingsHelper.getNotePath() + "/" + args['path'], false) + .finalize(); + } + }) + return; } if (path.startsWith("/metadata?")) { |