Backup: All exports are now 'light' exports

This commit is contained in:
Scott Nonnenberg 2018-03-08 17:18:10 -08:00 committed by Scott Nonnenberg
parent e583434366
commit c0c758d459
No known key found for this signature in database
GPG key ID: 5F82280C35134661

View file

@ -102,31 +102,24 @@ function createOutputStream(writer) {
};
}
async function exportNonMessages(db, parent, options) {
async function exportNonMessages(db, parent) {
const writer = await createFileAndWriter(parent, 'db.json');
return exportToJsonFile(db, writer, options);
return exportToJsonFile(db, writer);
}
function exportToJsonFile(db, fileWriter, options) {
options = options || {};
_.defaults(options, { excludeClientConfig: false });
function exportToJsonFile(db, fileWriter) {
return new Promise((resolve, reject) => {
let storeNames = db.objectStoreNames;
storeNames = _.without(storeNames, 'messages');
if (options.excludeClientConfig) {
console.log('exportToJsonFile: excluding client config from export');
storeNames = _.without(
storeNames,
'items',
'signedPreKeys',
'preKeys',
'identityKeys',
'sessions',
'unprocessed' // since we won't be able to decrypt them anyway
);
}
storeNames = _.without(
storeNames,
'messages',
'items',
'signedPreKeys',
'preKeys',
'identityKeys',
'sessions',
'unprocessed'
);
const exportedStoreNames = [];
if (storeNames.length === 0) {
@ -908,12 +901,12 @@ function getDirectoryForExport() {
return getDirectory(options);
}
async function exportToDirectory(directory, options) {
async function exportToDirectory(directory) {
const name = `Signal Export ${getTimestamp()}`;
try {
const db = await Whisper.Database.open();
const dir = await createDirectory(directory, name);
await exportNonMessages(db, dir, options);
await exportNonMessages(db, dir);
await exportConversations(db, dir);
console.log('done backing up!');