Permalink
Cannot retrieve contributors at this time
Fetching contributors…

var cheerio = require('cheerio'), | |
request = require('request'), | |
MDNlinks = require('../../seed/bonfireMDNlinks'), | |
resources = require('./resources.json'); | |
/** | |
* Cached values | |
*/ | |
module.exports = { | |
dasherize: function dasherize(name) { | |
return ('' + name) | |
.toLowerCase() | |
.replace(/\s/g, '-') | |
.replace(/[^a-z0-9\-\.]/gi, ''); | |
}, | |
unDasherize: function unDasherize(name) { | |
return ('' + name) | |
// replace dash with space | |
.replace(/\-/g, ' ') | |
// strip nonalphanumarics chars except whitespace | |
.replace(/[^a-zA-Z\d\s]/g, '') | |
.trim(); | |
}, | |
randomPhrase: function() { | |
return resources.phrases[ | |
Math.floor(Math.random() * resources.phrases.length) | |
]; | |
}, | |
randomVerb: function() { | |
return resources.verbs[ | |
Math.floor(Math.random() * resources.verbs.length) | |
]; | |
}, | |
randomCompliment: function() { | |
return resources.compliments[ | |
Math.floor(Math.random() * resources.compliments.length) | |
]; | |
}, | |
whichEnvironment: function() { | |
return process.env.NODE_ENV; | |
}, | |
getURLTitle: function(url, callback) { | |
var result = { | |
title: '', | |
image: '', | |
url: '', | |
description: '' | |
}; | |
request(url, function(err, response, body) { | |
if (err || response.statusCode !== 200) { | |
return callback(new Error('failed')); | |
} | |
var $ = cheerio.load(body); | |
var metaDescription = $("meta[name='description']"); | |
var metaImage = $("meta[property='og:image']"); | |
var urlImage = metaImage.attr('content') ? | |
metaImage.attr('content') : | |
''; | |
var metaTitle = $('title'); | |
var description = metaDescription.attr('content') ? | |
metaDescription.attr('content') : | |
''; | |
result.title = metaTitle.text().length < 90 ? | |
metaTitle.text() : | |
metaTitle.text().slice(0, 87) + '...'; | |
result.image = urlImage; | |
result.description = description; | |
return callback(null, result); | |
}); | |
}, | |
getMDNLinks: function(links) { | |
if (!links) { | |
return []; | |
} | |
// takes in an array of links, which are strings | |
// for each key value, push the corresponding link | |
// from the MDNlinks object into a new array | |
return links.map(function(value) { | |
return MDNlinks[value]; | |
}); | |
} | |
}; |