Changeset 8118

Show
Ignore:
Timestamp:
03/19/08 07:25:23 (5 years ago)
Author:
drry
Message:

lang/javascript/userscripts/twitter.twitterstream.user.js:

  • W3CDTF を外出し。
  • ほか。
Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/javascript/userscripts/twitter.twitterstream.user.js

    r7876 r8118  
    6464                }; 
    6565 
     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 
    6678                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; 
    6880                        var name  = TwitterStream.$D(element, 'strong')[0].innerHTML; 
    6981                        var entry = TwitterStream.$D(element, 'span', { className : /(?:^|\s)entry-content(?:\s|$)/ })[0].innerHTML; 
    7082 
    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); 
    7984                        name  = name.replace(/<[^>]+>/g, ""); 
    8085                        entry = entry.replace(/^\s+|\s+$|<[^>]+>/g, ""); 
     
    9095 
    9196                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]; 
    101103                                body += content.name + ": " + content.entry + " (" + content.date.toGMTString() + ")\n"; 
    102104                        } 
     
    127129                TwitterStream.executePost = function () { 
    128130                        var icons    = TwitterStream.$D(null, 'img', { src : "http://www.tumblr.com/images/favicon.gif" }); 
    129                         var length   = icons.length; 
    130131                        var contents = []; 
    131                         for ( var i = 0; i < length; i++ ) { 
    132                                 var icon      = icons[i]; 
     132 
     133                        icons.forEach(function (icon) { 
    133134                                var parent    = icon.parentNode.parentNode; 
    134135                                var protected = TwitterStream.$D(parent, 'img', { src : /icon_red_lock\.gif(?:\?\d*)?$/ }); 
     
    142143 
    143144                                contents.push(TwitterStream.getPostContent(parent, icon)); 
    144                         } 
     145                        }); 
    145146 
    146147                        var body     = TwitterStream.createPostBody(contents); 
     
    169170                                        }, 
    170171                                        onload  : function (response) { 
    171                                                 var request = this; 
     172                                                //var request = this; 
    172173                                                if ( response.status == 201 ) { 
    173174                                                        GM_setValue("result", "suceeded"); 
     
    218219                        }); 
    219220                        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) { 
    224223                                var icon  = image.cloneNode(false); 
    225224                                icon.className = "twitter-stream-post-off"; 
    226225                                icon.addEventListener("click", TwitterStream.setPostContent, false); 
    227226                                entry.parentNode.insertBefore(icon, entry.parentNode.lastChild); 
    228                         } 
     227                        }); 
    229228                }; 
    230229