Skip to content

Instantly share code, notes, and snippets.

@annie-l
Last active August 29, 2015 14:17
Show Gist options
  • Save annie-l/2e5a7c6417a7bd01b13a to your computer and use it in GitHub Desktop.
Save annie-l/2e5a7c6417a7bd01b13a to your computer and use it in GitHub Desktop.
tweetify: linkify & imagify tweets from twitter api

tweetify.js formats tweet entities from api.twitter.com for html display:

  • user mentions
  • media
  • urls
  • hashtags

before and after:

before after

this function is meant to be used after you retrieve your data from the twitter api. i'm using the https://twitteroauth.com/ library for this.

function tweetify(tweet) {
var text = tweet.text;
var searchMask;
var replaceMask;
if (tweet.entities != null) {
//turn mentions into links
var mentions = tweet.entities.user_mentions;
if (mentions != null) {
for (var i = 0; i < mentions.length; i++) {
var name = mentions[i].screen_name;
searchMask = "@"+name;
var regEx = new RegExp(searchMask, "ig");
replaceMask = "<a href='http://twitter.com/" + name + "' target='_blank'>@" + name + "</a>";
text = text.replace(regEx, replaceMask);
}
}
//turn images/video into thumbnails with links
var media = tweet.entities.media;
if (media != null) {
for (var i = 0; i < media.length; i++) {
var pic = media[i];
searchMask = pic.url;
var regEx = new RegExp(searchMask, "ig");
replaceMask = "<br/><br/><a href='" + pic.url + "' target='_blank'><img src='" + pic.media_url + ":thumb'/></a>";
text = text.replace(regEx, replaceMask);
}
}
//turn urls into links
var urls = tweet.entities.urls;
if (urls != null) {
for (var i = 0; i < urls.length; i++) {
var url = urls[i];
searchMask = url.url;
var regEx = new RegExp(searchMask, "ig");
replaceMask = "<a href='" + url.url + "' target='_blank'>" + url.display_url + "</a>";
text = text.replace(regEx, replaceMask);
}
}
//turn hashtags into links
var hashtags = tweet.entities.hashtags;
if (hashtags != null) {
for (var i = 0; i < hashtags.length; i++) {
var hashtag = hashtags[i];
searchMask = '#' + hashtag.text;
var regEx = new RegExp(searchMask, "ig");
replaceMask = "<a href='http://twitter.com/hashtag/" + hashtag.text + "' target='_blank'>#" + hashtag.text + "</a>";
text = text.replace(regEx, replaceMask);
}
}
}
return text;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment