up1/static/js/updown.js

46 lines
1.7 KiB
JavaScript
Raw Normal View History

upload.modules.addmodule({
name: 'updown',
init: function () {
},
downloadfromident: function(seed, progress, done, ident) {
var xhr = new XMLHttpRequest()
xhr.onload = this.downloaded.bind(this, seed, progress, done)
xhr.open('GET', (upload.config.server ? upload.config.server : '') + 'i/' + ident.ident)
xhr.responseType = 'blob'
//TODO: xhr.onerror = failed
xhr.addEventListener('progress', progress, false)
xhr.send()
},
downloaded: function (seed, progress, done, response) {
progress('decrypting')
crypt.decrypt(response.target.response, seed).done(done)
},
encrypted: function(progress, done, data) {
var formdata = new FormData()
formdata.append('privkey', 'c61540b5ceecd05092799f936e27755f')
formdata.append('ident', data.ident)
formdata.append('file', data.encrypted)
$.ajax({
url: (upload.config.server ? upload.config.server : '') + 'up',
data: formdata,
cache: false,
processData: false,
contentType: false,
dataType: 'json',
xhr: function () {
var xhr = new XMLHttpRequest()
xhr.upload.addEventListener('progress', progress, false)
return xhr
},
type: 'POST'
}).done(done.bind(undefined, data))
},
download: function (seed, progress, done) {
crypt.ident(seed).done(this.downloadfromident.bind(this, seed, progress, done))
},
upload: function (blob, progress, done) {
crypt.encrypt(blob).done(this.encrypted.bind(this, progress, done))
}
})