Skip to content

Commit

Permalink
Remove '@' from Twitter handles
Browse files Browse the repository at this point in the history
  • Loading branch information
markdalgleish committed Jul 25, 2012
1 parent 9bc3792 commit 5e24eb4
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 12 deletions.
12 changes: 11 additions & 1 deletion lib/helper.js
Expand Up @@ -62,7 +62,17 @@ Helper.prototype = {
},

getTwitterHandle: function(selector) {
return '@' + this.$(selector).attr('href').split('/profile/')[1].replace('/', '');
var twitterHandle,
href = this.$(selector).attr('href'),
text = this.$(selector).text();

if (href && href.indexOf('/profile/') === 0) {
twitterHandle = href.split('/profile/')[1].replace('/', '');
} else if (text.indexOf('@') >= 0) {
twitterHandle = text.replace('@', '');
}

return twitterHandle;
}
};

Expand Down
4 changes: 2 additions & 2 deletions lib/lanyrd-scraper.js
Expand Up @@ -55,15 +55,15 @@ exports.scrape = function(url, callback) {
data.time = helper.getText('.main-date abbr.dtstart .time');

data.hashtag = helper.getText('.item-meta a.hashtag');
data.twitterHandle = helper.getText('.item-meta a.twitter');
data.twitterHandle = helper.getTwitterHandle('.item-meta a.twitter');

data.speakers = [];
$('#speaker-list li').each(function(){
var speaker = {},
$this = $(this);

speaker.name = $this.find('span.name').text();
speaker.twitterHandle = helper.getText($this.find('span.handle'));
speaker.twitterHandle = helper.getTwitterHandle($this.find('span.handle'));

data.speakers.push(speaker);
});
Expand Down
4 changes: 2 additions & 2 deletions test/helper_test.js
Expand Up @@ -94,8 +94,8 @@ exports['getTitle'] = {
}
};

var TWITTER_HANDLE = '@markdalgleish',
$getTwitterHandleContent = $('<div><a id="twitter-handle" href="/profile/' + TWITTER_HANDLE.replace('@','') + '" /></div>');
var TWITTER_HANDLE = 'markdalgleish',
$getTwitterHandleContent = $('<div><a id="twitter-handle" href="/profile/' + TWITTER_HANDLE + '" /></div>');
exports['getTwitterHandle'] = {
'returns the Twitter handle': function(test) {
test.expect(1);
Expand Down
14 changes: 7 additions & 7 deletions test/lanyrd-scraper_test.js
Expand Up @@ -97,14 +97,14 @@ exports['multi-day event'] = {
},
'has Twitter account': function(test) {
test.expect(1);
test.equal(multiDayEventData.twitterHandle, '@webdirections');
test.equal(multiDayEventData.twitterHandle, 'webdirections');
test.done();
},
'has speakers': function(test) {
test.expect(5);
test.equal(multiDayEventData.speakers.length, 19);
test.equal(multiDayEventData.speakers[15].name, 'Mark Dalgleish');
test.equal(multiDayEventData.speakers[15].twitterHandle, '@markdalgleish');
test.equal(multiDayEventData.speakers[15].twitterHandle, 'markdalgleish');
test.equal(multiDayEventData.speakers[11].name, 'Anette Bergo', 'supports speakers without Twitter handles');
test.equal(multiDayEventData.speakers[11].twitterHandle, undefined, 'supports speakers without Twitter handles');
test.done();
Expand Down Expand Up @@ -137,14 +137,14 @@ exports['multi-day event'] = {
test.expect(5);
test.equal(multiDayEventData.sessions[15].speakers.length, 2);
test.equal(multiDayEventData.sessions[15].speakers[0].name, 'Jed Schmidt');
test.equal(multiDayEventData.sessions[15].speakers[0].twitterHandle, '@jedschmidt');
test.equal(multiDayEventData.sessions[15].speakers[0].twitterHandle, 'jedschmidt');
test.equal(multiDayEventData.sessions[15].speakers[1].name, 'Dinkumiser');
test.equal(multiDayEventData.sessions[15].speakers[1].twitterHandle, '@dinkumiser');
test.equal(multiDayEventData.sessions[15].speakers[1].twitterHandle, 'dinkumiser');
test.done();
},
'session supports speakers without twitter handles': function(test) {
test.expect(3);
test.equal(multiDayEventData.sessions[14].speakers[0].twitterHandle, '@markdalgleish');
test.equal(multiDayEventData.sessions[14].speakers[0].twitterHandle, 'markdalgleish');
test.equal(multiDayEventData.sessions[18].speakers[0].name, 'Anette Bergo', 'supports speakers without Twitter handles');
test.equal(multiDayEventData.sessions[18].speakers[0].twitterHandle, undefined, 'supports speakers without Twitter handles');
test.done();
Expand All @@ -159,14 +159,14 @@ exports['multi-day event'] = {
test.expect(3);
test.equal(multiDayEventData.attendees.length, 27);
test.equal(multiDayEventData.attendees[15].name, 'Mark Dalgleish');
test.equal(multiDayEventData.attendees[15].twitterHandle, '@markdalgleish');
test.equal(multiDayEventData.attendees[15].twitterHandle, 'markdalgleish');
test.done();
},
'has trackers': function(test) {
test.expect(3);
test.equal(multiDayEventData.trackers.length, 25);
test.equal(multiDayEventData.trackers[0].name, 'Paul Irish ◕‿◕');
test.equal(multiDayEventData.trackers[0].twitterHandle, '@paul_irish');
test.equal(multiDayEventData.trackers[0].twitterHandle, 'paul_irish');
test.done();
}
};

0 comments on commit 5e24eb4

Please sign in to comment.