image2.js 1.17 KB
module.exports = function (url, opts) {
    if (url) {
        let params = opts.hash;
        let urls = url.split('?');
        let query = urls[1] || '';
        let uri = urls[0];

        if (uri.indexOf('http:') === 0) {
            uri = uri.replace('http:', '');
        }

        if (query) {
            query = query.replace(/{width}/g, params.w).replace(/{height}/g, params.h).replace(/{mode}/g, (params.mode || 2));

            if (query.indexOf('imageView2') === 0) {
                if (params.q && query.indexOf('/q/') > 0) {
                    query = query.replace(/\/q\/\d+/g, '/q/' + params.q);
                } else {
                    query += '/q/' + params.q;
                }
            } else if (query.indexOf('imageMogr2') === 0) {
                if (params.q && query.indexOf('/quality/') > 0) {
                    query = query.replace(/\/quality\/\d+/g, '/quality/' + params.q);
                } else {
                    query += '/quality/' + params.q;
                }
            }
        } else {
            query = 'imageView2/2/interlace/1/q/' + (params.q || 75);
        }
        return uri + '?' + query;
    } else {
        return url;
    }
};