Merge pull request #1084 from dsprenkels/export-subdirs

Prevent subdirectories in user export
This commit is contained in:
Christoph (Sheogorath) Kern 2018-11-28 10:26:41 +01:00 committed by GitHub
commit 769a1c4ccb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -90,18 +90,20 @@ UserRouter.get('/me/export', function (req, res) {
ownerId: user.id ownerId: user.id
} }
}).then(function (notes) { }).then(function (notes) {
let list = [] let filenames = {}
async.each(notes, function (note, callback) { async.each(notes, function (note, callback) {
let title let basename = note.title.replace(/\//g, '-') // Prevent subdirectories
let extension = '' let filename
let suffix = ''
do { do {
title = note.title + extension let seperator = typeof suffix === 'number' ? '-' : ''
extension++ filename = basename + seperator + suffix + '.md'
} while (list.indexOf(title) !== -1) suffix++
} while (filenames[filename])
filenames[filename] = true
list.push(title) logger.debug('Write: ' + filename)
logger.debug('Write: ' + title + '.md') archive.append(Buffer.from(note.content), { name: filename, date: note.lastchangeAt })
archive.append(Buffer.from(note.content), { name: title + '.md', date: note.lastchangeAt })
callback(null, null) callback(null, null)
}, function (err) { }, function (err) {
if (err) { if (err) {