Changeset 36287 for websites

Show
Ignore:
Timestamp:
12/28/09 08:07:23 (3 years ago)
Author:
NeoCat
Message:

support flickr thumbnail

Location:
websites/twicli
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • websites/twicli/thumbnail.js

    r36282 r36287  
    1212                        if (links[i].href.match(/^http:\/\/twitpic\.com\/(\w+)$/)) { 
    1313                                var id = RegExp.$1; 
    14                                 this.addThumbnail(elem, 'http://twitpic.com/show/thumb/' + id, links[i].href); 
     14                                addThumbnail(elem, 'http://twitpic.com/show/thumb/' + id, links[i].href); 
    1515                        } 
    1616                        else if (links[i].href.match(/^http:\/\/movapic\.com\/pic\/(\w+)$/)) { 
    1717                                var id = RegExp.$1; 
    18                                 this.addThumbnail(elem, 'http://image.movapic.com/pic/t_' + id + '.jpeg', links[i].href); 
     18                                addThumbnail(elem, 'http://image.movapic.com/pic/t_' + id + '.jpeg', links[i].href); 
    1919                        } 
    2020                        else if (links[i].href.match(/^http:\/\/f\.hatena\.ne\.jp\/([\w-_]+)\/(\d{8})(\w+)$/)) { 
     
    2222                                var date = RegExp.$2; 
    2323                                var id = RegExp.$3; 
    24                                 this.addThumbnail(elem, 
     24                                addThumbnail(elem, 
    2525                                                'http://f.hatena.ne.jp/images/fotolife/' + user[0] + '/' + user + 
    2626                                                '/' + date + '/' + date + id + '_120.jpg', 
    2727                                                links[i].href); 
    2828                        } 
     29                        else if (links[i].href.match(/^http:\/\/(www\.flickr\.com)\/photos\/[\w-_@]+\/(\d+)/) || 
     30                                         links[i].href.match(/^http:\/\/(flic\.kr)\/p\/(\w+)/)) { 
     31                                var snipcode = RegExp.$1 == 'flic.kr' ? base58_decode(RegExp.$2) : RegExp.$2; 
     32                                var link = links[i].href; 
     33                                xds.load('http://www.flickr.com/services/rest?method=flickr.photos.getInfo'+ 
     34                                                '&format=json&api_key=9bc57a7248847fd9a80982989e80cfd0&photo_id='+snipcode, 
     35                                                function(x) { 
     36                                                        var p = x.photo; 
     37                                                        if (!p) return; 
     38                                                        addThumbnail(elem, 'http://farm'+p.farm+'.static.flickr.com/'+p.server+'/'+ 
     39                                                                                p.id+'_'+p.secret+'_s.jpg', link) 
     40                                                }, 
     41                                                'jsoncallback'); 
     42                        } 
    2943                } 
    3044        }, 
     45}); 
    3146 
    32         addThumbnail: function(elem, src, link) { 
    33                 var thm = document.createElement('img'); 
    34                 thm.src = src; 
    35                 thm.className = 'thumbnail-image'; 
    36                 var a = document.createElement('a'); 
    37                 a.href = link; 
    38                 a.target = 'twitter'; 
    39                 a.className = 'thumbnail-link'; 
    40                 a.appendChild(thm); 
    41                 elem.insertBefore(a, elem.childNodes[2]); 
     47function base58_decode(snipcode) { 
     48        var alphabet = '123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ'; 
     49        var num = snipcode.length; 
     50        var decoded = 0; 
     51        var multi = 1; 
     52        for (var i = (num-1) ; i >= 0 ; i--) { 
     53                decoded = decoded + multi * alphabet.indexOf(snipcode[i]); 
     54                multi = multi * alphabet.length; 
    4255        } 
    43 }); 
     56        return decoded; 
     57} 
     58 
     59function addThumbnail(elem, src, link) { 
     60        var thm = document.createElement('img'); 
     61        thm.src = src; 
     62        thm.className = 'thumbnail-image'; 
     63        var a = document.createElement('a'); 
     64        a.href = link; 
     65        a.target = 'twitter'; 
     66        a.className = 'thumbnail-link'; 
     67        a.appendChild(thm); 
     68        elem.insertBefore(a, elem.childNodes[2]); 
     69} 
  • websites/twicli/twicli.html

    r36283 r36287  
    111111} 
    112112XDomainScript.prototype = { 
    113         load: function(url, callback) { 
     113        load: function(url, callback, callback_key) { 
    114114                var id = this.cb_cnt++; 
    115115                var ele = document.createElement("script"); 
    116                 ele.src = url + (url.indexOf('?') < 0 ? '?' : '&') + 'callback=xds.cb' + id; 
     116                ele.src = url + (url.indexOf('?') < 0 ? '?' : '&') + (callback_key ? callback_key : 'callback') + '=xds.cb' + id; 
    117117                ele.type = "text/javascript"; 
    118118                this['cbe' + id] = ele;