Example #1
0
  return Promise.mapSeries(_.values(specs), function (swagger) {
    if (_.isUndefined(swagger.info['x-logo']))
      return swagger;

    var url = swagger.info['x-logo'].url;
    assert(url.indexOf('#') === -1);
    return makeRequest('get', url, {encoding: null})
      .spread(function(response, data) {

        var extension = URI(url).suffix();
        if (!extension) {
          var mime = response.headers['content-type'];
          assert(mime.match('image/'));
          extension = MIME.extension(mime);
          assert(extension);
        }

        var logoFile = 'cache/' + util.getSwaggerPath(swagger, 'logo.' + extension);
        util.saveFile(logoFile, data);

        //Modify object to 
        swagger.info['x-logo'].url = specRootUrl + logoFile;

        return swagger;
      });
  });
Example #2
0
function fetchPage(url, parseFn) {
  url = baseUrl + url;
  //Forbid redirects, since ProgrammableWeb has duplicates and even loops.
  return makeRequest('get', url, {followRedirect: false})
    .spread(gcHacks.recreateReturnObjectAndGcCollect(function (response, body) {
      return parseFn(cheerio.load(body));
    }));
}
Example #3
0
converter.ResourceReaders.url = function (url) {
  var options = {
    headers: {
      'Accept': 'application/json,*/*',
    }
  };
  return makeRequest('get', url, options)
    .then(([, data]) => data);
}
Example #4
0
converter.ResourceReaders.url = function (url, callback) {
  var options = {
    headers: {
      'Accept': 'application/json,*/*',
    }
  };
  makeRequest('get', url, options)
    .spread(function (response, data) {
      return data;
    })
    .asCallback(callback);
}
Example #5
0
function saveShield(subject, status, color) {
  function escape(obj) {
    var str = _.isString(obj) ? obj : obj.toString();
    return str.replace(/_/g, '__').replace(/-/g, '--').replace(/ /g, '_');
  }
  function join(left, right) {
    return left + '-' + right;
  }

  var text = join(escape(subject), escape(status));
  var url =  'https://img.shields.io/badge/' + join(text, color) + '.svg';

  return makeRequest('get', url, {encoding: null})
    .spread(function(response, data) {
      var filename = escape(subject).toLowerCase() + '_banner.svg';
      util.saveFile(filename, data);
    });
}
Example #6
0
function cacheLogo(url) {
  assert(url.indexOf('#') === -1);
  return makeRequest('get', url, {encoding: null})
    .spread(function(response, data) {
      var logoFile = 'cache/logo/' + util.urlToFilename(url, true);

      if (!URI(url).suffix()) {
        var mime = response.headers['content-type'];
        assert(mime.match('image/'));
        var extension = MIME.extension(mime);
        assert(extension);
        logoFile += `.${extension}`;
      }

      util.saveFile(deployDir(logoFile), data);
      return rootUrl(logoFile);
    });
}
Example #7
0
function saveShield(subject, status, color, icon) {
  function escape(obj) {
    return obj.toString().replace(/_/g, '__').replace(/-/g, '--').replace(/ /g, '_');
  }

  subject = escape(subject);
  status = escape(status);

  var url = new URI(`https://img.shields.io/badge/${subject}-${status}-${color}.svg`);
  if (icon) {
    var base64 = new Buffer(icon).toString('base64');
    url.addQuery('logo', 'data:image/png;base64,' + base64);
  }

  return makeRequest('get', url.href(), {encoding: null})
    .spread(function(response, data) {
      util.saveFile(`badges/${subject.toLowerCase()}_banner.svg`, data);
    });
}