mirror of
https://github.com/the1812/Bilibili-Evolved.git
synced 2025-11-04 21:22:45 +08:00
1 line
2.2 KiB
JavaScript
1 line
2.2 KiB
JavaScript
(()=>{return(t,e)=>{var o;(function(t){t[t["Default"]=1]="Default";t[t["ByTime"]=2]="ByTime";t[t["ByLikes"]=3]="ByLikes"})(o||(o={}));const i=(t,e,i=1)=>{if(e===o.ByTime){return Ajax.getJson(`https://api.bilibili.com/x/v2/reply/main?oid=${t}&type=1&mode=${e}`)}return Ajax.getJson(`https://api.bilibili.com/x/v2/reply/main?oid=${t}&type=1&mode=${e}&next=${i}`)};const r=async t=>{if(document.URL.match(/\/\/www\.bilibili\.com\/(video|bangumi)/)){return await SpinQuery.select(()=>unsafeWindow.aid)}console.error("No oid extract method for current context.",t)};const n=async t=>{const e=await r(t);if(e===undefined){return}const n=dq(t,".hot-sort.on")!==null?o.ByLikes:o.ByTime;let s=1;const a=dq(t,".paging-box .current");if(a!==null){s=parseInt(a.textContent)}const l=await i(e,n,s);if(l.code!==0){console.error("Comment API failed: ",l.message);return}const c=t=>{const e=[{id:t.rpid_str,floor:t.floor}];if(t.replies!==null){e.push(...t.replies.map(t=>{return{id:t.rpid_str,floor:t.floor}}))}return e};const d=_.flatMap(_.get(l,"data.replies",[]),c);const u=_.get(l,"data.top.upper");if(u){d.push(...c(u))}const f=dqa(t,".reply-wrap[data-id]");const p=f.map(t=>dq(t,".reply-wrap > .con > .info, .reply-wrap > .info"));f.forEach((t,e)=>{const o=t.getAttribute("data-id");const i=d.find(t=>t.id===o);if(i!==undefined){const t=p[e];if(t.getAttribute("data-restore-floor")===null){t.insertAdjacentHTML("afterbegin",`<span class="floor">#${i.floor}</span>`);t.setAttribute("data-restore-floor",i.floor.toString())}}})};const s=t=>{const e="comment-loading";if(Array.prototype.some.call(t.children,t=>t.classList.contains(e))){const o=Observer.childList(t,i=>{if(i.some(t=>{Array.prototype.some.call(t.removedNodes,t=>{return t.nodeType===Node.ELEMENT_NODE&&t.classList.contains(e)})})){o.stop();s(t)}})}else{if(t.getAttribute("data-restore-floor")===null){t.setAttribute("data-restore-floor","true");const e=dq(t,".comment-list");Observer.childList(e,_.debounce(e=>{console.log(e);n(t)},100))}}};const a=["//www.bilibili.com/video","//www.bilibili.com/bangumi"];if(a.some(t=>document.URL.includes(t))){fullyLoaded(()=>{const t=_.debounce(()=>dqa(".bb-comment").forEach(t=>s(t)),200);Observer.childListSubtree(document.body,t)})}}})(); |