sbscrape
Version:
Scrape socialblade
85 lines (76 loc) • 1.89 kB
JavaScript
// Generated by CoffeeScript 1.7.1
(function() {
var parsers, root, scrapeit, scrapers;
parsers = require('./parsers');
scrapeit = require('scrapeit');
root = "http://socialblade.com/youtube/user/";
scrapers = module.exports;
scrapers.stats = function(user, cb) {
var retBad, url;
if (user[0] === "'") {
user = user.slice(1);
}
url = root + user;
retBad = function() {
return cb(null, {
bad: true,
badUser: user
});
};
return scrapeit(url, function(err, o) {
var page;
if (err) {
return retBad();
}
page = parsers.page(o);
return cb(null, {
page: page
});
});
};
scrapers.otherchans = function(user, cb) {
var retBad, url;
url = "" + root + user + "/otherchans";
retBad = function() {
return cb(null, {
included: [],
other: []
});
};
return scrapeit(url, function(err, o) {
var rows, _ref, _ref1;
if (err) {
return retBad();
}
rows = (_ref = o("table")) != null ? (_ref1 = _ref[0]) != null ? _ref1.children : void 0 : void 0;
if (!rows) {
return retBad();
}
rows.shift();
return cb(null, parsers.boxes(rows));
});
};
scrapers.similar = function(user, cb) {
var retBad, url;
url = "" + root + user + "/similarrank";
retBad = function() {
return cb(null, {
channel: [],
view: []
});
};
return scrapeit(url, function(err, o) {
var rows, _ref, _ref1;
if (err) {
return retBad();
}
rows = (_ref = o("table")) != null ? (_ref1 = _ref[0]) != null ? _ref1.children : void 0 : void 0;
if (!rows) {
return retBad();
}
rows.shift();
rows.shift();
return cb(null, parsers.boxes.similar(rows));
});
};
}).call(this);