imur cors ajax public
by Nick Hulea
JavaScript
var imgurcache = [];
var dude, output;
function convertImgToBase64(url, callback, outputFormat) {
var canvas = document.createElement('CANVAS');
var ctx = canvas.getContext('2d');
var img = new Image();
img.crossOrigin = 'Anonymous';
img.onload = function () {
canvas.height = img.height;
canvas.width = img.width;
ctx.drawImage(img, 0, 0);
var dataURL = canvas.toDataURL(outputFormat || 'image/png');
dude = dataURL;
callback.call(this, dataURL);
canvas = null;
};
img.src = url;
}
function convertImages(urlList) {
var promiseList = [];
promiseList = urlList.map(function (url) {
var dfd = new $.Deferred();
convertImgToBase64(url, function (img) {
dfd.resolve(img);
});
return dfd.promise();
});
return $.when.apply(this, promiseList);
}
function extractToken(hash) {
var match = hash.match(/access_token=(\w+)/);
return !!match && match[1];
}
var num = Math.floor(Math.random() * 10); // 0...6
var token = extractToken(document.location.hash);
var clientId = 'b144351ffb05838';
var auth;
if (token) authorization = 'Bearer ' + token;
else authorization = 'Client-ID ' + clientId;
$.ajax({
url: 'https://api.imgur.com/3/gallery/random/random/page=' + num,
method: 'GET',
headers: {
Authorization: authorization,
Accept: 'application/json'
},
crossDomain: true,
data: {
image: localStorage.dataBase64,
type: 'base64'
},
beforeSend: function () {
$('#preloader').css('display', 'block');
},
success: handleData
});
function handleData(result) {
result.data.map(function (item) {
convertImages([item.link]).done(function () {
console.log(arguments);
});
return [item];
});
}
function test() {
console.log(imgurcache);
return false;
}