Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/PhieF/CarnetElectron.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhie <phie@phie.ovh>2021-02-18 01:37:51 +0300
committerPhie <phie@phie.ovh>2021-02-18 01:37:51 +0300
commitb91931dea404fa56260a0f92b751674d86969760 (patch)
treec389b49da39699fd6c03986ab275315af4162cba
parent251653fbe827138ba9c4ff053a672a32a8f5a3dd (diff)
export note folder
-rw-r--r--server/server.js38
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?")) {