Changeset 8118
- Timestamp:
- 03/19/08 07:25:23 (5 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
lang/javascript/userscripts/twitter.twitterstream.user.js
r7876 r8118 64 64 }; 65 65 66 TwitterStream.getDateFromW3CDTF = function(w3cdtf) { 67 var m = /(\d{4})(?:-(0[1-9]|1[0-2])(?:-(0[1-9]|[12]\d|3[01])(?:T([01]\d|2[0-3]):([0-5]\d)(?::([0-5]\d)(?:\.(\d{1,3}))?)?(?:Z|([+-](?:0\d|1[01])):([0-5]\d)))?)?)?/.exec(w3cdtf); 68 if (m) { 69 for ( var i = m.length; i --> 1; ) { 70 m[i] = (m[i] || 0) - 0; 71 } 72 } else { 73 m = ["1970-01-01T00:00:00.0Z", 1970, 1, 1, 0, 0, 0, 0, 0, 0]; 74 } 75 return new Date( Date.UTC( m[1], (m[2] || 1) - 1, m[3], m[4] - m[8], m[5] - (m[0].indexOf("+") > 15 ? m[9] : - m[9]), m[6], m[7] ) ); 76 }; 77 66 78 TwitterStream.getPostContent = function (element, icon) { 67 var date = TwitterStream.$D(element, "abbr", { className : "published" })[0].title .match(/(\d{4})(?:-(0[1-9]|1[0-2])(?:-(0[1-9]|[12]\d|3[01])(?:T([01]\d|2[0-3]):([0-5]\d)(?::([0-5]\d)(?:\.(\d{1,3}))?)?(?:Z|([+-](?:0\d|1[01])):([0-5]\d)))?)?)?/);79 var date = TwitterStream.$D(element, "abbr", { className : "published" })[0].title; 68 80 var name = TwitterStream.$D(element, 'strong')[0].innerHTML; 69 81 var entry = TwitterStream.$D(element, 'span', { className : /(?:^|\s)entry-content(?:\s|$)/ })[0].innerHTML; 70 82 71 if ( date ) { 72 for ( var i = date.length; i --> 1; ) { 73 date[i] = (date[i] || 0) - 0; 74 } 75 } else { 76 date = ["1970-01-01T00:00:00.0Z", 1970, 1, 1, 0, 0, 0, 0, 0, 0]; 77 } 78 date = new Date( Date.UTC( date[1], (date[2] || 1) - 1, date[3], date[4] - date[8], date[5] - (date[0].indexOf("+") > 15 ? date[9] : - date[9]), date[6], date[7] ) ); 83 date = TwitterStream.getDateFromW3CDTF(date); 79 84 name = name.replace(/<[^>]+>/g, ""); 80 85 entry = entry.replace(/^\s+|\s+$|<[^>]+>/g, ""); … … 90 95 91 96 TwitterStream.createPostBody = function (contents) { 92 var length = contents.length; 93 var body = ""; 94 95 if ( length < 1 ) return false; 96 97 contents.reverse(); 98 99 for ( var i = 0; i < length; i++ ) { 100 var content = contents[i]; 97 var i = contents.length; 98 var body = ""; 99 var content; 100 101 while ( i --> 0 ) { 102 content = contents[i]; 101 103 body += content.name + ": " + content.entry + " (" + content.date.toGMTString() + ")\n"; 102 104 } … … 127 129 TwitterStream.executePost = function () { 128 130 var icons = TwitterStream.$D(null, 'img', { src : "http://www.tumblr.com/images/favicon.gif" }); 129 var length = icons.length;130 131 var contents = []; 131 for ( var i = 0; i < length; i++ ) { 132 var icon = icons[i];132 133 icons.forEach(function (icon) { 133 134 var parent = icon.parentNode.parentNode; 134 135 var protected = TwitterStream.$D(parent, 'img', { src : /icon_red_lock\.gif(?:\?\d*)?$/ }); … … 142 143 143 144 contents.push(TwitterStream.getPostContent(parent, icon)); 144 } 145 }); 145 146 146 147 var body = TwitterStream.createPostBody(contents); … … 169 170 }, 170 171 onload : function (response) { 171 var request = this;172 //var request = this; 172 173 if ( response.status == 201 ) { 173 174 GM_setValue("result", "suceeded"); … … 218 219 }); 219 220 var entries = TwitterStream.$D(docs, 'span', { className : /(?:^|\s)entry-content(?:\s|$)/ }); 220 var length = entries.length; 221 222 for ( var i = 0; i < length; i++ ) { 223 var entry = entries[i]; 221 222 entries.forEach(function (entry) { 224 223 var icon = image.cloneNode(false); 225 224 icon.className = "twitter-stream-post-off"; 226 225 icon.addEventListener("click", TwitterStream.setPostContent, false); 227 226 entry.parentNode.insertBefore(icon, entry.parentNode.lastChild); 228 } 227 }); 229 228 }; 230 229
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)