diff --git a/package.json b/package.json
index 23d0562..ca27078 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "twitterlib",
"main": "twitterlib.js",
- "version": "1.1.4",
+ "version": "1.1.5",
"description": "Library for doing all things Twitter API related, with added sauce for filtering, paging and paging",
"homepage": "https://github.com/remy/twitterlib/",
"keywords": [
diff --git a/twitterlib.js b/twitterlib.js
index c0416ab..f1f945f 100644
--- a/twitterlib.js
+++ b/twitterlib.js
@@ -1,5 +1,5 @@
// twitterlib.js (c) 2011 Remy Sharp
-// @version 1.0.9 / Sun Feb 19 23:05:25 2012 +0000
+// @version 1.1.5 / Fri Jun 21 14:02:46 2013 +0100
// MIT license: http://rem.mit-license.org
(function (global) {
var twitterlib = {};
@@ -512,7 +512,7 @@
var val = key == 'limit' ? options[key] + 10 : options[key];
return q + (options[key] === undefined && def !== undefined ? def.substr(1) : val);
- }) + (!!this.accessToken ? '&access_token=' + this.accessToken : '');
+ });
}
function normaliseArgs(options, callback) {
@@ -529,7 +529,17 @@
return options;
}
- // save the last type of request, with all their options - so we can hit twitterlib.next() and it'll automagically prepopulate the filters, etc.
+ function extend(obj, source) {
+ if (source) {
+ for (var prop in source) {
+ obj[prop] = source[prop];
+ }
+ }
+ return obj;
+ }
+
+ // save the last type of request, with all their options - so we can hit
+ // twitterlib.next() and it'll automagically prepopulate the filters, etc.
function setLast(method, arg, options) {
last = {
method: method,
@@ -563,33 +573,32 @@
// i.e. twitterlib.custom('dm', '/proxy.php?page=%page%&type=direct_messages');
// can now be called using twitterlib.dm('rem', function (t) { });
function custom(name, url, defaults) {
- if (url && urls[name] == undefined) urls[name] = url;
- if (this[name] == undefined) {
- this[name] = function (term, options, callback) {
- // handle "termless" custom methods
- if (typeof term == 'function') {
- callback = term;
- term = '';
- } else if (term.toString() == '[Object object]') {
- callback = options;
- options = term;
- term = '';
- }
- options = normaliseArgs(options, callback);
- setLast(name, term, options);
- // slight hack to support my own shortcuts
- options[name] = options.user = term;
- options.search = encodeURIComponent(term);
- if (options.callback) load(getUrl(name, options), options, options.callback);
- return this;
- };
- }
+ if (url) urls[name] = url;
+ this[name] = function (term, options, callback) {
+ // handle "termless" custom methods
+ if (typeof term == 'function') {
+ callback = term;
+ term = '';
+ } else if (term.toString() == '[Object object]') {
+ callback = options;
+ options = term;
+ term = '';
+ }
+ options = normaliseArgs(options, callback);
+ setLast(name, term, options);
+ // slight hack to support my own shortcuts
+ options[name] = options.user = term;
+ options.search = encodeURIComponent(term);
+ options = extend(defaults, options);
+ if (options.callback) load(getUrl(name, options), options, options.callback);
+ return this;
+ };
// makes my code nicer to read when setting up twitterlib object
return this[name];
}
twitterlib = {
- version: '1.0.9', //@version 1.0.9 / Sun Feb 19 23:05:25 2012 +0000
+ version: '1.1.5', //@version 1.1.5 / Fri Jun 21 14:02:46 2013 +0100
// search is an exception case
custom: custom,
getUrl: getUrl,
@@ -653,10 +662,6 @@
if (!window.JSON || !window.sessionStorage) {
caching = false;
}
- },
- setAccessToken: function (token) {
- this.accessToken = token;
- return this;
}
};
diff --git a/twitterlib.min.js b/twitterlib.min.js
index 631ee98..6f799ca 100644
--- a/twitterlib.min.js
+++ b/twitterlib.min.js
@@ -1,4 +1,4 @@
// twitterlib.js (c) 2011 Remy Sharp
-// @version 1.0.9 / Sun Feb 19 23:05:25 2012 +0000
+// @version 1.1.5 / Fri Jun 21 14:02:46 2013 +0100
// MIT license: http://rem.mit-license.org
-(function(a){function u(a){var c='
",c}function v(a){var c=g.getElementById(b+a);c&&h.removeChild(g.getElementById(b+a)),delete j[b+a],f[b+a]=o;try{delete f[b+a]}catch(d){}}function w(a,c,d){var i=g.createElement("script"),k=null;c==o&&(c={}),e++,j["twitterlib"+e]=!0,f["twitterlib"+e]=function(a,c){return function(e){var f=0,g=[];if(e.results){e=e.results,f=e.length;while(f--)e[f].user={id:e[f].from_user_id,screen_name:e[f].from_user,profile_image_url:e[f].profile_image_url},e[f].source=b.ify.entities(e[f].source),g=e[f].created_at.split(" "),e[f].created_at=[g[0],g[2],g[1],g[4],g[5],g[3]].join(" ").replace(/,/,"")}else if(e.length&&e[0].sender){f=e.length;while(f--)e[f].user=e[f].sender,e[f].originalText=e[f].text,e[f].text="@"+e[f].recipient_screen_name+" "+e[f].text}else if(c.rts==1||c.rts=="t"||c.rts==1){f=e.length;while(f--)e[f].retweeted_status&&(e[f].retweeted_status.retweetedby=e[f].user,e[f]=e[f].retweeted_status)}c.originalTweets=e,c.filter&&(e=t.matchTweets(e,c.filter)),c.limit&&c.limit1)try{sessionStorage.setItem("twitterlib.page"+c.page+".tweets",JSON.stringify(e)),sessionStorage.setItem("twitterlib.page"+c.page+".originalTweets",JSON.stringify(c.originalTweets)),sessionStorage.setItem("twitterlib.page"+c.page,"true")}catch(h){}c.cached=!1,d.call(b,e,c),v(a)}}(e,c),k=a.match(/callback=(.*)/),k!=null&&k.length>1?f[k[1]]=f["twitterlib"+e]:a+="&callback=twitterlib"+e;if(!p||c.page<=1||p&&sessionStorage.getItem("twitterlib.page"+c.page)==null)i.src=a,i.id="twitterlib"+e,h.appendChild(i);else if(p){v(e),c.cached=!0,c.originalTweets=JSON.parse(sessionStorage.getItem("twitterlib.page"+c.page+".originalTweets"));var l=JSON.parse(sessionStorage.getItem("twitterlib.page"+c.page+".tweets")||"[]");c.filter&&(l=t.matchTweets(l,c.filter)),c.limit&&c.limit"},l=g.location.protocol.substr(0,4)==="http"?g.location.protocol:"http:",m={search:l+"//search.twitter.com/search.json?q=%search%&page=%page|1%&rpp=%limit|100%&since_id=%since|remove%&result_type=recent&include_entities=true",timeline:l+"//api.twitter.com/1/statuses/user_timeline.json?screen_name=%user%&count=%limit|200%&page=%page|1%&since_id=%since|remove%include_rts=%rts|false%&include_entities=true",list:l+"//api.twitter.com/1/%user%/lists/%list%/statuses.json?page=%page|1%&per_page=%limit|200%&since_id=%since|remove%&include_entities=true&include_rts=%rts|false%",favs:l+"//api.twitter.com/1/favorites/%user%.json?include_entities=true&skip_status=true&page=%page|1%&since_id=%since|remove%",retweets:l+"//api.twitter.com/1/statuses/retweeted_by_user.json?screen_name=%user%&include_entities=true&count=%limit|200%&since_id=%since|remove%&page=%page|1%"},n=m,o,p=!1,q=function(){return{entities:function(a){return a.replace(/(&[a-z0-9]+;)/g,function(a){return k[a]})},link:function(a){return a.replace(/[a-z]+:\/\/([a-z0-9-_]+\.[a-z0-9-_:~\+#%&\?\/.=]+[^:\.,\)\s*$])/ig,function(a,b){return''+(b.length>36?b.substr(0,35)+"…":b)+""})},at:function(a){return a.replace(/(^|[^\w]+)\@([a-zA-Z0-9_]{1,15}(\/[a-zA-Z0-9-_]+)*)/g,function(a,b,c){return b+'@'+c+""})},hash:function(a){return a.replace(/(^|[^&\w'"]+)\#([a-zA-Z0-9_^"^<]+)/g,function(a,b,c){return a.substr(-1)==='"'||a.substr(-1)=="<"?a:b+'#'+c+""})},clean:function(a){return this.hash(this.at(this.link(a)))}}}(),r=function(a){if(a===o)return"";var b=a.text,c=0;if(a.entities){if(a.entities.urls&&a.entities.urls.length)for(c=0;c12&&(b-=12,d="PM"),c.length==1&&(c="0"+c),b+":"+c+" "+d},date:function(b){var c=a[b.getMonth()],d=b.getDate()+"",e=~~d,f=b.getFullYear(),g=(new Date).getFullYear(),h="th";return e%10==1&&d.substr(0,1)!="1"?h="st":e%10==2&&d.substr(0,1)!="1"?h="nd":e%10==3&&d.substr(0,1)!="1"&&(h="rd"),d.substr(0,1)=="0"&&(d=d.substr(1)),c+" "+d+h+(g!=f?", "+f:"")},shortdate:function(b){var c=b.split(" "),d=Date.parse(c[1]+" "+c[2]+", "+c[5]+" "+c[3]),e=new Date(d),f=a[e.getMonth()],g=e.getDate()+"",h=e.getFullYear(),i=(new Date).getFullYear();return i===h?g+" "+f:g+" "+f+(h+"").substr(2,2)},datetime:function(a){var b=a.split(" "),c=new Date(Date.parse(b[1]+" "+b[2]+", "+b[5]+" "+b[3]));return this.time(c)+" "+this.date(c)},relative:function(a){var b=a.split(" "),c=Date.parse(b[1]+" "+b[2]+", "+b[5]+" "+b[3]),d=new Date(c),e=arguments.length>1?arguments[1]:new Date,f=~~((e.getTime()-c)/1e3),g="";return f+=e.getTimezoneOffset()*60,f<=1?g="1 second ago":f<60?g=f+" seconds ago":f<120?g="1 minute ago":f<2700?g=~~(f/60)+" minutes ago":f<10800?g="1 hour ago":f<86400?g=~~(f/3600)+" hours ago":g=this.shortdate(a),g}}}(),t=function(){return{match:function(a,b,c){var d=0,e="",f=a.text.toLowerCase(),g=(!b.and||!b.and.length)&&(!b.or||!b.or.length);typeof b=="string"&&(b=this.format(b));if(b.not&&b.not.length){for(d=0;d
',n+=''+e.user.screen_name+" ",n+='
',n+=t.ify.clean(e.text),n+=' '+t.time.relative(e.created_at)+"",e.source&&(n+=" from "+e.source+""),e.retweetedby&&(n+=" retweeted by "+e.retweetedby.screen_name+""),n+=" ",n}function E(e){var n=o.getElementById(t+e);n&&u.removeChild(o.getElementById(t+e)),delete f[t+e],s[t+e]=d;try{delete s[t+e]}catch(r){}}function S(e,n,r){var a=o.createElement("script"),l=null;n==d&&(n={}),i++,f["twitterlib"+i]=!0,s["twitterlib"+i]=function(e,n){return function(i){var s=0,o=[];s=i.length;while(s--)i[s].originalText=i[s].text,i[s].text=g(i[s]);if(i.results){i=i.results,s=i.length;while(s--)i[s].user={id:i[s].from_user_id,screen_name:i[s].from_user,profile_image_url:i[s].profile_image_url},i[s].source=t.ify.entities(i[s].source),o=i[s].created_at.split(" "),i[s].created_at=[o[0],o[2],o[1],o[4],o[5],o[3]].join(" ").replace(/,/,"")}else if(i.length&&i[0].sender){s=i.length;while(s--)i[s].user=i[s].sender,i[s].originalText=i[s].text,i[s].text="@"+i[s].recipient_screen_name+" "+i[s].text}else if(n.rts==1||n.rts=="t"||n.rts==1){s=i.length;while(s--)i[s].retweeted_status&&(i[s].retweeted_status.retweetedby=i[s].user,i[s]=i[s].retweeted_status)}n.originalTweets=i,n.filter&&(i=b.matchTweets(i,n.filter)),n.limit&&n.limit1)try{sessionStorage.setItem("twitterlib.page"+n.page+".tweets",JSON.stringify(i)),sessionStorage.setItem("twitterlib.page"+n.page+".originalTweets",JSON.stringify(n.originalTweets)),sessionStorage.setItem("twitterlib.page"+n.page,"true")}catch(u){}n.cached=!1,r.call(t,i,n),E(e)}}(i,n),l=e.match(/callback=(.*)/),l!=null&&l.length>1?s[l[1]]=s["twitterlib"+i]:e+="&callback=twitterlib"+i;if(!v||n.page<=1||v&&sessionStorage.getItem("twitterlib.page"+n.page)==null)a.src=e,a.id="twitterlib"+i,u.appendChild(a);else if(v){E(i),n.cached=!0,n.originalTweets=JSON.parse(sessionStorage.getItem("twitterlib.page"+n.page+".originalTweets"));var c=JSON.parse(sessionStorage.getItem("twitterlib.page"+n.page+".tweets")||"[]");n.filter&&(c=b.matchTweets(c,n.filter)),n.limit&&n.limit"},c=o.location.protocol.substr(0,4)==="http"?o.location.protocol:"http:",h={search:c+"//search.twitter.com/search.json?q=%search%&page=%page|1%&rpp=%limit|100%&since_id=%since|remove%&result_type=recent&include_entities=true",timeline:c+"//api.twitter.com/1/statuses/user_timeline.json?screen_name=%user%&count=%limit|200%&page=%page|1%&since_id=%since|remove%include_rts=%rts|false%&include_entities=true",list:c+"//api.twitter.com/1/%user%/lists/%list%/statuses.json?page=%page|1%&per_page=%limit|200%&since_id=%since|remove%&include_entities=true&include_rts=%rts|false%",favs:c+"//api.twitter.com/1/favorites/%user%.json?include_entities=true&skip_status=true&page=%page|1%&since_id=%since|remove%",retweets:c+"//api.twitter.com/1/statuses/retweeted_by_user.json?screen_name=%user%&include_entities=true&count=%limit|200%&since_id=%since|remove%&page=%page|1%"},p=h,d,v=!1,m=function(){return{entities:function(e){return e.replace(/(&[a-z0-9]+;)/g,function(e){return l[e]})},link:function(e){return e.replace(/[a-z]+:\/\/([a-z0-9-_]+\.[a-z0-9-_:~\+#%&\?\/.=]+[^:\.,\)\s*$])/ig,function(e,t){return''+(t.length>36?t.substr(0,35)+"…":t)+""})},at:function(e){return e.replace(/(^|[^\w]+)\@([a-zA-Z0-9_]{1,15}(\/[a-zA-Z0-9-_]+)*)/g,function(e,t,n){return t+'@'+n+""})},hash:function(e){return e.replace(/(^|[^&\w'"]+)\#([a-zA-Z0-9_^"^<]+)/g,function(e,t,n){return e.substr(-1)==='"'||e.substr(-1)=="<"?e:t+'#'+n+""})},clean:function(e){return this.hash(this.at(this.link(e)))}}}(),g=function(e){if(e===d)return"";var t=e.text,n=0;if(e.entities){if(e.entities.urls&&e.entities.urls.length)for(n=0;n12&&(t-=12,r="PM"),n.length==1&&(n="0"+n),t+":"+n+" "+r},date:function(t){var n=e[t.getMonth()],r=t.getDate()+"",i=~~r,s=t.getFullYear(),o=(new Date).getFullYear(),u="th";return i%10==1&&r.substr(0,1)!="1"?u="st":i%10==2&&r.substr(0,1)!="1"?u="nd":i%10==3&&r.substr(0,1)!="1"&&(u="rd"),r.substr(0,1)=="0"&&(r=r.substr(1)),n+" "+r+u+(o!=s?", "+s:"")},shortdate:function(t){var n=t.split(" "),r=Date.parse(n[1]+" "+n[2]+", "+n[5]+" "+n[3]),i=new Date(r),s=e[i.getMonth()],o=i.getDate()+"",u=i.getFullYear(),a=(new Date).getFullYear();return a===u?o+" "+s:o+" "+s+(u+"").substr(2,2)},datetime:function(e){var t=e.split(" "),n=new Date(Date.parse(t[1]+" "+t[2]+", "+t[5]+" "+t[3]));return this.time(n)+" "+this.date(n)},relative:function(e){var t=e.split(" "),n=Date.parse(t[1]+" "+t[2]+", "+t[5]+" "+t[3]),r=new Date(n),i=arguments.length>1?arguments[1]:new Date,s=~~((i.getTime()-n)/1e3),o="";return s+=i.getTimezoneOffset()*60,s<=1?o="1 second ago":s<60?o=s+" seconds ago":s<120?o="1 minute ago":s<2700?o=~~(s/60)+" minutes ago":s<10800?o="1 hour ago":s<86400?o=~~(s/3600)+" hours ago":o=this.shortdate(e),o}}}(),b=function(){return{match:function(e,t,n){var r=0,i="",s=e.text.toLowerCase(),o=(!t.and||!t.and.length)&&(!t.or||!t.or.length);typeof t=="string"&&(t=this.format(t));if(t.not&&t.not.length){for(r=0;r