Fossology Data Collector
Description | This collector scrapes Fossology reports to extract licensing and copyright metrics from them. |
---|---|
Collect Function | function collect(fossologyServerUrl, fossologyId) { var Fs = require('fs'); var _ = require('underscore'); var scraperjs = require('scraperjs'); var url = fossologyServerUrl + '?mod=license&fossologyId'; var projectMetrics = {}; scraperjs.DynamicScraper.create(url).scrape(function() { return $("#lichistogram td").map(function() { return $(this).text(); }).get(); }, function(data) { var fossologyReport = { licenses: [] }; for (var i = 0; i < data.length; i += 3) { var name = data[i + 2]; fossologyReport.licenses.push({ name: name, count: data[i], concluded: data[i + 1], }); if (name == 'No_license_found') { fossologyReport.noLicenseCount = data[i]; } } scraperjs.DynamicScraper.create(url).scrape(function() { return $("#licsummary td").map(function() { return $(this).text(); }).get(); }, function(data) { fossologyReport.fileCount = data[2]; projectMetrics['fossology'] = fossologyReport; }); return projectMetrics; |