hexo-theme-shokax 0.2.9 → 0.2.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_config.yml +4 -4
 - package/layout/_mixin/comment.pug +2 -1
 - package/layout/_partials/layout.pug +8 -8
 - package/layout/post.pug +2 -1
 - package/package.json +1 -1
 - package/source/js/_app/components.js +26 -27
 - package/source/js/_app/fireworks.js +28 -42
 - package/source/js/_app/global.js +23 -23
 - package/source/js/_app/library.js +37 -37
 - package/source/js/_app/page.js +76 -77
 - package/source/js/_app/player.js +87 -91
 - package/source/js/_app/vue.js +6 -6
 
    
        package/source/js/_app/player.js
    CHANGED
    
    | 
         @@ -1,20 +1,20 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            let NOWPLAYING = null;
         
     | 
| 
       2 
2 
     | 
    
         
             
            const isMobile = /mobile/i.test(window.navigator.userAgent);
         
     | 
| 
       3 
     | 
    
         
            -
            const mediaPlayer =  
     | 
| 
      
 3 
     | 
    
         
            +
            const mediaPlayer = (t, config) => {
         
     | 
| 
       4 
4 
     | 
    
         
             
                const buttons = {
         
     | 
| 
       5 
5 
     | 
    
         
             
                    el: {},
         
     | 
| 
       6 
     | 
    
         
            -
                    create 
     | 
| 
      
 6 
     | 
    
         
            +
                    create() {
         
     | 
| 
       7 
7 
     | 
    
         
             
                        if (!t.player.options.btns) {
         
     | 
| 
       8 
8 
     | 
    
         
             
                            return;
         
     | 
| 
       9 
9 
     | 
    
         
             
                        }
         
     | 
| 
       10 
     | 
    
         
            -
                        t.player.options.btns.forEach( 
     | 
| 
      
 10 
     | 
    
         
            +
                        t.player.options.btns.forEach((item) => {
         
     | 
| 
       11 
11 
     | 
    
         
             
                            if (buttons.el[item]) {
         
     | 
| 
       12 
12 
     | 
    
         
             
                                return;
         
     | 
| 
       13 
13 
     | 
    
         
             
                            }
         
     | 
| 
       14 
14 
     | 
    
         
             
                            buttons.el[item] = t.createChild('div', {
         
     | 
| 
       15 
15 
     | 
    
         
             
                                className: item + ' btn',
         
     | 
| 
       16 
     | 
    
         
            -
                                onclick 
     | 
| 
       17 
     | 
    
         
            -
                                    t.player.fetch().then( 
     | 
| 
      
 16 
     | 
    
         
            +
                                onclick(event) {
         
     | 
| 
      
 17 
     | 
    
         
            +
                                    t.player.fetch().then(() => {
         
     | 
| 
       18 
18 
     | 
    
         
             
                                        t.player.options.events[item](event);
         
     | 
| 
       19 
19 
     | 
    
         
             
                                    });
         
     | 
| 
       20 
20 
     | 
    
         
             
                                }
         
     | 
| 
         @@ -34,12 +34,12 @@ const mediaPlayer = function (t, config) { 
     | 
|
| 
       34 
34 
     | 
    
         
             
                            return;
         
     | 
| 
       35 
35 
     | 
    
         
             
                        }
         
     | 
| 
       36 
36 
     | 
    
         
             
                        const that = controller;
         
     | 
| 
       37 
     | 
    
         
            -
                        t.player.options.controls.forEach( 
     | 
| 
      
 37 
     | 
    
         
            +
                        t.player.options.controls.forEach((item) => {
         
     | 
| 
       38 
38 
     | 
    
         
             
                            if (that.btns[item]) {
         
     | 
| 
       39 
39 
     | 
    
         
             
                                return;
         
     | 
| 
       40 
40 
     | 
    
         
             
                            }
         
     | 
| 
       41 
41 
     | 
    
         
             
                            const opt = {
         
     | 
| 
       42 
     | 
    
         
            -
                                onclick 
     | 
| 
      
 42 
     | 
    
         
            +
                                onclick(event) {
         
     | 
| 
       43 
43 
     | 
    
         
             
                                    that.events[item] ? that.events[item](event) : t.player.options.events[item](event);
         
     | 
| 
       44 
44 
     | 
    
         
             
                                }
         
     | 
| 
       45 
45 
     | 
    
         
             
                            };
         
     | 
| 
         @@ -63,7 +63,7 @@ const mediaPlayer = function (t, config) { 
     | 
|
| 
       63 
63 
     | 
    
         
             
                        that.btns.volume.bar = that.btns.volume.child('.bar');
         
     | 
| 
       64 
64 
     | 
    
         
             
                    },
         
     | 
| 
       65 
65 
     | 
    
         
             
                    events: {
         
     | 
| 
       66 
     | 
    
         
            -
                        mode 
     | 
| 
      
 66 
     | 
    
         
            +
                        mode(e) {
         
     | 
| 
       67 
67 
     | 
    
         
             
                            switch (t.player.options.mode) {
         
     | 
| 
       68 
68 
     | 
    
         
             
                                case 'loop':
         
     | 
| 
       69 
69 
     | 
    
         
             
                                    t.player.options.mode = 'random';
         
     | 
| 
         @@ -77,16 +77,16 @@ const mediaPlayer = function (t, config) { 
     | 
|
| 
       77 
77 
     | 
    
         
             
                            controller.btns.mode.className = 'mode ' + t.player.options.mode + ' btn';
         
     | 
| 
       78 
78 
     | 
    
         
             
                            $storage.set('_PlayerMode', t.player.options.mode);
         
     | 
| 
       79 
79 
     | 
    
         
             
                        },
         
     | 
| 
       80 
     | 
    
         
            -
                        volume 
     | 
| 
      
 80 
     | 
    
         
            +
                        volume(e) {
         
     | 
| 
       81 
81 
     | 
    
         
             
                            e.preventDefault();
         
     | 
| 
       82 
82 
     | 
    
         
             
                            const current = e.currentTarget;
         
     | 
| 
       83 
83 
     | 
    
         
             
                            let drag = false;
         
     | 
| 
       84 
     | 
    
         
            -
                            const thumbMove =  
     | 
| 
      
 84 
     | 
    
         
            +
                            const thumbMove = (e) => {
         
     | 
| 
       85 
85 
     | 
    
         
             
                                e.preventDefault();
         
     | 
| 
       86 
86 
     | 
    
         
             
                                t.player.volume(controller.percent(e, current));
         
     | 
| 
       87 
87 
     | 
    
         
             
                                drag = true;
         
     | 
| 
       88 
88 
     | 
    
         
             
                            };
         
     | 
| 
       89 
     | 
    
         
            -
                            const thumbUp =  
     | 
| 
      
 89 
     | 
    
         
            +
                            const thumbUp = (e) => {
         
     | 
| 
       90 
90 
     | 
    
         
             
                                e.preventDefault();
         
     | 
| 
       91 
91 
     | 
    
         
             
                                current.removeEventListener(utils.nameMap.dragEnd, thumbUp);
         
     | 
| 
       92 
92 
     | 
    
         
             
                                current.removeEventListener(utils.nameMap.dragMove, thumbMove);
         
     | 
| 
         @@ -108,20 +108,20 @@ const mediaPlayer = function (t, config) { 
     | 
|
| 
       108 
108 
     | 
    
         
             
                            current.addEventListener(utils.nameMap.dragMove, thumbMove);
         
     | 
| 
       109 
109 
     | 
    
         
             
                            current.addEventListener(utils.nameMap.dragEnd, thumbUp);
         
     | 
| 
       110 
110 
     | 
    
         
             
                        },
         
     | 
| 
       111 
     | 
    
         
            -
                        backward 
     | 
| 
      
 111 
     | 
    
         
            +
                        backward(e) {
         
     | 
| 
       112 
112 
     | 
    
         
             
                            controller.step = 'prev';
         
     | 
| 
       113 
113 
     | 
    
         
             
                            t.player.mode();
         
     | 
| 
       114 
114 
     | 
    
         
             
                        },
         
     | 
| 
       115 
     | 
    
         
            -
                        forward 
     | 
| 
      
 115 
     | 
    
         
            +
                        forward(e) {
         
     | 
| 
       116 
116 
     | 
    
         
             
                            controller.step = 'next';
         
     | 
| 
       117 
117 
     | 
    
         
             
                            t.player.mode();
         
     | 
| 
       118 
118 
     | 
    
         
             
                        }
         
     | 
| 
       119 
119 
     | 
    
         
             
                    },
         
     | 
| 
       120 
     | 
    
         
            -
                    update 
     | 
| 
      
 120 
     | 
    
         
            +
                    update(percent) {
         
     | 
| 
       121 
121 
     | 
    
         
             
                        controller.btns.volume.className = 'volume ' + (!source.muted && percent > 0 ? 'on' : 'off') + ' btn';
         
     | 
| 
       122 
122 
     | 
    
         
             
                        controller.btns.volume.bar.changeOrGetWidth(Math.floor(percent * 100) + '%');
         
     | 
| 
       123 
123 
     | 
    
         
             
                    },
         
     | 
| 
       124 
     | 
    
         
            -
                    percent 
     | 
| 
      
 124 
     | 
    
         
            +
                    percent(e, el) {
         
     | 
| 
       125 
125 
     | 
    
         
             
                        let percentage = ((e.clientX || e.changedTouches[0].clientX) - el.left()) / el.changeOrGetWidth();
         
     | 
| 
       126 
126 
     | 
    
         
             
                        percentage = Math.max(percentage, 0);
         
     | 
| 
       127 
127 
     | 
    
         
             
                        return Math.min(percentage, 1);
         
     | 
| 
         @@ -130,7 +130,7 @@ const mediaPlayer = function (t, config) { 
     | 
|
| 
       130 
130 
     | 
    
         
             
                const progress = {
         
     | 
| 
       131 
131 
     | 
    
         
             
                    el: null,
         
     | 
| 
       132 
132 
     | 
    
         
             
                    bar: null,
         
     | 
| 
       133 
     | 
    
         
            -
                    create 
     | 
| 
      
 133 
     | 
    
         
            +
                    create() {
         
     | 
| 
       134 
134 
     | 
    
         
             
                        const current = playlist.current().el;
         
     | 
| 
       135 
135 
     | 
    
         
             
                        if (current) {
         
     | 
| 
       136 
136 
     | 
    
         
             
                            if (progress.el) {
         
     | 
| 
         @@ -150,11 +150,11 @@ const mediaPlayer = function (t, config) { 
     | 
|
| 
       150 
150 
     | 
    
         
             
                            playlist.scroll();
         
     | 
| 
       151 
151 
     | 
    
         
             
                        }
         
     | 
| 
       152 
152 
     | 
    
         
             
                    },
         
     | 
| 
       153 
     | 
    
         
            -
                    update 
     | 
| 
      
 153 
     | 
    
         
            +
                    update(percent) {
         
     | 
| 
       154 
154 
     | 
    
         
             
                        progress.bar.changeOrGetWidth(Math.floor(percent * 100) + '%');
         
     | 
| 
       155 
155 
     | 
    
         
             
                        progress.el.attr('data-ptime', utils.secondToTime(percent * source.duration));
         
     | 
| 
       156 
156 
     | 
    
         
             
                    },
         
     | 
| 
       157 
     | 
    
         
            -
                    seeking 
     | 
| 
      
 157 
     | 
    
         
            +
                    seeking(type) {
         
     | 
| 
       158 
158 
     | 
    
         
             
                        if (type) {
         
     | 
| 
       159 
159 
     | 
    
         
             
                            progress.el.addClass('seeking');
         
     | 
| 
       160 
160 
     | 
    
         
             
                        }
         
     | 
| 
         @@ -162,21 +162,21 @@ const mediaPlayer = function (t, config) { 
     | 
|
| 
       162 
162 
     | 
    
         
             
                            progress.el.removeClass('seeking');
         
     | 
| 
       163 
163 
     | 
    
         
             
                        }
         
     | 
| 
       164 
164 
     | 
    
         
             
                    },
         
     | 
| 
       165 
     | 
    
         
            -
                    percent 
     | 
| 
      
 165 
     | 
    
         
            +
                    percent(e, el) {
         
     | 
| 
       166 
166 
     | 
    
         
             
                        let percentage = ((e.clientX || e.changedTouches[0].clientX) - el.left()) / el.changeOrGetWidth();
         
     | 
| 
       167 
167 
     | 
    
         
             
                        percentage = Math.max(percentage, 0);
         
     | 
| 
       168 
168 
     | 
    
         
             
                        return Math.min(percentage, 1);
         
     | 
| 
       169 
169 
     | 
    
         
             
                    },
         
     | 
| 
       170 
     | 
    
         
            -
                    drag 
     | 
| 
      
 170 
     | 
    
         
            +
                    drag(e) {
         
     | 
| 
       171 
171 
     | 
    
         
             
                        e.preventDefault();
         
     | 
| 
       172 
172 
     | 
    
         
             
                        const current = playlist.current().el;
         
     | 
| 
       173 
     | 
    
         
            -
                        const thumbMove =  
     | 
| 
      
 173 
     | 
    
         
            +
                        const thumbMove = (e) => {
         
     | 
| 
       174 
174 
     | 
    
         
             
                            e.preventDefault();
         
     | 
| 
       175 
175 
     | 
    
         
             
                            const percentage = progress.percent(e, current);
         
     | 
| 
       176 
176 
     | 
    
         
             
                            progress.update(percentage);
         
     | 
| 
       177 
177 
     | 
    
         
             
                            lyrics.update(percentage * source.duration);
         
     | 
| 
       178 
178 
     | 
    
         
             
                        };
         
     | 
| 
       179 
     | 
    
         
            -
                        const thumbUp =  
     | 
| 
      
 179 
     | 
    
         
            +
                        const thumbUp = (e) => {
         
     | 
| 
       180 
180 
     | 
    
         
             
                            e.preventDefault();
         
     | 
| 
       181 
181 
     | 
    
         
             
                            current.removeEventListener(utils.nameMap.dragEnd, thumbUp);
         
     | 
| 
       182 
182 
     | 
    
         
             
                            current.removeEventListener(utils.nameMap.dragMove, thumbMove);
         
     | 
| 
         @@ -194,7 +194,7 @@ const mediaPlayer = function (t, config) { 
     | 
|
| 
       194 
194 
     | 
    
         
             
                };
         
     | 
| 
       195 
195 
     | 
    
         
             
                const preview = {
         
     | 
| 
       196 
196 
     | 
    
         
             
                    el: null,
         
     | 
| 
       197 
     | 
    
         
            -
                    create 
     | 
| 
      
 197 
     | 
    
         
            +
                    create() {
         
     | 
| 
       198 
198 
     | 
    
         
             
                        const current = playlist.current();
         
     | 
| 
       199 
199 
     | 
    
         
             
                        preview.el.innerHTML = '<div class="cover"><div class="disc"><img src="' + (current.cover) + '" class="blur"  alt="music cover"/></div></div>' +
         
     | 
| 
       200 
200 
     | 
    
         
             
                            '<div class="info"><h4 class="title">' + current.name + '</h4><span>' + current.artist + '</span>' +
         
     | 
| 
         @@ -210,7 +210,7 @@ const mediaPlayer = function (t, config) { 
     | 
|
| 
       210 
210 
     | 
    
         
             
                    index: -1,
         
     | 
| 
       211 
211 
     | 
    
         
             
                    errnum: 0,
         
     | 
| 
       212 
212 
     | 
    
         
             
                    add: (group, list) => {
         
     | 
| 
       213 
     | 
    
         
            -
                        list.forEach( 
     | 
| 
      
 213 
     | 
    
         
            +
                        list.forEach((item) => {
         
     | 
| 
       214 
214 
     | 
    
         
             
                            item.group = group;
         
     | 
| 
       215 
215 
     | 
    
         
             
                            item.name = item.name || item.title || 'Meida name';
         
     | 
| 
       216 
216 
     | 
    
         
             
                            item.artist = item.artist || item.author || 'Anonymous';
         
     | 
| 
         @@ -219,7 +219,7 @@ const mediaPlayer = function (t, config) { 
     | 
|
| 
       219 
219 
     | 
    
         
             
                            playlist.data.push(item);
         
     | 
| 
       220 
220 
     | 
    
         
             
                        });
         
     | 
| 
       221 
221 
     | 
    
         
             
                    },
         
     | 
| 
       222 
     | 
    
         
            -
                    clear 
     | 
| 
      
 222 
     | 
    
         
            +
                    clear() {
         
     | 
| 
       223 
223 
     | 
    
         
             
                        playlist.data = [];
         
     | 
| 
       224 
224 
     | 
    
         
             
                        playlist.el.innerHTML = '';
         
     | 
| 
       225 
225 
     | 
    
         
             
                        if (playlist.index !== -1) {
         
     | 
| 
         @@ -227,9 +227,9 @@ const mediaPlayer = function (t, config) { 
     | 
|
| 
       227 
227 
     | 
    
         
             
                            t.player.fetch();
         
     | 
| 
       228 
228 
     | 
    
         
             
                        }
         
     | 
| 
       229 
229 
     | 
    
         
             
                    },
         
     | 
| 
       230 
     | 
    
         
            -
                    create 
     | 
| 
      
 230 
     | 
    
         
            +
                    create() {
         
     | 
| 
       231 
231 
     | 
    
         
             
                        const el = playlist.el;
         
     | 
| 
       232 
     | 
    
         
            -
                        playlist.data.map( 
     | 
| 
      
 232 
     | 
    
         
            +
                        playlist.data.map((item, index) => {
         
     | 
| 
       233 
233 
     | 
    
         
             
                            if (item.el) {
         
     | 
| 
       234 
234 
     | 
    
         
             
                                return null;
         
     | 
| 
       235 
235 
     | 
    
         
             
                            }
         
     | 
| 
         @@ -249,7 +249,7 @@ const mediaPlayer = function (t, config) { 
     | 
|
| 
       249 
249 
     | 
    
         
             
                            item.el = tab.child('ol').createChild('li', {
         
     | 
| 
       250 
250 
     | 
    
         
             
                                title: item.name + ' - ' + item.artist,
         
     | 
| 
       251 
251 
     | 
    
         
             
                                innerHTML: '<span class="info"><span>' + item.name + '</span><span>' + item.artist + '</span></span>',
         
     | 
| 
       252 
     | 
    
         
            -
                                onclick 
     | 
| 
      
 252 
     | 
    
         
            +
                                onclick(event) {
         
     | 
| 
       253 
253 
     | 
    
         
             
                                    const current = event.currentTarget;
         
     | 
| 
       254 
254 
     | 
    
         
             
                                    if (playlist.index === index && progress.el) {
         
     | 
| 
       255 
255 
     | 
    
         
             
                                        if (source.paused) {
         
     | 
| 
         @@ -268,10 +268,10 @@ const mediaPlayer = function (t, config) { 
     | 
|
| 
       268 
268 
     | 
    
         
             
                        });
         
     | 
| 
       269 
269 
     | 
    
         
             
                        tabFormat();
         
     | 
| 
       270 
270 
     | 
    
         
             
                    },
         
     | 
| 
       271 
     | 
    
         
            -
                    current 
     | 
| 
      
 271 
     | 
    
         
            +
                    current() {
         
     | 
| 
       272 
272 
     | 
    
         
             
                        return this.data[this.index];
         
     | 
| 
       273 
273 
     | 
    
         
             
                    },
         
     | 
| 
       274 
     | 
    
         
            -
                    scroll 
     | 
| 
      
 274 
     | 
    
         
            +
                    scroll() {
         
     | 
| 
       275 
275 
     | 
    
         
             
                        const item = this.current();
         
     | 
| 
       276 
276 
     | 
    
         
             
                        let li = this.el.child('li.active');
         
     | 
| 
       277 
277 
     | 
    
         
             
                        li && li.removeClass('active');
         
     | 
| 
         @@ -284,14 +284,14 @@ const mediaPlayer = function (t, config) { 
     | 
|
| 
       284 
284 
     | 
    
         
             
                        pageScroll(item.el, item.el.offsetTop);
         
     | 
| 
       285 
285 
     | 
    
         
             
                        return this;
         
     | 
| 
       286 
286 
     | 
    
         
             
                    },
         
     | 
| 
       287 
     | 
    
         
            -
                    title 
     | 
| 
      
 287 
     | 
    
         
            +
                    title() {
         
     | 
| 
       288 
288 
     | 
    
         
             
                        if (source.paused) {
         
     | 
| 
       289 
289 
     | 
    
         
             
                            return;
         
     | 
| 
       290 
290 
     | 
    
         
             
                        }
         
     | 
| 
       291 
291 
     | 
    
         
             
                        const current = this.current();
         
     | 
| 
       292 
292 
     | 
    
         
             
                        document.title = 'Now Playing...' + current.name + ' - ' + current.artist + ' | ' + originTitle;
         
     | 
| 
       293 
293 
     | 
    
         
             
                    },
         
     | 
| 
       294 
     | 
    
         
            -
                    error 
     | 
| 
      
 294 
     | 
    
         
            +
                    error() {
         
     | 
| 
       295 
295 
     | 
    
         
             
                        const current = this.current();
         
     | 
| 
       296 
296 
     | 
    
         
             
                        current.el.removeClass('current').addClass('error');
         
     | 
| 
       297 
297 
     | 
    
         
             
                        current.error = true;
         
     | 
| 
         @@ -300,7 +300,7 @@ const mediaPlayer = function (t, config) { 
     | 
|
| 
       300 
300 
     | 
    
         
             
                };
         
     | 
| 
       301 
301 
     | 
    
         
             
                const info = {
         
     | 
| 
       302 
302 
     | 
    
         
             
                    el: null,
         
     | 
| 
       303 
     | 
    
         
            -
                    create 
     | 
| 
      
 303 
     | 
    
         
            +
                    create() {
         
     | 
| 
       304 
304 
     | 
    
         
             
                        if (this.el) {
         
     | 
| 
       305 
305 
     | 
    
         
             
                            return;
         
     | 
| 
       306 
306 
     | 
    
         
             
                        }
         
     | 
| 
         @@ -312,10 +312,10 @@ const mediaPlayer = function (t, config) { 
     | 
|
| 
       312 
312 
     | 
    
         
             
                        playlist.el = this.el.child('.playlist');
         
     | 
| 
       313 
313 
     | 
    
         
             
                        controller.el = this.el.child('.controller');
         
     | 
| 
       314 
314 
     | 
    
         
             
                    },
         
     | 
| 
       315 
     | 
    
         
            -
                    hide 
     | 
| 
      
 315 
     | 
    
         
            +
                    hide() {
         
     | 
| 
       316 
316 
     | 
    
         
             
                        const el = this.el;
         
     | 
| 
       317 
317 
     | 
    
         
             
                        el.addClass('hide');
         
     | 
| 
       318 
     | 
    
         
            -
                        window.setTimeout( 
     | 
| 
      
 318 
     | 
    
         
            +
                        window.setTimeout(() => {
         
     | 
| 
       319 
319 
     | 
    
         
             
                            el.removeClass('show hide');
         
     | 
| 
       320 
320 
     | 
    
         
             
                        }, 300);
         
     | 
| 
       321 
321 
     | 
    
         
             
                    }
         
     | 
| 
         @@ -326,7 +326,7 @@ const mediaPlayer = function (t, config) { 
     | 
|
| 
       326 
326 
     | 
    
         
             
                    btns: ['play-pause', 'music'],
         
     | 
| 
       327 
327 
     | 
    
         
             
                    controls: ['mode', 'backward', 'play-pause', 'forward', 'volume'],
         
     | 
| 
       328 
328 
     | 
    
         
             
                    events: {
         
     | 
| 
       329 
     | 
    
         
            -
                        'play-pause' 
     | 
| 
      
 329 
     | 
    
         
            +
                        'play-pause'(event) {
         
     | 
| 
       330 
330 
     | 
    
         
             
                            if (source.paused) {
         
     | 
| 
       331 
331 
     | 
    
         
             
                                t.player.play();
         
     | 
| 
       332 
332 
     | 
    
         
             
                            }
         
     | 
| 
         @@ -334,7 +334,7 @@ const mediaPlayer = function (t, config) { 
     | 
|
| 
       334 
334 
     | 
    
         
             
                                t.player.pause();
         
     | 
| 
       335 
335 
     | 
    
         
             
                            }
         
     | 
| 
       336 
336 
     | 
    
         
             
                        },
         
     | 
| 
       337 
     | 
    
         
            -
                        music 
     | 
| 
      
 337 
     | 
    
         
            +
                        music(event) {
         
     | 
| 
       338 
338 
     | 
    
         
             
                            if (info.el.hasClass('show')) {
         
     | 
| 
       339 
339 
     | 
    
         
             
                                info.hide();
         
     | 
| 
       340 
340 
     | 
    
         
             
                            }
         
     | 
| 
         @@ -346,10 +346,10 @@ const mediaPlayer = function (t, config) { 
     | 
|
| 
       346 
346 
     | 
    
         
             
                    }
         
     | 
| 
       347 
347 
     | 
    
         
             
                };
         
     | 
| 
       348 
348 
     | 
    
         
             
                const utils = {
         
     | 
| 
       349 
     | 
    
         
            -
                    random 
     | 
| 
      
 349 
     | 
    
         
            +
                    random(len) {
         
     | 
| 
       350 
350 
     | 
    
         
             
                        return Math.floor((Math.random() * len));
         
     | 
| 
       351 
351 
     | 
    
         
             
                    },
         
     | 
| 
       352 
     | 
    
         
            -
                    parse 
     | 
| 
      
 352 
     | 
    
         
            +
                    parse(link) {
         
     | 
| 
       353 
353 
     | 
    
         
             
                        let result = [];
         
     | 
| 
       354 
354 
     | 
    
         
             
                        [
         
     | 
| 
       355 
355 
     | 
    
         
             
                            ['music.163.com.*song.*id=(\\d+)', 'netease', 'song'],
         
     | 
| 
         @@ -366,7 +366,7 @@ const mediaPlayer = function (t, config) { 
     | 
|
| 
       366 
366 
     | 
    
         
             
                            ['xiami.com.*album/(\\w+)', 'xiami', 'album'],
         
     | 
| 
       367 
367 
     | 
    
         
             
                            ['xiami.com.*artist/(\\w+)', 'xiami', 'artist'],
         
     | 
| 
       368 
368 
     | 
    
         
             
                            ['xiami.com.*collect/(\\w+)', 'xiami', 'playlist']
         
     | 
| 
       369 
     | 
    
         
            -
                        ].forEach( 
     | 
| 
      
 369 
     | 
    
         
            +
                        ].forEach((rule) => {
         
     | 
| 
       370 
370 
     | 
    
         
             
                            const patt = new RegExp(rule[0]);
         
     | 
| 
       371 
371 
     | 
    
         
             
                            const res = patt.exec(link);
         
     | 
| 
       372 
372 
     | 
    
         
             
                            if (res !== null) {
         
     | 
| 
         @@ -375,10 +375,10 @@ const mediaPlayer = function (t, config) { 
     | 
|
| 
       375 
375 
     | 
    
         
             
                        });
         
     | 
| 
       376 
376 
     | 
    
         
             
                        return result;
         
     | 
| 
       377 
377 
     | 
    
         
             
                    },
         
     | 
| 
       378 
     | 
    
         
            -
                    fetch 
     | 
| 
      
 378 
     | 
    
         
            +
                    fetch(source) {
         
     | 
| 
       379 
379 
     | 
    
         
             
                        const list = [];
         
     | 
| 
       380 
     | 
    
         
            -
                        return new Promise( 
     | 
| 
       381 
     | 
    
         
            -
                            source.forEach( 
     | 
| 
      
 380 
     | 
    
         
            +
                        return new Promise((resolve, reject) => {
         
     | 
| 
      
 381 
     | 
    
         
            +
                            source.forEach((raw) => {
         
     | 
| 
       382 
382 
     | 
    
         
             
                                const meta = utils.parse(raw);
         
     | 
| 
       383 
383 
     | 
    
         
             
                                if (meta[0]) {
         
     | 
| 
       384 
384 
     | 
    
         
             
                                    const skey = JSON.stringify(meta);
         
     | 
| 
         @@ -389,9 +389,9 @@ const mediaPlayer = function (t, config) { 
     | 
|
| 
       389 
389 
     | 
    
         
             
                                    }
         
     | 
| 
       390 
390 
     | 
    
         
             
                                    else {
         
     | 
| 
       391 
391 
     | 
    
         
             
                                        fetch(`${CONFIG.playerAPI}/meting/?server=` + meta[0] + '&type=' + meta[1] + '&id=' + meta[2] + '&r=' + Math.random())
         
     | 
| 
       392 
     | 
    
         
            -
                                            .then( 
     | 
| 
      
 392 
     | 
    
         
            +
                                            .then((response) => {
         
     | 
| 
       393 
393 
     | 
    
         
             
                                            return response.json();
         
     | 
| 
       394 
     | 
    
         
            -
                                        }).then( 
     | 
| 
      
 394 
     | 
    
         
            +
                                        }).then((json) => {
         
     | 
| 
       395 
395 
     | 
    
         
             
                                            $storage.set(skey, JSON.stringify(json));
         
     | 
| 
       396 
396 
     | 
    
         
             
                                            list.push(...json);
         
     | 
| 
       397 
397 
     | 
    
         
             
                                            resolve(list);
         
     | 
| 
         @@ -406,8 +406,8 @@ const mediaPlayer = function (t, config) { 
     | 
|
| 
       406 
406 
     | 
    
         
             
                            });
         
     | 
| 
       407 
407 
     | 
    
         
             
                        });
         
     | 
| 
       408 
408 
     | 
    
         
             
                    },
         
     | 
| 
       409 
     | 
    
         
            -
                    secondToTime 
     | 
| 
       410 
     | 
    
         
            -
                        const add0 =  
     | 
| 
      
 409 
     | 
    
         
            +
                    secondToTime(second) {
         
     | 
| 
      
 410 
     | 
    
         
            +
                        const add0 = (num) => {
         
     | 
| 
       411 
411 
     | 
    
         
             
                            return isNaN(num) ? '00' : (num < 10 ? '0' + num : '' + num);
         
     | 
| 
       412 
412 
     | 
    
         
             
                        };
         
     | 
| 
       413 
413 
     | 
    
         
             
                        const hour = Math.floor(second / 3600);
         
     | 
| 
         @@ -425,7 +425,7 @@ const mediaPlayer = function (t, config) { 
     | 
|
| 
       425 
425 
     | 
    
         
             
                t.player = {
         
     | 
| 
       426 
426 
     | 
    
         
             
                    _id: utils.random(999999),
         
     | 
| 
       427 
427 
     | 
    
         
             
                    group: true,
         
     | 
| 
       428 
     | 
    
         
            -
                    load 
     | 
| 
      
 428 
     | 
    
         
            +
                    load(newList) {
         
     | 
| 
       429 
429 
     | 
    
         
             
                        let d = '';
         
     | 
| 
       430 
430 
     | 
    
         
             
                        if (newList && newList.length > 0) {
         
     | 
| 
       431 
431 
     | 
    
         
             
                            if (this.options.rawList !== newList) {
         
     | 
| 
         @@ -443,7 +443,7 @@ const mediaPlayer = function (t, config) { 
     | 
|
| 
       443 
443 
     | 
    
         
             
                        }
         
     | 
| 
       444 
444 
     | 
    
         
             
                        return this;
         
     | 
| 
       445 
445 
     | 
    
         
             
                    },
         
     | 
| 
       446 
     | 
    
         
            -
                    fetch 
     | 
| 
      
 446 
     | 
    
         
            +
                    fetch() {
         
     | 
| 
       447 
447 
     | 
    
         
             
                        return new Promise((resolve, reject) => {
         
     | 
| 
       448 
448 
     | 
    
         
             
                            if (playlist.data.length > 0) {
         
     | 
| 
       449 
449 
     | 
    
         
             
                                resolve(true);
         
     | 
| 
         @@ -451,8 +451,8 @@ const mediaPlayer = function (t, config) { 
     | 
|
| 
       451 
451 
     | 
    
         
             
                            else {
         
     | 
| 
       452 
452 
     | 
    
         
             
                                if (this.options.rawList) {
         
     | 
| 
       453 
453 
     | 
    
         
             
                                    const promises = [];
         
     | 
| 
       454 
     | 
    
         
            -
                                    this.options.rawList.forEach( 
     | 
| 
       455 
     | 
    
         
            -
                                        promises.push(new Promise( 
     | 
| 
      
 454 
     | 
    
         
            +
                                    this.options.rawList.forEach((raw, index) => {
         
     | 
| 
      
 455 
     | 
    
         
            +
                                        promises.push(new Promise((resolve, reject) => {
         
     | 
| 
       456 
456 
     | 
    
         
             
                                            let group = index;
         
     | 
| 
       457 
457 
     | 
    
         
             
                                            let source;
         
     | 
| 
       458 
458 
     | 
    
         
             
                                            if (!raw.list) {
         
     | 
| 
         @@ -464,13 +464,13 @@ const mediaPlayer = function (t, config) { 
     | 
|
| 
       464 
464 
     | 
    
         
             
                                                this.group = true;
         
     | 
| 
       465 
465 
     | 
    
         
             
                                                source = raw.list;
         
     | 
| 
       466 
466 
     | 
    
         
             
                                            }
         
     | 
| 
       467 
     | 
    
         
            -
                                            utils.fetch(source).then( 
     | 
| 
      
 467 
     | 
    
         
            +
                                            utils.fetch(source).then((list) => {
         
     | 
| 
       468 
468 
     | 
    
         
             
                                                playlist.add(group, list);
         
     | 
| 
       469 
469 
     | 
    
         
             
                                                resolve(0);
         
     | 
| 
       470 
470 
     | 
    
         
             
                                            });
         
     | 
| 
       471 
471 
     | 
    
         
             
                                        }));
         
     | 
| 
       472 
472 
     | 
    
         
             
                                    });
         
     | 
| 
       473 
     | 
    
         
            -
                                    Promise.all(promises).then( 
     | 
| 
      
 473 
     | 
    
         
            +
                                    Promise.all(promises).then(() => {
         
     | 
| 
       474 
474 
     | 
    
         
             
                                        resolve(true);
         
     | 
| 
       475 
475 
     | 
    
         
             
                                    });
         
     | 
| 
       476 
476 
     | 
    
         
             
                                }
         
     | 
| 
         @@ -483,13 +483,13 @@ const mediaPlayer = function (t, config) { 
     | 
|
| 
       483 
483 
     | 
    
         
             
                            }
         
     | 
| 
       484 
484 
     | 
    
         
             
                        });
         
     | 
| 
       485 
485 
     | 
    
         
             
                    },
         
     | 
| 
       486 
     | 
    
         
            -
                    mode 
     | 
| 
      
 486 
     | 
    
         
            +
                    mode() {
         
     | 
| 
       487 
487 
     | 
    
         
             
                        const total = playlist.data.length;
         
     | 
| 
       488 
488 
     | 
    
         
             
                        if (!total || playlist.errnum === total) {
         
     | 
| 
       489 
489 
     | 
    
         
             
                            return;
         
     | 
| 
       490 
490 
     | 
    
         
             
                        }
         
     | 
| 
       491 
491 
     | 
    
         
             
                        const step = controller.step === 'next' ? 1 : -1;
         
     | 
| 
       492 
     | 
    
         
            -
                        const next =  
     | 
| 
      
 492 
     | 
    
         
            +
                        const next = () => {
         
     | 
| 
       493 
493 
     | 
    
         
             
                            let index = playlist.index + step;
         
     | 
| 
       494 
494 
     | 
    
         
             
                            if (index > total || index < 0) {
         
     | 
| 
       495 
495 
     | 
    
         
             
                                index = controller.step === 'next' ? 0 : total - 1;
         
     | 
| 
         @@ -523,7 +523,7 @@ const mediaPlayer = function (t, config) { 
     | 
|
| 
       523 
523 
     | 
    
         
             
                        }
         
     | 
| 
       524 
524 
     | 
    
         
             
                        this.init();
         
     | 
| 
       525 
525 
     | 
    
         
             
                    },
         
     | 
| 
       526 
     | 
    
         
            -
                    switch 
     | 
| 
      
 526 
     | 
    
         
            +
                    switch(index) {
         
     | 
| 
       527 
527 
     | 
    
         
             
                        if (typeof index === 'number' &&
         
     | 
| 
       528 
528 
     | 
    
         
             
                            index !== playlist.index &&
         
     | 
| 
       529 
529 
     | 
    
         
             
                            playlist.current() &&
         
     | 
| 
         @@ -532,7 +532,7 @@ const mediaPlayer = function (t, config) { 
     | 
|
| 
       532 
532 
     | 
    
         
             
                            this.init();
         
     | 
| 
       533 
533 
     | 
    
         
             
                        }
         
     | 
| 
       534 
534 
     | 
    
         
             
                    },
         
     | 
| 
       535 
     | 
    
         
            -
                    init 
     | 
| 
      
 535 
     | 
    
         
            +
                    init() {
         
     | 
| 
       536 
536 
     | 
    
         
             
                        const item = playlist.current();
         
     | 
| 
       537 
537 
     | 
    
         
             
                        if (!item || item.error) {
         
     | 
| 
       538 
538 
     | 
    
         
             
                            this.mode();
         
     | 
| 
         @@ -555,33 +555,33 @@ const mediaPlayer = function (t, config) { 
     | 
|
| 
       555 
555 
     | 
    
         
             
                            this.play();
         
     | 
| 
       556 
556 
     | 
    
         
             
                        }
         
     | 
| 
       557 
557 
     | 
    
         
             
                    },
         
     | 
| 
       558 
     | 
    
         
            -
                    play 
     | 
| 
      
 558 
     | 
    
         
            +
                    play() {
         
     | 
| 
       559 
559 
     | 
    
         
             
                        NOWPLAYING && NOWPLAYING.player.pause();
         
     | 
| 
       560 
560 
     | 
    
         
             
                        if (playlist.current().error) {
         
     | 
| 
       561 
561 
     | 
    
         
             
                            this.mode();
         
     | 
| 
       562 
562 
     | 
    
         
             
                            return;
         
     | 
| 
       563 
563 
     | 
    
         
             
                        }
         
     | 
| 
       564 
     | 
    
         
            -
                        source.play().then( 
     | 
| 
      
 564 
     | 
    
         
            +
                        source.play().then(() => {
         
     | 
| 
       565 
565 
     | 
    
         
             
                            playlist.scroll();
         
     | 
| 
       566 
     | 
    
         
            -
                        }).catch( 
     | 
| 
      
 566 
     | 
    
         
            +
                        }).catch((e) => {
         
     | 
| 
       567 
567 
     | 
    
         
             
                        });
         
     | 
| 
       568 
568 
     | 
    
         
             
                    },
         
     | 
| 
       569 
     | 
    
         
            -
                    pause 
     | 
| 
      
 569 
     | 
    
         
            +
                    pause() {
         
     | 
| 
       570 
570 
     | 
    
         
             
                        source.pause();
         
     | 
| 
       571 
571 
     | 
    
         
             
                        document.title = originTitle;
         
     | 
| 
       572 
572 
     | 
    
         
             
                    },
         
     | 
| 
       573 
     | 
    
         
            -
                    stop 
     | 
| 
      
 573 
     | 
    
         
            +
                    stop() {
         
     | 
| 
       574 
574 
     | 
    
         
             
                        source.pause();
         
     | 
| 
       575 
575 
     | 
    
         
             
                        source.currentTime = 0;
         
     | 
| 
       576 
576 
     | 
    
         
             
                        document.title = originTitle;
         
     | 
| 
       577 
577 
     | 
    
         
             
                    },
         
     | 
| 
       578 
     | 
    
         
            -
                    seek 
     | 
| 
      
 578 
     | 
    
         
            +
                    seek(time) {
         
     | 
| 
       579 
579 
     | 
    
         
             
                        time = Math.max(time, 0);
         
     | 
| 
       580 
580 
     | 
    
         
             
                        time = Math.min(time, source.duration);
         
     | 
| 
       581 
581 
     | 
    
         
             
                        source.currentTime = time;
         
     | 
| 
       582 
582 
     | 
    
         
             
                        progress.update(time / source.duration);
         
     | 
| 
       583 
583 
     | 
    
         
             
                    },
         
     | 
| 
       584 
     | 
    
         
            -
                    muted 
     | 
| 
      
 584 
     | 
    
         
            +
                    muted(status) {
         
     | 
| 
       585 
585 
     | 
    
         
             
                        if (status === 'muted') {
         
     | 
| 
       586 
586 
     | 
    
         
             
                            source.muted = status;
         
     | 
| 
       587 
587 
     | 
    
         
             
                            $storage.set('_PlayerMuted', status);
         
     | 
| 
         @@ -593,14 +593,14 @@ const mediaPlayer = function (t, config) { 
     | 
|
| 
       593 
593 
     | 
    
         
             
                            controller.update(source.volume);
         
     | 
| 
       594 
594 
     | 
    
         
             
                        }
         
     | 
| 
       595 
595 
     | 
    
         
             
                    },
         
     | 
| 
       596 
     | 
    
         
            -
                    volume 
     | 
| 
      
 596 
     | 
    
         
            +
                    volume(percentage) {
         
     | 
| 
       597 
597 
     | 
    
         
             
                        if (!isNaN(percentage)) {
         
     | 
| 
       598 
598 
     | 
    
         
             
                            controller.update(percentage);
         
     | 
| 
       599 
599 
     | 
    
         
             
                            $storage.set('_PlayerVolume', percentage);
         
     | 
| 
       600 
600 
     | 
    
         
             
                            source.volume = percentage;
         
     | 
| 
       601 
601 
     | 
    
         
             
                        }
         
     | 
| 
       602 
602 
     | 
    
         
             
                    },
         
     | 
| 
       603 
     | 
    
         
            -
                    mini 
     | 
| 
      
 603 
     | 
    
         
            +
                    mini() {
         
     | 
| 
       604 
604 
     | 
    
         
             
                        info.hide();
         
     | 
| 
       605 
605 
     | 
    
         
             
                    }
         
     | 
| 
       606 
606 
     | 
    
         
             
                };
         
     | 
| 
         @@ -608,16 +608,16 @@ const mediaPlayer = function (t, config) { 
     | 
|
| 
       608 
608 
     | 
    
         
             
                    el: null,
         
     | 
| 
       609 
609 
     | 
    
         
             
                    data: null,
         
     | 
| 
       610 
610 
     | 
    
         
             
                    index: 0,
         
     | 
| 
       611 
     | 
    
         
            -
                    create 
     | 
| 
      
 611 
     | 
    
         
            +
                    create(box) {
         
     | 
| 
       612 
612 
     | 
    
         
             
                        const current = playlist.index;
         
     | 
| 
       613 
613 
     | 
    
         
             
                        const raw = playlist.current().lrc;
         
     | 
| 
       614 
     | 
    
         
            -
                        const callback =  
     | 
| 
      
 614 
     | 
    
         
            +
                        const callback = (body) => {
         
     | 
| 
       615 
615 
     | 
    
         
             
                            if (current !== playlist.index) {
         
     | 
| 
       616 
616 
     | 
    
         
             
                                return;
         
     | 
| 
       617 
617 
     | 
    
         
             
                            }
         
     | 
| 
       618 
618 
     | 
    
         
             
                            this.data = this.parse(body);
         
     | 
| 
       619 
619 
     | 
    
         
             
                            let lrc = '';
         
     | 
| 
       620 
     | 
    
         
            -
                            this.data.forEach( 
     | 
| 
      
 620 
     | 
    
         
            +
                            this.data.forEach((line, index) => {
         
     | 
| 
       621 
621 
     | 
    
         
             
                                lrc += '<p' + (index === 0 ? ' class="current"' : '') + '>' + line[1] + '</p>';
         
     | 
| 
       622 
622 
     | 
    
         
             
                            });
         
     | 
| 
       623 
623 
     | 
    
         
             
                            this.el = box.createChild('div', {
         
     | 
| 
         @@ -633,7 +633,7 @@ const mediaPlayer = function (t, config) { 
     | 
|
| 
       633 
633 
     | 
    
         
             
                            callback(raw);
         
     | 
| 
       634 
634 
     | 
    
         
             
                        }
         
     | 
| 
       635 
635 
     | 
    
         
             
                    },
         
     | 
| 
       636 
     | 
    
         
            -
                    update 
     | 
| 
      
 636 
     | 
    
         
            +
                    update(currentTime) {
         
     | 
| 
       637 
637 
     | 
    
         
             
                        if (!this.data) {
         
     | 
| 
       638 
638 
     | 
    
         
             
                            return;
         
     | 
| 
       639 
639 
     | 
    
         
             
                        }
         
     | 
| 
         @@ -649,9 +649,9 @@ const mediaPlayer = function (t, config) { 
     | 
|
| 
       649 
649 
     | 
    
         
             
                            }
         
     | 
| 
       650 
650 
     | 
    
         
             
                        }
         
     | 
| 
       651 
651 
     | 
    
         
             
                    },
         
     | 
| 
       652 
     | 
    
         
            -
                    parse 
     | 
| 
      
 652 
     | 
    
         
            +
                    parse(lrc_s) {
         
     | 
| 
       653 
653 
     | 
    
         
             
                        if (lrc_s) {
         
     | 
| 
       654 
     | 
    
         
            -
                            lrc_s = lrc_s.replace(/([^\]^\n])\[/g,  
     | 
| 
      
 654 
     | 
    
         
            +
                            lrc_s = lrc_s.replace(/([^\]^\n])\[/g, (match, p1) => {
         
     | 
| 
       655 
655 
     | 
    
         
             
                                return p1 + '\n[';
         
     | 
| 
       656 
656 
     | 
    
         
             
                            });
         
     | 
| 
       657 
657 
     | 
    
         
             
                            const lyric = lrc_s.split('\n');
         
     | 
| 
         @@ -662,7 +662,7 @@ const mediaPlayer = function (t, config) { 
     | 
|
| 
       662 
662 
     | 
    
         
             
                                const lrcText = lyric[i]
         
     | 
| 
       663 
663 
     | 
    
         
             
                                    .replace(/.*\[(\d{2}):(\d{2})(\.(\d{2,3}))?]/g, '')
         
     | 
| 
       664 
664 
     | 
    
         
             
                                    .replace(/<(\d{2}):(\d{2})(\.(\d{2,3}))?>/g, '')
         
     | 
| 
       665 
     | 
    
         
            -
                                    . 
     | 
| 
      
 665 
     | 
    
         
            +
                                    .trim;
         
     | 
| 
       666 
666 
     | 
    
         
             
                                if (lrcTimes) {
         
     | 
| 
       667 
667 
     | 
    
         
             
                                    const timeLen = lrcTimes.length;
         
     | 
| 
       668 
668 
     | 
    
         
             
                                    for (let j = 0; j < timeLen; j++) {
         
     | 
| 
         @@ -675,63 +675,59 @@ const mediaPlayer = function (t, config) { 
     | 
|
| 
       675 
675 
     | 
    
         
             
                                    }
         
     | 
| 
       676 
676 
     | 
    
         
             
                                }
         
     | 
| 
       677 
677 
     | 
    
         
             
                            }
         
     | 
| 
       678 
     | 
    
         
            -
                            lrc = lrc.filter( 
     | 
| 
       679 
     | 
    
         
            -
             
     | 
| 
       680 
     | 
    
         
            -
                            });
         
     | 
| 
       681 
     | 
    
         
            -
                            lrc.sort(function (a, b) {
         
     | 
| 
       682 
     | 
    
         
            -
                                return a[0] - b[0];
         
     | 
| 
       683 
     | 
    
         
            -
                            });
         
     | 
| 
      
 678 
     | 
    
         
            +
                            lrc = lrc.filter((item) => item[1]);
         
     | 
| 
      
 679 
     | 
    
         
            +
                            lrc.sort((a, b) => a[0] - b[0]);
         
     | 
| 
       684 
680 
     | 
    
         
             
                            return lrc;
         
     | 
| 
       685 
681 
     | 
    
         
             
                        }
         
     | 
| 
       686 
682 
     | 
    
         
             
                        else {
         
     | 
| 
       687 
683 
     | 
    
         
             
                            return [];
         
     | 
| 
       688 
684 
     | 
    
         
             
                        }
         
     | 
| 
       689 
685 
     | 
    
         
             
                    },
         
     | 
| 
       690 
     | 
    
         
            -
                    fetch 
     | 
| 
      
 686 
     | 
    
         
            +
                    fetch(url, callback) {
         
     | 
| 
       691 
687 
     | 
    
         
             
                        fetch(url)
         
     | 
| 
       692 
     | 
    
         
            -
                            .then( 
     | 
| 
      
 688 
     | 
    
         
            +
                            .then((response) => {
         
     | 
| 
       693 
689 
     | 
    
         
             
                            return response.text();
         
     | 
| 
       694 
     | 
    
         
            -
                        }).then( 
     | 
| 
      
 690 
     | 
    
         
            +
                        }).then((body) => {
         
     | 
| 
       695 
691 
     | 
    
         
             
                            callback(body);
         
     | 
| 
       696 
     | 
    
         
            -
                        }).catch( 
     | 
| 
      
 692 
     | 
    
         
            +
                        }).catch((ex) => {
         
     | 
| 
       697 
693 
     | 
    
         
             
                        });
         
     | 
| 
       698 
694 
     | 
    
         
             
                    }
         
     | 
| 
       699 
695 
     | 
    
         
             
                };
         
     | 
| 
       700 
696 
     | 
    
         
             
                const events = {
         
     | 
| 
       701 
     | 
    
         
            -
                    onerror 
     | 
| 
      
 697 
     | 
    
         
            +
                    onerror() {
         
     | 
| 
       702 
698 
     | 
    
         
             
                        playlist.error();
         
     | 
| 
       703 
699 
     | 
    
         
             
                        t.player.mode();
         
     | 
| 
       704 
700 
     | 
    
         
             
                    },
         
     | 
| 
       705 
     | 
    
         
            -
                    ondurationchange 
     | 
| 
      
 701 
     | 
    
         
            +
                    ondurationchange() {
         
     | 
| 
       706 
702 
     | 
    
         
             
                        if (source.duration !== 1) {
         
     | 
| 
       707 
703 
     | 
    
         
             
                            progress.el.attr('data-dtime', utils.secondToTime(source.duration));
         
     | 
| 
       708 
704 
     | 
    
         
             
                        }
         
     | 
| 
       709 
705 
     | 
    
         
             
                    },
         
     | 
| 
       710 
     | 
    
         
            -
                    onloadedmetadata 
     | 
| 
      
 706 
     | 
    
         
            +
                    onloadedmetadata() {
         
     | 
| 
       711 
707 
     | 
    
         
             
                        t.player.seek(0);
         
     | 
| 
       712 
708 
     | 
    
         
             
                        progress.el.attr('data-dtime', utils.secondToTime(source.duration));
         
     | 
| 
       713 
709 
     | 
    
         
             
                    },
         
     | 
| 
       714 
     | 
    
         
            -
                    onplay 
     | 
| 
      
 710 
     | 
    
         
            +
                    onplay() {
         
     | 
| 
       715 
711 
     | 
    
         
             
                        t.parentNode.addClass('playing');
         
     | 
| 
       716 
712 
     | 
    
         
             
                        showtip(this.attr('title'));
         
     | 
| 
       717 
713 
     | 
    
         
             
                        NOWPLAYING = t;
         
     | 
| 
       718 
714 
     | 
    
         
             
                    },
         
     | 
| 
       719 
     | 
    
         
            -
                    onpause 
     | 
| 
      
 715 
     | 
    
         
            +
                    onpause() {
         
     | 
| 
       720 
716 
     | 
    
         
             
                        t.parentNode.removeClass('playing');
         
     | 
| 
       721 
717 
     | 
    
         
             
                        NOWPLAYING = null;
         
     | 
| 
       722 
718 
     | 
    
         
             
                    },
         
     | 
| 
       723 
     | 
    
         
            -
                    ontimeupdate 
     | 
| 
      
 719 
     | 
    
         
            +
                    ontimeupdate() {
         
     | 
| 
       724 
720 
     | 
    
         
             
                        if (!this.disableTimeupdate) {
         
     | 
| 
       725 
721 
     | 
    
         
             
                            progress.update(this.currentTime / this.duration);
         
     | 
| 
       726 
722 
     | 
    
         
             
                            lyrics.update(this.currentTime);
         
     | 
| 
       727 
723 
     | 
    
         
             
                        }
         
     | 
| 
       728 
724 
     | 
    
         
             
                    },
         
     | 
| 
       729 
     | 
    
         
            -
                    onended 
     | 
| 
      
 725 
     | 
    
         
            +
                    onended(argument) {
         
     | 
| 
       730 
726 
     | 
    
         
             
                        t.player.mode();
         
     | 
| 
       731 
727 
     | 
    
         
             
                        t.player.play();
         
     | 
| 
       732 
728 
     | 
    
         
             
                    }
         
     | 
| 
       733 
729 
     | 
    
         
             
                };
         
     | 
| 
       734 
     | 
    
         
            -
                const init =  
     | 
| 
      
 730 
     | 
    
         
            +
                const init = (config) => {
         
     | 
| 
       735 
731 
     | 
    
         
             
                    if (t.player.created) {
         
     | 
| 
       736 
732 
     | 
    
         
             
                        return;
         
     | 
| 
       737 
733 
     | 
    
         
             
                    }
         
     | 
    
        package/source/js/_app/vue.js
    CHANGED
    
    | 
         @@ -10,16 +10,16 @@ Vue.createApp({ 
     | 
|
| 
       10 
10 
     | 
    
         
             
                            id: 'neko',
         
     | 
| 
       11 
11 
     | 
    
         
             
                            innerHTML: '<div class="planet"><div class="sun"></div><div class="moon"></div></div><div class="body"><div class="face"><section class="eyes left"><span class="pupil"></span></section><section class="eyes right"><span class="pupil"></span></section><span class="nose"></span></div></div>'
         
     | 
| 
       12 
12 
     | 
    
         
             
                        });
         
     | 
| 
       13 
     | 
    
         
            -
                        const hideNeko =  
     | 
| 
      
 13 
     | 
    
         
            +
                        const hideNeko = () => {
         
     | 
| 
       14 
14 
     | 
    
         
             
                            transition(neko, {
         
     | 
| 
       15 
15 
     | 
    
         
             
                                delay: 2500,
         
     | 
| 
       16 
16 
     | 
    
         
             
                                opacity: 0
         
     | 
| 
       17 
     | 
    
         
            -
                            },  
     | 
| 
      
 17 
     | 
    
         
            +
                            }, () => {
         
     | 
| 
       18 
18 
     | 
    
         
             
                                BODY.removeChild(neko);
         
     | 
| 
       19 
19 
     | 
    
         
             
                            });
         
     | 
| 
       20 
20 
     | 
    
         
             
                        };
         
     | 
| 
       21 
21 
     | 
    
         
             
                        if (btn.hasClass('i-sun')) {
         
     | 
| 
       22 
     | 
    
         
            -
                            c =  
     | 
| 
      
 22 
     | 
    
         
            +
                            c = () => {
         
     | 
| 
       23 
23 
     | 
    
         
             
                                neko.addClass('dark');
         
     | 
| 
       24 
24 
     | 
    
         
             
                                changeTheme('dark');
         
     | 
| 
       25 
25 
     | 
    
         
             
                                $storage.set('theme', 'dark');
         
     | 
| 
         @@ -28,16 +28,16 @@ Vue.createApp({ 
     | 
|
| 
       28 
28 
     | 
    
         
             
                        }
         
     | 
| 
       29 
29 
     | 
    
         
             
                        else {
         
     | 
| 
       30 
30 
     | 
    
         
             
                            neko.addClass('dark');
         
     | 
| 
       31 
     | 
    
         
            -
                            c =  
     | 
| 
      
 31 
     | 
    
         
            +
                            c = () => {
         
     | 
| 
       32 
32 
     | 
    
         
             
                                neko.removeClass('dark');
         
     | 
| 
       33 
33 
     | 
    
         
             
                                changeTheme();
         
     | 
| 
       34 
34 
     | 
    
         
             
                                $storage.set('theme', 'light');
         
     | 
| 
       35 
35 
     | 
    
         
             
                                hideNeko();
         
     | 
| 
       36 
36 
     | 
    
         
             
                            };
         
     | 
| 
       37 
37 
     | 
    
         
             
                        }
         
     | 
| 
       38 
     | 
    
         
            -
                        transition(neko, 1,  
     | 
| 
      
 38 
     | 
    
         
            +
                        transition(neko, 1, () => {
         
     | 
| 
       39 
39 
     | 
    
         
             
                            setTimeout(c, 210);
         
     | 
| 
       40 
     | 
    
         
            -
                        },  
     | 
| 
      
 40 
     | 
    
         
            +
                        }, () => {
         
     | 
| 
       41 
41 
     | 
    
         
             
                            neko.display('block');
         
     | 
| 
       42 
42 
     | 
    
         
             
                        });
         
     | 
| 
       43 
43 
     | 
    
         
             
                    }
         
     |