forked from boazsender/jQuery-Twitter-Plugin
/
jquery.twitter.min.js
11 lines (11 loc) · 4.52 KB
/
jquery.twitter.min.js
1
2
3
4
5
6
7
8
9
10
11
/*
* Twitter Search Plugin jquery.twitter.js
* http://code.bocoup.com/jquery-twitter-plugin/
*
* Copyright (c) 2010 Bocoup, LLC
* Authors: Boaz Sender, Rick Waldron, Nick Cammarata
* Dual licensed under the MIT and GPL licenses.
* http://code.bocoup.com/license/
*
*/
(function(a){linkify=function(){var a="[a-z\\d.-]+://",b="(?:(?:[0-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])\\.){3}(?:[0-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])",c="(?:(?:[^\\s!@#$%^&*()_=+[\\]{}\\\\|;:'\",.<>/?]+)\\.)+",d="(?:ac|ad|aero|ae|af|ag|ai|al|am|an|ao|aq|arpa|ar|asia|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|biz|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|cat|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|coop|com|co|cr|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|info|int|in|io|iq|ir|is|it|je|jm|jobs|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mil|mk|ml|mm|mn|mobi|mo|mp|mq|mr|ms|mt|museum|mu|mv|mw|mx|my|mz|name|na|nc|net|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pro|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tel|tf|tg|th|tj|tk|tl|tm|tn|to|tp|travel|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|xn--0zwm56d|xn--11b5bs3a9aj6g|xn--80akhbyknj4f|xn--9t4b11yi5a|xn--deba0ad|xn--g6w251d|xn--hgbk6aj7f53bba|xn--hlcj6aya9esc7a|xn--jxalpdlp|xn--kgbechtv|xn--zckzah|ye|yt|yu|za|zm|zw)",e="(?:"+c+d+"|"+b+")",f="(?:[;/][^#?<>\\s]*)?",g="(?:\\?[^#<>\\s]*)?(?:#[^<>\\s]*)?",h="\\b"+a+"[^<>\\s]+",i="\\b"+e+f+g+"(?!\\w)",j="mailto:",k="(?:"+j+")?[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@"+e+g+"(?!\\w)",l=new RegExp("(?:"+h+"|"+i+"|"+k+")","ig"),m=new RegExp("^"+a,"i"),n={"'":"`",">":"<",")":"(","]":"[","}":"{","B;":"B+","b:":"b9"},o={callback:function(a,b){return b?'<a href="'+b+'" title="'+b+'">'+a+"</a>":a},punct_regexp:/(?:[!?.,:;'"]|(?:&|&)(?:lt|gt|quot|apos|raquo|laquo|rsaquo|lsaquo);)$/};return function(a,b){b=b||{};var c,d,e,f,g="",h=[],i,k,p,q,r,s,t,u;for(d in o){if(b[d]===undefined){b[d]=o[d]}}while(c=l.exec(a)){e=c[0];k=l.lastIndex;p=k-e.length;if(/[\/:]/.test(a.charAt(p-1))){continue}do{q=e;u=e.substr(-1);t=n[u];if(t){r=e.match(new RegExp("\\"+t+"(?!$)","g"));s=e.match(new RegExp("\\"+u,"g"));if((r?r.length:0)<(s?s.length:0)){e=e.substr(0,e.length-1);k--}}if(b.punct_regexp){e=e.replace(b.punct_regexp,function(a){k-=a.length;return""})}}while(e.length&&e!==q);f=e;if(!m.test(f)){f=(f.indexOf("@")!==-1?!f.indexOf(j)?"":j:!f.indexOf("irc.")?"irc://":!f.indexOf("ftp.")?"ftp://":"http://")+f}if(i!=p){h.push([a.slice(i,p)]);i=k}h.push([e,f])}h.push([a.substr(i)]);for(d=0;d<h.length;d++){g+=b.callback.apply(window,h[d])}return g||a}}();var b=function(a){return a.replace(/[@]+[A-Za-z0-9-_]+/ig,function(a){return a.link("http://twitter.com/"+a.replace("@",""))})},c=function(a){return a.replace(/[#]+[A-Za-z0-9-_]+/ig,function(a){return a.link("http://search.twitter.com/search?q="+a.replace("#","%23"))})};a.twitter=function(b,c){if(!b){return false}var d,e=new RegExp(false);if(typeof b=="string"){d=a.extend({},a.twitter.opts,{q:b})}else{b.rpp=b.limit?b.limit:b.rpp;b.limit=b.limit?b.limit:b.rpp;exclusionsStr=b.exclusions?b.exclusions.replace(" ","|"):false;e=exclusionsStr?new RegExp(exclusionsStr):false;d=a.extend({},a.twitter.opts,b);d.rpp=d.exclusions||!d.replies||!d.retweets?d.rpp*10:d.rpp}a.getJSON("http://search.twitter.com/search.json?callback=?",d,function(a){c(a,d,e)})};a.fn.twitter=function(d){if(!d){return this}return this.each(function(){var e=a(this);a.twitter(d,function(d,f,g){var h=a("<ul>"),i=0;if(d.results&&d.results.length){for(var j in d.results){var k=d.results[j],l=!f.replies&&k.to_user_id?false:true,m=!f.retweets&&k.text.slice(0,2)=="RT"?false:true;if(!l){continue}if(!m){continue}if(g&&g.test(k.text)){continue}var n=a("<li/>",{className:"tweet"});if(f.avatar==true){n.append(a("<a/>",{href:"http://twitter.com/"+k.from_user,html:'<img src="'+k.profile_image_url+'"/>'}))}n.append(a("<span>",{className:"content",html:'<a href="http://twitter.com/'+k.from_user+'">@'+k.from_user+"</a>: "+b(c(linkify(k.text)))})).appendTo(h);i++;if(i===f.limit){break}}e.html(h)}else{e.html(a("<h3/>",{className:"twitter-notFound",text:f.notFoundText}))}})})};a.twitter.opts={limit:7,exclusions:"",notFoundText:"No results found on twitter",replies:true,retweets:true,ands:"",phrase:"",ors:"",nots:"",tag:"",lang:"",from:"",to:"",ref:"",near:"",within:"",units:"",since:"",until:"",tude:"",filter:"",include:"",rpp:5,q:"",avatar:true}})(jQuery)