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;
}