1/* 2 * ç¾å¨æ¾éä¸ã®çªçµã表示ããã 3 * 4 * http://rakuraku2.bangumi.org/nowonair?channelIndex=1 5 * 6 * ç¾å¨æ¾éä¸ã®çªçµã表示ãã以éã«æ¾éãããçªçµãæ¾éæéã®æé ã§è¡¨ç¤ºããã 7 * 表示ããçªçµãç¡ãå ´åã¯ãæ èªä½ãé表示ã 8 * ç»åã¯ãµã ãã¤ã«ã代表ã«ãããçªçµãã´ã®åªå é ä½ã§æä¸ä½ã®ãã®ã1æè¡¨ç¤ºã 9 * ç»åããªãå ´åã¯ãNoImageãç»åã表示ããã 10 * ç¾å¨æ¾éä¸ã®çªçµã«ãNOW OAãã®ã©ãã«ã表示ããã 11 * ç»åããã³æ¾éæ¥æã»çªçµã¿ã¤ãã«ãã¯ãªãã¯ãããå ´åã¯ãå½åã¯â http://sample.rakuraku.bangumi.org/eventâã®éçãã¼ã¸ã«é·ç§»ããã 12 * çªçµè¡¨ããã³çªçµè©³ç´°ã®JS/CSSã®å®è£ ãå®äºããããçªçµè©³ç´°ãã¼ã¸ã¸ã®ãã¼ã¸é·ç§»ã¸åãæ¿ããããã ãã以ä¸ã®å ´åã¯é¤ãã 13 * ãé¢é£URLãã®ãã«ãã´ãªIDãããKEYSTATIONãã®çªçµã¯ããé¢é£URLãã®ãURLãã«ãã¼ã¸é·ç§»ããã 14 */ 15(function($) { 16 'use strict'; 17 18 // Dom loaded. 19 $(function() { 20 $.getJSON('https://rakuraku2.bangumi.org/nowonair?callback=?', { 21 // ãã©ã¡ã¼ã¿ 22 channelIndex: 1 23 }, function(response) { 24 25 var now = moment(); 26 var nowYyyymmddhhmmii = now.format('YYYYMMDDHHmmss'); 27 28 // ç¾å¨æ¾éä¸ã®çªçµã表示ãã以éã«æ¾éãããçªçµãæ¾éæéã®æé ã§è¡¨ç¤ºããã 29 // 表示ããçªçµãç¡ãå ´åã¯ãæ èªä½ãé表示ã 30 var programs = []; 31 $.each(response.programs, function(i, program) { 32 if (program.s <= nowYyyymmddhhmmii && program.e > nowYyyymmddhhmmii) { // æ¾éä¸ã®çªçµãã¿ã¤ãã£ã 33 programs.push(program); 34 if (i + 1 <= response.programs.length - 1) { 35 programs.push(response.programs[i + 1]) 36 } 37 if (i + 2 <= response.programs.length - 1) { 38 programs.push(response.programs[i + 2]) 39 } 40 return false; 41 } 42 }); 43 44 // DOMæä½ãè¡ãHTMLãåå¾ 45 var $block = $('[data-nowonair-block]'); 46 var $template = $block.find('[data-program]:first').clone(); 47 $block.find('[data-program]').remove(); 48 49 // DOMæä½ã§ çªçµã表示ãã 50 $.each(programs, function(i, program) { 51 var $item = $template.clone(); 52 $item.find('[data-title]').text(program.title[0].string); 53 $item.find('[data-url]').attr('href', eventUrl(program)); 54 $item.find('[data-img]').attr('src', eventImageUrl(program)); 55 var s = moment(program.s, 'YYYYMMDDHHmmss'); 56 var e = moment(program.e, 'YYYYMMDDHHmmss'); 57 $item.find('[data-date]').text(s.format('HH:mm')); 58 if (i > 0) { 59 $item.find('.now_oa').remove(); 60 } 61 $block.append($item); 62 }); 63 $block.fadeIn(); 64 }); 65 }); 66 67 // ç»åã¯ãµã ãã¤ã«ã代表ã«ãããçªçµãã´ã®åªå é ä½ã§æä¸ä½ã®ãã®ã1æè¡¨ç¤ºã 68 // ç»åããªãå ´åã¯ãNoImageãç»åã表示ããã 69 var eventImageUrl = function(program) { 70 if (program.pictures) { 71 for (var i in program.pictures) { 72 var picture = program.pictures[i]; 73 if (picture.cid == 'THUMB') { 74 return picture.url; 75 } 76 } 77 for (var i in program.pictures) { 78 var picture = program.pictures[i]; 79 if (picture.cid == 'MainCut') { 80 return picture.url; 81 } 82 } 83 for (var i in program.pictures) { 84 var picture = program.pictures[i]; 85 if (picture.cid == 'LOGO') { 86 return picture.url; 87 } 88 } 89 } 90 return 'https://www.qab.co.jp/timetable/nowonair/noimg.png'; 91 }; 92 93 // ç»åããã³æ¾éæ¥æã»çªçµã¿ã¤ãã«ãã¯ãªãã¯ãããå ´åã¯ãå½åã¯â http://sample.rakuraku.bangumi.org/eventâã®éçãã¼ã¸ã«é·ç§»ããã 94 // çªçµè¡¨ããã³çªçµè©³ç´°ã®JS/CSSã®å®è£ ãå®äºããããçªçµè©³ç´°ãã¼ã¸ã¸ã®ãã¼ã¸é·ç§»ã¸åãæ¿ããããã ãã以ä¸ã®å ´åã¯é¤ãã 95 // ãé¢é£URLãã®ãã«ãã´ãªIDãããKEYSTATIONãã®çªçµã¯ããé¢é£URLãã®ãURLãã«ãã¼ã¸é·ç§»ããã 96 var eventUrl = function(program) { 97 if (program.rurls) { 98 for (var i in program.rurls) { 99 var url = program.rurls[i]; 100 if (url.cid == 'KEYSTATION') { 101 return url.url; 102 } 103 } 104 } 105 return 'https://www.qab.co.jp/timetable/index.php?' + 'p=' + program.pid + '&s=' + program.sid + '&e=' + program.eid + '&ed=' + program.edt; 106 } 107 108})(jQuery);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.