function get_filename(){ var basename = $("#url").val().replace(/^.*\//,"").replace(/\..*$/,"").replace(/[^-_ a-zA-Z0-9]/g,"") var username = user.username var filename = basename + "-" + username + "-" + (+new Date()) + ".gif" return filename.replace(/ /g,"_").replace(/-+/g,"-") } function save (){ if (! lastGif) return; var filename = get_filename() var blob = dataUriToBlob(lastGif) saveAs(blob, filename); } function saveJSON (data, filename) { var bytes = JSON.stringify(data) var buf = new ArrayBuffer(bytes.length); var arr = new Uint8Array(buf); for (var i = 0; i < bytes.length; i++) { arr[i] = bytes.charCodeAt(i); } var blob = new Blob([arr], { type: "text/json" }); blob.slice = blob.slice || blob.webkitSlice; saveAs(blob, filename); } function upload(uri, filename, tag){ filename = filename || get_filename() uri = uri || lastGif tag = tag || "shader" var blob = dataUriToBlob(uri) uploadImage({ blob: blob, filename: filename, username: user.username, tag: tag, success: function(data){ // data.url // data.filesize // data.success console.log(data); $("#uploaded-url").show().focus().val(data.url) $("#uploaded-url + br").show() status && status("uploaded"); }, error: function(data){ console.log(data) status("error uploading: " + data.error) } }); }