-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathindex.js
43 lines (42 loc) · 1.36 KB
/
index.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
var Promise = require('bluebird');
var x = require('x-ray')();
module.exports.getProfile = function(profileUrl) {
return new Promise(function(resolve, reject) {
x(profileUrl, {
name: '#name',
headline: '.headline',
location: '#demographics .locality',
experience: x('#experience .positions', '.position', [{
title: '.item-title',
company: '.item-subtitle',
logo: '.logo img@data-delayed-url',
dateRange: '.date-range',
location: '.location',
description: '.description'
}]),
summary: x('#summary', '.description p@html'),
skills: x('#skills .pills', ['.skill span']),
education: x('#education .schools', '.school', [{
school: '.item-title',
field: '.item-subtitle',
logo: '.logo img@data-delayed-url',
dateRange: '.date-range'
}])
})(function(err, profile) {
if (err) {
return reject(err);
} else {
profile.experience = profile.experience.map(function(experience) {
if (experience.dateRange.indexOf('Present') !== -1) {
experience.employment = 'current';
} else {
experience.employment = 'past';
}
return experience;
});
profile.summary = profile.summary.replace(/<br>/g, ' ');
return resolve(profile);
}
});
});
};