mirror of
https://github.com/the1812/Bilibili-Evolved.git
synced 2025-11-04 21:22:45 +08:00
1 line
2.1 KiB
JavaScript
1 line
2.1 KiB
JavaScript
(()=>(e,t)=>{const o="bb-comment";const r=[];const n=[];const s=[];const c=[];const i=e=>{const t=e.querySelector(".con .user .name");const o=e=>{const t=e.querySelector(".reply-face");const o=e.querySelector(".reply-con .user .name");return{id:e.getAttribute("data-id"),element:e,userID:t.getAttribute("data-usercard-mid"),userName:o.textContent,content:e.querySelector(".text-con").textContent,timeText:e.querySelector(".info .time").textContent,likes:parseInt(e.querySelector(".info .like span").textContent)}};const r={id:e.getAttribute("data-id"),element:e,userID:t.getAttribute("data-usercard-mid"),userName:t.textContent,content:e.querySelector(".con .text").textContent,timeText:e.querySelector(".con .info .time").textContent,likes:parseInt(e.querySelector(".con .like span").textContent),replies:[]};if(dq(e,".reply-box .view-more")){const t=dq(e,".reply-box");Observer.childList(t,(t=>{r.replies=dqa(e,".reply-box .reply-item").map(o);if(t.length!==0){r.onRepliesUpdate&&r.onRepliesUpdate(r.replies)}}))}else{r.replies=dqa(e,".reply-box .reply-item").map(o)}return r};const a=e=>{if(e.observer){return}e.items=dqa(e.element,".list-item.reply-wrap").map(i);e.items.forEach((e=>{n.forEach((t=>t(e)))}));e.observer=Observer.childListSubtree(e.element,(t=>{t.forEach((t=>{const o=e=>e instanceof HTMLElement&&e.classList.contains("list-item")&&e.classList.contains("reply-wrap");t.addedNodes.forEach((t=>{if(o(t)){const o=i(t);e.items.push(o);n.forEach((e=>e(o)))}}));t.removedNodes.forEach((t=>{if(o(t)){const o=t.getAttribute("data-id");const r=e.items.findIndex((e=>e.id===o));if(r!==-1){const[t]=e.items.splice(r,1);s.forEach((e=>e(t)))}}}))}))}))};const l=e=>{if(e instanceof HTMLElement&&e.classList.contains(o)){const t={element:e,items:[]};r.push(t);a(t);c.forEach((e=>e(t)))}};const d=e=>{r.forEach((t=>e(t)));c.push(e)};const m=e=>{const{added:t,removed:o}=e;d((e=>{if(t){e.items.forEach((e=>t(e)));n.push(t)}if(o){s.push(o)}}))};Observer.childListSubtree(document.body,(e=>{e.forEach((e=>{e.addedNodes.forEach((e=>l(e)))}))}));dqa("."+o).forEach(l);return{export:{commentAreas:r,forEachCommentArea:d,forEachCommentItem:m}}})(); |