Skip to content

Commit 2e07991

Browse files
committed
Fix: 修复可能由接口数据为空造成的空指针异常 (#1)
resolve #1
1 parent 94faae7 commit 2e07991

File tree

2 files changed

+20
-13
lines changed

2 files changed

+20
-13
lines changed

layouts/shortcodes/mmt-netease.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
{{- $version := "1.0.5" -}}
2+
{{- $version := "1.0.7" -}}
33
{{- $mid := cond .IsNamedParams (.Get "mid") (.Get 0) | default "2280569152" -}}
44
{{- $autoplay := cond .IsNamedParams (.Get "autoplay") (.Get 1) | default false -}}
55
{{- $fixed := cond .IsNamedParams (.Get "fixed") (.Get 2) -}}

static/shortcodes/mmt-netease/js/index.js

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,25 +16,32 @@ const RNC = new (function () {
1616
fetch(`https://api.uomg.com/api/comments.163?mid=${$music.dataset.mid}`)
1717
.then(response => response.json())
1818
.then((comment) => {
19-
$comment.querySelector('.pic-backdrop').style.backgroundImage = `url(${comment.data.picurl.slice(5)})`;
20-
const $avatar = $comment.querySelector('.comment-avatar');
21-
$avatar.alt = `${comment.data.nickname}'s avatar`;
22-
$avatar.src = comment.data.avatarurl?.slice(5);
23-
$avatar.classList.remove('d-none');
24-
$comment.querySelector('.comment-nickname').innerHTML = comment.data.nickname;
25-
$comment.querySelector('.comment-content').innerHTML = comment.data.content.replace('\n','<br/>');
26-
$comment.querySelector('.music-name').innerHTML = comment.data.name;
27-
$comment.querySelector('.artists-name').innerHTML = comment.data.artistsname;
28-
if (!lastMusic || (lastMusic !== comment.data.url)) {
19+
const nickname = comment.data?.nickname || '未知用户';
20+
const musicURL = comment.data?.url;
21+
if (comment.data.picurl) {
22+
$comment.querySelector('.pic-backdrop').style.backgroundImage = `url(${comment.data.picurl.slice(5)})`;
23+
}
24+
if (comment.data.avatarurl) {
25+
const $avatar = $comment.querySelector('.comment-avatar');
26+
$avatar.alt = `${nickname}'s avatar`;
27+
$avatar.src = comment.data.avatarurl.slice(5);
28+
$avatar.classList.remove('d-none');
29+
}
30+
$comment.querySelector('.comment-nickname').innerHTML = nickname;
31+
$comment.querySelector('.comment-content').innerHTML = comment.data.content?.replace('\n','<br/>');
32+
$comment.querySelector('.music-name').innerHTML = comment.data?.name;
33+
$comment.querySelector('.artists-name').innerHTML = comment.data?.artistsname;
34+
if (!musicURL) { return; }
35+
if (!lastMusic || (lastMusic !== musicURL)) {
2936
const $player = document.createElement('meting-js');
30-
$player.setAttribute('auto', comment.data.url);
37+
$player.setAttribute('auto', musicURL);
3138
$player.setAttribute('autoplay', autoplay);
3239
$music.dataset.fixed && $player.setAttribute('fixed', $music.dataset.fixed);
3340
$music.dataset.mini && $player.setAttribute('mini', $music.dataset.mini);
3441
$music.dataset.volume && $player.setAttribute('volume', $music.dataset.volume);
3542
$music.innerHTML = '';
3643
$music.appendChild($player);
37-
lastMusic = comment.data.url;
44+
lastMusic = musicURL;
3845
}
3946
})
4047
};

0 commit comments

Comments
 (0)