SHOW:
|
|
- or go back to the newest paste.
1 | (function($, jn) { | |
2 | ||
3 | if(_Janetter_Window_Type=="main" || _Janetter_Window_Type=="profile" || _Janetter_Window_Type=="notice"){ | |
4 | ||
5 | - | // entitiesにextended_entitiesを統合(やっつけ) |
5 | + | // entitiesにextended_entitiesを統合 |
6 | var _init = jn.tweetController.prototype.init; | |
7 | jn.tweetController.prototype.init = function (juid, item, options, autoread){ | |
8 | - | if(item && item.entities && item.extended_entities){ |
8 | + | if(item){ |
9 | - | item.entities.extended_media = item.extended_entities.media || []; |
9 | + | if(item.entities && item.extended_entities){ |
10 | item.entities.extended_media = item.extended_entities.media || []; | |
11 | } | |
12 | if(item.retweeted_status && item.retweeted_status.entities && item.retweeted_status.extended_entities){ | |
13 | item.retweeted_status.entities.extended_media = item.retweeted_status.extended_entities.media || []; | |
14 | } | |
15 | } | |
16 | return _init.apply(this, arguments); | |
17 | }; | |
18 | ||
19 | // entitiesLinkの修正 | |
20 | var linkExtendedEntities = function(entities){ | |
21 | var text = ''; | |
22 | if(entities.extended_media){ | |
23 | entities.extended_media.slice(1).forEach(function(e, i){ | |
24 | var link = '<a hidden href="%1" class="link" title="%2"%3%4%5>%6</a>'.format( | |
25 | e.url, | |
26 | (e.expanded_url || e.url).decodeURI().htmlEncode(true), | |
27 | /* そのままだとexpandedが同値になってサムネイル表示してくれないため、#付けて無理やり変える */ | |
28 | e.expanded_url ? ' expanded="' + e.expanded_url.htmlEncode(true) + '#' + (i+2) + '"' : '', | |
29 | e.media_url ? ' media="' + e.media_url.htmlEncode(true) + '"' : '', | |
30 | e.type ? ' type="' + e.type.htmlEncode(true) + '"' : '', | |
31 | e.display_url ? e.display_url.htmlEncode(true) : e.url.htmlEncode(true) | |
32 | ); | |
33 | text += link; | |
34 | }); | |
35 | } | |
36 | - | this.html(this.html + linkExtendedEntities(entities)); |
36 | + | |
37 | }; | |
38 | var _fn_entitiesLink = $.fn.entitiesLink; | |
39 | $.fn.entitiesLink = function(entities){ | |
40 | _fn_entitiesLink.call(this, entities); | |
41 | this.html(this.html() + linkExtendedEntities(entities)); | |
42 | return this; | |
43 | }; | |
44 | var _str_entitiesLink = String.prototype.entitiesLink; | |
45 | String.prototype.entitiesLink = function(entities){ | |
46 | return _str_entitiesLink.call(this, entities) + linkExtendedEntities(entities); | |
47 | }; | |
48 | } | |
49 | ||
50 | })(jQuery, janet); |