mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2024-11-23 18:17:20 +00:00
Allow browser-based file reading to use deserializers for binary files
This commit is contained in:
parent
3a2ea9b98b
commit
05b32728bc
@ -1118,29 +1118,24 @@ exports.readFile = function(file,callback) {
|
|||||||
var reader = new FileReader();
|
var reader = new FileReader();
|
||||||
// Onload
|
// Onload
|
||||||
reader.onload = function(event) {
|
reader.onload = function(event) {
|
||||||
// Deserialise the file contents
|
|
||||||
var text = event.target.result,
|
var text = event.target.result,
|
||||||
tiddlerFields = {title: file.name || "Untitled", type: type};
|
tiddlerFields = {title: file.name || "Untitled", type: type};
|
||||||
// Are we binary?
|
|
||||||
if(isBinary) {
|
if(isBinary) {
|
||||||
// The base64 section starts after the first comma in the data URI
|
|
||||||
var commaPos = text.indexOf(",");
|
var commaPos = text.indexOf(",");
|
||||||
if(commaPos !== -1) {
|
if(commaPos !== -1) {
|
||||||
tiddlerFields.text = text.substr(commaPos+1);
|
text = text.substr(commaPos + 1);
|
||||||
callback([tiddlerFields]);
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
// Check whether this is an encrypted TiddlyWiki file
|
||||||
|
var encryptedJson = $tw.utils.extractEncryptedStoreArea(text);
|
||||||
|
if(encryptedJson) {
|
||||||
|
// If so, attempt to decrypt it with the current password
|
||||||
|
$tw.utils.decryptStoreAreaInteractive(encryptedJson,function(tiddlers) {
|
||||||
|
callback(tiddlers);
|
||||||
|
});
|
||||||
} else {
|
} else {
|
||||||
// Check whether this is an encrypted TiddlyWiki file
|
// Otherwise, just try to deserialise any tiddlers in the file
|
||||||
var encryptedJson = $tw.utils.extractEncryptedStoreArea(text);
|
callback(self.deserializeTiddlers(type,text,tiddlerFields));
|
||||||
if(encryptedJson) {
|
|
||||||
// If so, attempt to decrypt it with the current password
|
|
||||||
$tw.utils.decryptStoreAreaInteractive(encryptedJson,function(tiddlers) {
|
|
||||||
callback(tiddlers);
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
// Otherwise, just try to deserialise any tiddlers in the file
|
|
||||||
callback(self.deserializeTiddlers(type,text,tiddlerFields));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
// Kick off the read
|
// Kick off the read
|
||||||
@ -1218,4 +1213,13 @@ exports.invokeUpgraders = function(titles,tiddlers) {
|
|||||||
return messages;
|
return messages;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
})();
|
||||||
|
t++) {
|
||||||
|
var upgrader = this.upgraderModules[t],
|
||||||
|
upgraderMessages = upgrader.upgrade(this,titles,tiddlers);
|
||||||
|
$tw.utils.extend(messages,upgraderMessages);
|
||||||
|
}
|
||||||
|
return messages;
|
||||||
|
};
|
||||||
|
|
||||||
})();
|
})();
|
||||||
|
Loading…
Reference in New Issue
Block a user