(NOTE: need to be logged into DSiPaint for this to work) The profile picture uploader has been patched. You can still upload manually, though you need to do it in your Chrome DevTools.
[a="id="code1"style="display:none]// from https://stackoverflow.com/questions/6150289/how-can-i-convert-an-image-into-base64-string-using-javascript
// thanks Stack Overflow!
// for processing an external URL
const toDataURL = url => fetch("https://corsproxy.io/?" + encodeURI(url))
.then(response => response.blob())
.then(blob => new Promise((resolve, reject) => {
const reader = new FileReader()
reader.onloadend = () => resolve(reader.result)
reader.onerror = reject
reader.readAsDataURL(blob)
}))
// for processing an uploaded image
const toDataURL2 = file =>
new Promise((resolve, reject) => {
const reader = new FileReader();
reader.onloadend = () => resolve(reader.result)
reader.onerror = reject
reader.readAsDataURL(file);
});
// for submitting images to the uploader
const submitImage = dataURL =>
fetch('https://dsipaint.com/paint/includes/ajax_dsipaint_save.php', {
method: "POST",
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
body: `data=${dataURL}`
})
.then(resp => resp.text())
.then(alert, alert)
// clean up extra elements
document.getElementById("trigger").remove();
document.getElementById("code1").remove();
[/a]
[a="id="code2"style="display:none]
// from https://stackoverflow.com/questions/6150289/how-can-i-convert-an-image-into-base64-string-using-javascript
// thanks Stack Overflow!
// for processing an uploaded image
function toDataURL2(file, callback) {
var reader = new FileReader();
reader.onloadend = function() {
// console.log(reader.result);
callback(reader.result);
};
reader.onerror = alert;
reader.readAsDataURL(file);
}
// for processing an external URL
function toDataURL(url, callback) {
var request = new XMLHttpRequest();
request.open("GET", "https://corsproxy.io/?" + encodeURI(url));
request.responseType = "blob";
request.onload = function() {
// console.log(request.response);
if(request.statusText != "OK") toDataURL2(request.response, callback);
else alert(request.response);
}
request.send();
}
// for submitting images to the uploader
function submitImage(dataURL) {
var request = new XMLHttpRequest();
request.open("POST", "https://dsipaint.com/paint/includes/ajax_dsipaint_save.php");
request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
request.onload = function() {
// console.log(request.response);
alert(request.response);
};
request.send("data=" + dataURL);
}