//JQuery Twitter Feed. Coded by Tom Elliott @ www.webdevdoor.com (2013) based on https://twitter.com/javascripts/blogger.js //Requires JSON output from authenticating script: http://www.webdevdoor.com/php/authenticating-twitter-feed-timeline-oauth/ $(document).ready(function () { var displaylimit = ; var twitterprofile = ""; var screenname = ""; var showdirecttweets = false; var showretweets = true; var showtweetlinks = true; var showprofilepic = true; var showtweetactions = true; var showretweetindicator = true; var headerHTML = ''; var loadingHTML = ''; headerHTML += ''; //headerHTML += '

'+screenname+'

'; headerHTML += '
Tweets
'; loadingHTML += '
tweet loader
'; $('#twitter-feed').html(headerHTML + loadingHTML); $.getJSON('/_widgets/twitter_assets/get-tweets1.1.php', function(feeds) { //alert(feeds); var feedHTML = ''; var displayCounter = 1; for (var i=0; i 1) && (displayCounter <= displaylimit)) { if (showtweetlinks == true) { status = addlinks(status); } if (displayCounter == 1) { feedHTML += headerHTML; } feedHTML += '
'; feedHTML += '
'; feedHTML += '


'+status+'

'; if ((isaretweet == true) && (showretweetindicator == true)) { feedHTML += '
'; } if (showtweetactions == true) { feedHTML += '
'; } feedHTML += '
'; feedHTML += '
'; displayCounter++; } } } $('#twitter-feed').html(feedHTML); //Add twitter action animation and rollovers if (showtweetactions == true) { $('.twitter-article').hover(function(){ $(this).find('#twitter-actions').css({'display':'block', 'opacity':0, 'margin-top':-20}); $(this).find('#twitter-actions').animate({'opacity':1, 'margin-top':0},200); }, function() { $(this).find('#twitter-actions').animate({'opacity':0, 'margin-top':-20},120, function(){ $(this).css('display', 'none'); }); }); //Add new window for action clicks $('#twitter-actions a').click(function(){ var url = $(this).attr('href'); window.open(url, 'tweet action window', 'width=580,height=500'); return false; }); } }).error(function(jqXHR, textStatus, errorThrown) { var error = ""; if (jqXHR.status === 0) { error = 'Connection problem. Check file path and www vs non-www in getJSON request'; } else if (jqXHR.status == 404) { error = 'Requested page not found. [404]'; } else if (jqXHR.status == 500) { error = 'Internal Server Error [500].'; } else if (exception === 'parsererror') { error = 'Requested JSON parse failed.'; } else if (exception === 'timeout') { error = 'Time out error.'; } else if (exception === 'abort') { error = 'Ajax request aborted.'; } else { error = 'Uncaught Error.\n' + jqXHR.responseText; } //alert("error: " + error); }); //Function modified from Stack Overflow function addlinks(data) { //Add link to all http:// links within tweets data = data.replace(/((https?|s?ftp|ssh)\:\/\/[^"\s\<\>]*[^.,;'">\:\s\<\>\)\]\!])/g, function(url) { return ''+url+''; }); //Add link to @usernames used within tweets data = data.replace(/\B@([_a-z0-9]+)/ig, function(reply) { return ''; }); //Add link to #hastags used within tweets data = data.replace(/\B#([_a-z0-9]+)/ig, function(reply) { return ''; }); return data; } function relative_time(time_value) { var values = time_value.split(" "); time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3]; var parsed_date = Date.parse(time_value); var relative_to = (arguments.length > 1) ? arguments[1] : new Date(); var delta = parseInt((relative_to.getTime() - parsed_date) / 1000); var shortdate = time_value.substr(4,2) + " " + time_value.substr(0,3); delta = delta + (relative_to.getTimezoneOffset() * 60); if (delta < 60) { return '1m'; } else if(delta < 120) { return '1m'; } else if(delta < (60*60)) { return (parseInt(delta / 60)).toString() + 'm'; } else if(delta < (120*60)) { return '1h'; } else if(delta < (24*60*60)) { return (parseInt(delta / 3600)).toString() + 'h'; } else if(delta < (48*60*60)) { //return '1 day'; return shortdate; } else { return shortdate; } } });