1/*___________________________________________________________________________________________________________________________________________________ 2 _ jquery.mb.components _ 3 _ _ 4 _ file: map_overwrite_default_me.js _ 5 _ last modified: 04/06/15 19.49 _ 6 _ _ 7 _ Open Lab s.r.l., Florence - Italy _ 8 _ _ 9 _ email: [email protected] _ 10 _ site: http://pupunzi.com _ 11 _ http://open-lab.com _ 12 _ blog: http://pupunzi.open-lab.com _ 13 _ Q&A: http://jquery.pupunzi.com _ 14 _ _ 15 _ Licences: MIT, GPL _ 16 _ http://www.opensource.org/licenses/mit-license.php _ 17 _ http://www.gnu.org/licenses/gpl.html _ 18 _ _ 19 _ Copyright (c) 2001-2015. Matteo Bicocchi (Pupunzi); _ 20 ___________________________________________________________________________________________________________________________________________________*/ 21 22function replaceDefault() { 23 24 let me = jQuery('figure.wp-block-audio, .mejs-container').not('.wp-audio-playlist .mejs-container'); 25 me.each(function () { 26 let audioUrl = jQuery('audio', jQuery(this)).attr('src'); 27 if (!audioUrl) 28 return; 29 30 let title = isGutenberg ? jQuery('figcaption', jQuery(this)).html() : audioUrl.split('/').pop().split('?')[0]; 31 32 let id = new Date().getTime(); 33 let map = jQuery('<a/>').attr({href: audioUrl, id: id}).html(title); 34 jQuery(this).replaceWith(map); 35 jQuery('#' + id).mb_miniPlayer(miniAudioPlayer_defaults) 36 }); 37 38 39 /* Playlist */ 40 let me_pl = jQuery('.wp-audio-playlist'); 41 me_pl.each(function () { 42 43 var el = jQuery(this); 44 var pl = jQuery('<div/>').addClass('map_pl_container'); 45 46 var albumInfo = jQuery('.wp-playlist-current-item .wp-playlist-caption', el); 47 var infoBox = jQuery('<div/>').addClass('map_album_infobox'); 48 49 albumInfo.find('span').each(function () { 50 var meta = jQuery(this); 51 var span = jQuery('<span/>').html(meta.html()); 52 53 if (meta.is('.wp-playlist-item-title')) 54 span.addClass('map_item_title').append(', '); 55 56 if (meta.is('.wp-playlist-item-artist')) 57 span.addClass('map_item_artist'); 58 59 if (meta.is('.wp-playlist-item-album')) 60 span.addClass('map_item_album'); 61 62 infoBox.append(span) 63 }); 64 65 el.before(pl); 66 pl.append(infoBox); 67 68 var audioUrl = jQuery('audio', jQuery(this)).attr('src'); 69 var title = audioUrl.split('/').pop(); 70 71 var id = new Date().getTime(); 72 var map = jQuery('<a/>').attr({href: audioUrl, id: id}).html(title); 73 pl.append(map); 74 75 var me_pl_elements = jQuery('.wp-playlist-item', jQuery(this)); 76 var opt = {}; 77 jQuery.extend(opt, miniAudioPlayer_defaults, { 78 width: '100%', 79 onEnd: playNext 80 }); 81 var pl_player = jQuery('#' + id).mb_miniPlayer(opt); 82 pl_player.idx = 0; 83 84 function playNext(player) { 85 pl_player.idx++; 86 var audioFile = jQuery('.pl_item').eq(pl_player.idx); 87 if (audioFile.length) 88 setTimeout(function () { 89 audioFile.click() 90 }, 1000); 91 } 92 93 var me_pl_container = jQuery('<div/>').addClass('pl_items_container'); 94 pl.append(me_pl_container); 95 96 var counter = 0; 97 98 me_pl_elements.each(function () { 99 counter++; 100 var elementsUrl = jQuery('a', this).attr('href'); 101 var title = jQuery('.wp-playlist-item-title', this).html() || ''; 102 var author = jQuery('.wp-playlist-item-artist', this).html() || ''; 103 104 var pl_el = jQuery('<div/>').addClass('pl_item').html(counter + '. ' + title + author).css({cursor: 'pointer'}); 105 106 pl_el.data('title', title).data('author', author); 107 108 if (counter === 1) { 109 pl_el.addClass('sel');
110 jQuery('#' + id).mb_miniPlayer_changeFile({mp3: elementsUrl}, title + author) 111 } 112 113 if (miniAudioPlayer_defaults.downloadable) { 114 var dwnload = pl_player[0].player.createDownload(elementsUrl, title); 115 pl_el.append(dwnload); 116 jQuery('.mbMiniPlayer .map_download', pl).remove() 117 } 118 119 pl_el.on('click', function () { 120 121 jQuery('.sel', pl).removeClass('sel'); 122 123 jQuery(this).addClass('sel'); 124 var player = jQuery('#' + id); 125 126 jQuery('.map_item_title', pl).html(pl_el.data('title')); 127 jQuery('.map_item_artist', pl).html(pl_el.data('author')); 128 jQuery('.map_item_album', pl).html(''); 129 130 player.mb_miniPlayer_changeFile({mp3: elementsUrl}, title + author); 131 player.mb_miniPlayer_play(); 132 }); 133 134 me_pl_container.append(pl_el) 135 }); 136 137 el.remove() 138 139 }) 140 141}
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.