1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| let commentData
const comment = { fetchData: async (option) => { const res = await fetch('{envId}', { method: "POST", body: JSON.stringify({ "event": "GET_RECENT_COMMENTS", "accessToken": "{YOUR_TOKEN}", "includeReply": true, "pageSize": -1, ...option }), headers: { 'Content-Type': 'application/json' } }).then(res => res.json()) return res.data }, new: async (type, exclude) => { const comments = document.getElementById('comments-page') if (!comments) return
const commentclick = () => { document.querySelectorAll('#comment-tool a').forEach(e => e.addEventListener('click', comment.operate) ) } const [a, b, c] = [`<a href="javascript:void(0)" data-type="post" title="显示此文章所有评论">查看更多</a>`, `<a href="javascript:void(0)" data-type="visitor" title="显示该评论者的所有评论">查看Ta更多评论</a>`, `<a href="javascript:void(0)" data-type="all" title="查看本站最新评论">返回评论</a>`]
let data, tool, html = '' if (!commentData) commentData = await comment.fetchData() data = commentData if (type) data = data.filter(item => item[type] === exclude), tool = type === 'mailMd5' ? a + c : b + c else data = data.slice(0, 50), tool = a + b if (!ArticleData) await toRandomPost(true)
data.forEach(item => { const time = changeTime(item.created, true) const title = Object.values(ArticleData).flatMap(data => data).find(article => article.link === item.url)?.title || '未知标题'
html += `<div class="comment-card"><div class="comment-info"><img src="${item.avatar}"><div class="comment-information"><span class="comment-user ${item.mailMd5 === '91afb88f9ce8126f2825f7ef9fd64ceb' ? 'comment-author' : ''}" data-mailmd5="${item.mailMd5}">${item.nick}</span><span class="comment-time">${time}</span></div></div><div class="comment-content">${item.commentText.trim()}</div><div class="comment-more"><div class="comment-title"><span class="comment-link" title="查看此文章" onclick="pjax.loadUrl('${item.url}')"><i class="iconfont icat-read"></i>${title}</span><a href="javascript:void(0)" onclick="pjax.loadUrl('${item.url}#${item.id}')">查看评论</a></div><div id="comment-tool">${tool}</div></div></div>` }) comments.innerHTML = html commentclick() }, operate: (event) => { const type = event.target.getAttribute('data-type') const commentCard = event.target.closest('.comment-card') if (type === 'visitor') comment.new('mailMd5', commentCard.querySelector('.comment-user').getAttribute('data-mailmd5')) if (type === 'post') comment.new('url', commentCard.querySelector('.comment-link').getAttribute('onclick').split("'")[1]) if (type === 'all') comment.new() } } btf.addGlobalFn('pjaxComplete', comment.new(), 'comment')
|