(()=>(e,t)=>{function i(e,t,i){if(t in e){Object.defineProperty(e,t,{value:i,enumerable:true,configurable:true,writable:true})}else{e[t]=i}return e}const n={repost:{id:1,name:"转发"},textWithImages:{id:2,name:"图文"},text:{id:4,name:"文字"},video:{id:8,name:"视频"},miniVideo:{id:16,name:"小视频"},column:{id:64,name:"专栏"},audio:{id:256,name:"音频"},bangumi:{id:512,name:"番剧"},share:{id:2048,name:"分享"},manga:{id:2049,name:"漫画"},film:{id:4098,name:"电影"},tv:{id:4099,name:"TV剧"},chinese:{id:4100,name:"国创"},documentary:{id:4101,name:"纪录片"},mediaList:{id:4300,name:"收藏夹"},liveRecord:{id:2047,name:"开播记录"}};const r=e=>{if(e.querySelector(".repost")){return n.repost}if(e.querySelector(".imagesbox")){return n.textWithImages}if(e.querySelector(".video-container")){return n.video}if(e.querySelector(".bangumi-container")){return n.bangumi}if(e.querySelector(".article-container")){return n.column}if(e.querySelector(".music-container")){return n.audio}if(e.querySelector(".h5share-container")){return n.share}if(e.querySelector(".vc-ctnr")){return n.miniVideo}if(e.querySelector(".live-container")){return n.liveRecord}return n.text};const a=e=>e.type===n.repost;const s=["//t.bilibili.com","//space.bilibili.com","//live.bilibili.com"];const o=[];class c extends EventTarget{constructor(...e){super(...e);i(this,"watching",false);i(this,"cards",[])}addEventListener(e,t,i){super.addEventListener(e,t,i)}removeEventListener(e,t,i){super.removeEventListener(e,t,i)}async addCard(e){if(e===undefined){return}if(e instanceof HTMLElement&&e.classList.contains("card")){if(e.querySelector(".skeleton")!==null){const t=Observer.childList(e,(()=>{if(e.querySelector(".skeleton")===null){t.stop();this.addCard(e)}}))}else{if(e.parentNode===null){return}const t=await this.parseCard(e);if(!t.presented){return}if(this.cards.find((e=>e.id===t.id))){return}this.cards.push(t);this.cards.sort(((e,t)=>{if(e.id===t.id){return 0}return e.id>t.id?-1:1}));const i=new CustomEvent("addCard",{detail:t});this.dispatchEvent(i);o.forEach((e=>e.added(t)))}}}async removeCard(e){if(e===undefined){return}if(e instanceof HTMLElement&&e.classList.contains("card")){const t=e.getAttribute("data-did");const i=this.cards.findIndex((e=>e.id===t));if(i===-1){return}const n=this.cards[i];this.cards.splice(i,1);const r=new CustomEvent("removeCard",{detail:n});this.dispatchEvent(r);o.forEach((e=>e.removed(n)))}}async parseCard(e){const t=e=>e.__vue__||e.parentElement.__vue__;const i=async t=>{const i=await SpinQuery.condition((()=>e.querySelector(t)),(t=>t!==null||e.parentNode===null));if(e.parentNode===null){return""}if(i===null){console.warn(e,t,e.parentNode);return""}const n=i.innerText.trim();return n};const s=e=>{if(e.card.origin===undefined){return{originalText:"",originalDescription:"",originalTitle:""}}const t=JSON.parse(e.card.origin);const i=e.originCardData.pureText;const n=_.get(t,"item.description","");const r=t.title;return{originalText:i,originalDescription:n,originalTitle:r}};const o=async i=>{if(i===n.bangumi){return""}const r=await SpinQuery.condition((()=>e),(i=>Boolean(t(i)||!e.parentNode)));if(e.parentNode===null){return""}if(r===null){console.warn(r,e,t(r),e.parentNode);return""}const a=t(r);if(i===n.repost){const e=a.card.item.content;const t=s(a);return[e,...Object.values(t).filter((e=>e!==""))].filter((e=>Boolean(e))).join("\n")}const o=a.originCardData.pureText;const c=a.originCardData.title;return[o,c].filter((e=>Boolean(e))).join("\n")};const c=async e=>{const t=parseInt(await i(e));if(isNaN(t)){return 0}return t};const d={id:e.getAttribute("data-did"),username:await i(".main-content .user-name"),text:"",reposts:await c(".button-bar .single-button:nth-child(1) .text-offset"),comments:await c(".button-bar .single-button:nth-child(2) .text-offset"),likes:await c(".button-bar .single-button:nth-child(3) .text-offset"),element:e,type:r(e),presented:true,async getText(){const e=await o(this.type);this.text=e;return e}};await d.getText();d.presented=e.parentNode!==null;e.setAttribute("data-type",d.type.id.toString());if(a(d)){const i=d.username;const n=t(d.element);const r=_.get(n,"card.origin_user.info.uname","");if(i===r){e.setAttribute("data-self-repost","true")}d.repostUsername=r;d.repostText=s(n).originalText}return d}async startWatching(){const e=e=>{const t=".card[data-did]";const i=e=>{if(e instanceof HTMLElement){if(e.matches(t)){return e}const i=e.querySelector(t);if(i){return i}}return undefined};const n=[...e.querySelectorAll(t)];n.forEach((e=>this.addCard(e)));console.log(n);return Observer.childList(e,(e=>{e.forEach((e=>{e.addedNodes.forEach((e=>this.addCard(i(e))));e.removedNodes.forEach((e=>this.removeCard(i(e))))}))}))};if(this.watching){return true}this.watching=true;if(document.URL.includes("//space.bilibili.com")){console.log("space watch");const t=await SpinQuery.select(".s-space");if(!t){return false}let i=null;Observer.childList(t,(async()=>{if(dq("#page-dynamic")){const t=await SpinQuery.select(".feed-card .content");console.log("enter feeds tab");if(i){i.stop()}i=e(t)}else{console.log("leave feeds tab");if(i){i.stop();i=null}await Promise.all(this.cards.map((e=>e.element)).map((e=>this.removeCard(e))))}}));this.watching=true;return true}if(document.URL.includes("//live.bilibili.com")){console.log("live watch");const t=await SpinQuery.select(".room-feed");if(!t){return false}let i=null;Observer.childList(t,(async()=>{if(dq(".room-feed-content")){const t=await SpinQuery.select(".room-feed-content .content");console.log("enter feeds tab");if(i){i.stop()}i=e(t)}else{console.log("leave feeds tab");if(i){i.stop();i=null}await Promise.all(this.cards.map((e=>e.element)).map((e=>this.removeCard(e))))}}));return true}if(document.URL.startsWith("https://t.bilibili.com/topic")){console.log("topic watch");const t=await SpinQuery.select(".page-container");if(!t){return false}let i=null;Observer.childList(t,(async()=>{if(dq(".page-container .feed")){const t=await SpinQuery.select(".feed .feed-topic");console.log("enter feeds tab");if(i){i.stop()}i=e(t)}else{console.log("leave feeds tab");if(i){i.stop();i=null}await Promise.all(this.cards.map((e=>e.element)).map((e=>this.removeCard(e))))}}));return true}const t=await SpinQuery.select(".feed-card .content, .detail-content .detail-card");if(!t){return false}e(t);return true}}const d=new c;const l=t=>{if(!e.feedsFilter){return false}const i=(e,t)=>{if(e.startsWith("/")&&e.endsWith("/")){return new RegExp(e.slice(1,e.length-1)).test(t)}return t.includes(e)};return e.feedsFilterPatterns.some((e=>{const n=e.match(/(.+) up:([^ ]+)/);if(n){return i(n[1],t.text)&&i(n[2],t.username)}return i(e,t.text)}))};const u=e=>{var t;return l({text:e.title+((t=e.dynamic)!==null&&t!==void 0?t:""),username:e.upName})};const m=e=>_.get(e,"extra.is_reserve_recall",0)===1;const f=async(e="video")=>{if(!getUID()){return[]}const t=await Ajax.getJsonWithCredentials(`https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_new?uid=${getUID()}&type_list=${e==="video"?8:512}`);if(t.code!==0){throw new Error(t.message)}const i=(()=>{const i=t.data.cards;if(e==="video"){return _.uniqBy(i.map((e=>{const t=JSON.parse(e.card);const i=_.get(e,"display.topic_info.topic_details",[]).map((e=>({id:e.topic_id,name:e.topic_name})));return{id:e.desc.dynamic_id_str,aid:t.aid,bvid:e.desc.bvid||t.bvid,title:t.title,upID:e.desc.user_profile.info.uid,upName:e.desc.user_profile.info.uname,upFaceUrl:e.desc.user_profile.info.face,coverUrl:t.pic,description:t.desc,timestamp:e.timestamp,time:new Date(e.timestamp*1e3),topics:i,dynamic:t.dynamic,like:formatCount(e.desc.like),duration:t.duration,durationText:formatDuration(t.duration,0),playCount:formatCount(t.stat.view),danmakuCount:formatCount(t.stat.danmaku),watchlater:store.state.watchlaterList.includes(t.aid)}})),(e=>e.aid))}else if(e==="bangumi"){return i.map((e=>{const t=JSON.parse(e.card);return{id:e.desc.dynamic_id_str,aid:t.aid,bvid:e.desc.bvid||t.bvid,epID:t.episode_id,title:t.new_desc,upName:t.apiSeasonInfo.title,upFaceUrl:t.apiSeasonInfo.cover,coverUrl:t.cover,description:"",timestamp:e.timestamp,time:new Date(e.timestamp*1e3),like:formatCount(e.desc.like),durationText:"",playCount:formatCount(t.play_count),danmakuCount:formatCount(t.bullet_count),watchlater:false}}))}else{return[]}})();return i.filter((e=>!u(e)))};const p=e=>{const t=[/^https:\/\/t\.bilibili\.com\/$/,/^https:\/\/space\.bilibili\.com\//,/^https:\/\/live\.bilibili\.com\/(blanc\/)?[\d]+/,/^https:\/\/t\.bilibili\.com\//];if(t.every((e=>!e.test(document.URL)))){return}(async()=>{const t=await d.startWatching();if(!t){console.error("feedsCardsManager.startWatching() failed");return}const{added:i}=e;if(i){d.cards.forEach((e=>i(e)))}const n=()=>{};o.push({added:n,removed:n,...e})})()};const h=(e,t)=>{const i=dq(e.element,".more-panel");const{className:n,text:r,action:a}=t;if(!i||dq(i,`.${n}`)){return}const s=document.createElement("p");s.classList.add("child-button","c-pointer",n);s.textContent=r;const o=[...new Set([...i.children].map((e=>e.getAttributeNames().filter((e=>e.startsWith("data-v-"))))).flat())];o.forEach((e=>s.setAttribute(e,"")));s.addEventListener("click",(t=>{a(t);e.element.click()}));i.appendChild(s)};return{export:{feedsCardsManager:d,feedsCardTypes:n,supportedUrls:s,getVideoFeeds:f,forEachFeedsCard:p,addMenuItem:h,isCardBlocked:l,isVideoCardBlocked:u,isPreOrderedVideo:m}}})();