Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 17 additions & 9 deletions lib/post.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,22 @@ function fetchStories(modifier, value, latest, cb) {
}

request(url, function (err, res) {
if (!err && res.statusCode == 200) {
if (err) {
cb(err);
} else if (res.statusCode == 200) {
// Strip out while(1) prepended to res
var data = JSON.parse(res.body.replace('])}while(1);</x>', ''));
cb(data);
// statusCode is 404 if the user doesn't exist
var data;
try {
data = JSON.parse(res.body.replace('])}while(1);</x>', ''));
} catch (parseError) {
cb(parseError);
return;
}
cb(null, data);
} else if (res.statusCode == 404) {
console.log(value + ' is not a valid Medium author.');
process.exit(1);
cb(new Error(value + ' is not a valid Medium author.'));
} else {
cb(new Error('Medium returned HTTP ' + res.statusCode));
}
});
}
Expand Down Expand Up @@ -125,9 +133,9 @@ function processContent(data, modifier, count) {
function getStories(modifier, options) {
var deferred = Q.defer();
var value = options.value, latest = options.latest;
getContent(modifier, value, latest, function (res) {
if (!res) {
return deferred.reject();
getContent(modifier, value, latest, function (err, res) {
if (err) {
return deferred.reject(err);
}
var posts = processContent(res, modifier, options.count);
deferred.resolve(posts);
Expand Down