Code coverage report for modules/media.js

Statements: 100% (31 / 31)      Branches: 100% (2 / 2)      Functions: 100% (8 / 8)      Lines: 100% (31 / 31)      Ignored: none     

All files » modules/ » media.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75            1 1 1 1 1 1   1   5   5 5   5   11   10 10 10 10           5   5   10   10     10 10   10   10   82       10 10   10           5             1   5      
/**
 * Created by armin on 11/1/14.
 */
 
'use strict';
 
var cheerio = require('cheerio');
var url = require('url');
var BPromise = require('bluebird');
var helpers = require('./helpers.js');
var util = require('util');
var mime = require('mime');
 
function processMedia(baseUrl, html) {
 
    return new BPromise(function(resolve) {
 
        var $ = cheerio.load(html);
        var linkArray = [];
 
        $('img').each(function() {
 
            if($(this).attr('src')) {
 
                console.log('Found %s', $(this));
                var link = url.resolve(baseUrl, $(this).attr('src'));
                console.log('Link is %s', link);
                linkArray.push(link);
 
            }
 
        });
 
        console.log('Image array: %s', linkArray);
 
        BPromise.map(linkArray, function(link) {
 
            console.log('Image: %s', link);
 
            return helpers.getHTTP(link)
                .then(function(response) {
 
                    var stringData = new Buffer(response.body, 'binary').toString('base64');
                    var dataUri = util.format('data:%s;base64,%s', mime.lookup(link), stringData);
 
                    console.log('Looking for img tag');
 
                    var img = $('img').filter(function() {
 
                        return url.resolve(baseUrl, $(this).attr('src')) === link;
                    });
 
                    //var img = $('img').attr('src', link);
                    console.log('img is %s', img);
                    img.attr('src', dataUri);
 
                    console.log('imageData: %s', response.body.length);
 
                });
        })
            .then(function() {
 
                resolve($.html());
 
            });
 
    });
}
 
exports.processMedia = function(baseUrl, html) {
 
    return processMedia(baseUrl, html);
 
};