summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/web/userRouter.js20
1 files changed, 11 insertions, 9 deletions
diff --git a/lib/web/userRouter.js b/lib/web/userRouter.js
index db786d53..ca364422 100644
--- a/lib/web/userRouter.js
+++ b/lib/web/userRouter.js
@@ -90,18 +90,20 @@ UserRouter.get('/me/export', function (req, res) {
ownerId: user.id
}
}).then(function (notes) {
- let list = []
+ let filenames = {}
async.each(notes, function (note, callback) {
- let title
- let extension = ''
+ let basename = note.title.replace(/\//g, '-') // Prevent subdirectories
+ let filename
+ let suffix = ''
do {
- title = note.title + extension
- extension++
- } while (list.indexOf(title) !== -1)
+ let seperator = typeof suffix === 'number' ? '-' : ''
+ filename = basename + seperator + suffix + '.md'
+ suffix++
+ } while (filenames[filename])
+ filenames[filename] = true
- list.push(title)
- logger.debug('Write: ' + title + '.md')
- archive.append(Buffer.from(note.content), { name: title + '.md', date: note.lastchangeAt })
+ logger.debug('Write: ' + filename)
+ archive.append(Buffer.from(note.content), { name: filename, date: note.lastchangeAt })
callback(null, null)
}, function (err) {
if (err) {