mirror of
https://github.com/the1812/Bilibili-Evolved.git
synced 2025-11-04 21:22:45 +08:00
Fix feeds card cannot get text
This commit is contained in:
parent
2a54054a26
commit
989ac7084a
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -56,7 +56,7 @@
|
||||
"expand-description.min.css": "58C7710A50521B80F7D872BDC4C652610D84C4FABC6874BA66DA37B4F8759224",
|
||||
"expand-description.min.js": "A56857AD6B1C9F431B233D188E857D30DD5A2EB644986DE32A21280B1B7BC7A7",
|
||||
"favorites-redirect.min.js": "70D6ECCE0402AA76387D2A3288C1148C60CC88D5378B7A2BDC813F3F78E4EE84",
|
||||
"feeds-apis.min.js": "B0207A3755F7A96D8D97A60AF1ABE1282290F6524841F6133F3B8B80B4222811",
|
||||
"feeds-apis.min.js": "DA603514BEFBD6790EB15DD95A0E6B68348904CDD4D775624052B03218308599",
|
||||
"feeds-filter.min.js": "10557E498B8BADA3C1C03E8C1DCD6FB24DBA2DA27A5A03BD861054F7E2989D46",
|
||||
"feeds-filter-card.vue.min.js": "178C60A5F2EFC3CDEB49C4B6BD90E7E05AF205A863AC464E1E03FD3C2B4602D2",
|
||||
"ffmpeg-support.min.js": "B88C5BFDC1CC582CA25098D6BA47189FF628B7323EF9F90D4CFBC4E946648927",
|
||||
|
||||
BIN
min/bundle.zip
BIN
min/bundle.zip
Binary file not shown.
2
min/feeds-apis.min.js
vendored
2
min/feeds-apis.min.js
vendored
@ -1 +1 @@
|
||||
(()=>{return(e,t)=>{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:"分享"}};class i extends EventTarget{constructor(){super(...arguments);this.cards=[]}addEventListener(e,t,n){super.addEventListener(e,t,n)}removeEventListener(e,t,n){super.removeEventListener(e,t,n)}async addCard(e){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{const t=await this.parseCard(e);this.cards.push(t);const n=new CustomEvent("addCard",{detail:t});this.dispatchEvent(n)}}}async removeCard(e){if(e instanceof HTMLElement&&e.classList.contains("card")){const t=(await this.parseCard(e)).id;const n=this.cards.findIndex(e=>e.id===t);const i=this.cards[n];this.cards.splice(n,1);const a=new CustomEvent("removeCard",{detail:i});this.dispatchEvent(a)}}async parseCard(e){const t=async(t,n=false)=>{const i=await SpinQuery.condition(()=>e.querySelector(t),e=>e!==null);if(i===null){console.warn(e,t);return""}const a=e.querySelector(".original-card-content .description");return a&&n?(i.innerText+"\n"+a.innerText).trim():i.innerText};const i=async e=>{const n=parseInt(await t(e));if(isNaN(n)){return 0}return n};const a=(()=>{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}return n.text})();const r={id:e.getAttribute("data-did"),username:await t(".main-content .user-name"),text:await t(".card-content .text.description,.video-container .title,.bangumi-container .title",true),reposts:await i(".button-bar .single-button:nth-child(1) .text-offset"),comments:await i(".button-bar .single-button:nth-child(2) .text-offset"),likes:await i(".button-bar .single-button:nth-child(3) .text-offset"),element:e,type:a};e.setAttribute("data-type",a.id.toString());return r}async startWatching(){const e=await SpinQuery.select(".card-list .content");if(!e){return false}const t=[...e.querySelectorAll(".content>.card")];t.forEach(e=>this.addCard(e));Observer.childList(e,e=>{e.forEach(e=>{e.addedNodes.forEach(e=>this.addCard(e));e.removedNodes.forEach(e=>this.removeCard(e))})});return true}}const a=new i;const r=async(e="video")=>{if(!getUID()){return[]}const n=await Ajax.getJsonWithCredentials(`https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_new?uid=${getUID()}&type_list=${e==="video"?8:512}`);if(n.code!==0){throw new Error(n.message)}if(e==="video"){const{getWatchlaterList:e}=await t.importAsync("watchlater-api");const i=await e();return n.data.cards.map(e=>{const t=JSON.parse(e.card);const n=_.get(e,"display.topic_info.topic_details",[]).map(e=>{return{id:e.topic_id,name:e.topic_name}});return{id:e.desc.dynamic_id_str,aid:t.aid,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:n,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:i.includes(t.aid)}})}else if(e==="bangumi"){return n.data.cards.map(e=>{const t=JSON.parse(e.card);return{id:e.desc.dynamic_id_str,aid:t.aid,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{export:{feedsCardsManager:a,feedsCardTypes:n,getVideoFeeds:r}}}})();
|
||||
(()=>{return(e,t)=>{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:"分享"}};class i extends EventTarget{constructor(){super(...arguments);this.cards=[]}addEventListener(e,t,n){super.addEventListener(e,t,n)}removeEventListener(e,t,n){super.removeEventListener(e,t,n)}async addCard(e){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{const t=await this.parseCard(e);this.cards.push(t);const n=new CustomEvent("addCard",{detail:t});this.dispatchEvent(n)}}}async removeCard(e){if(e instanceof HTMLElement&&e.classList.contains("card")){const t=(await this.parseCard(e)).id;const n=this.cards.findIndex(e=>e.id===t);const i=this.cards[n];this.cards.splice(n,1);const r=new CustomEvent("removeCard",{detail:i});this.dispatchEvent(r)}}async parseCard(e){const t=async(t,n=false)=>{const i=await SpinQuery.condition(()=>e.querySelector(t),e=>e!==null);if(i===null){console.warn(e,t);return""}const r=i.innerText.trim();if(n){const t=await SpinQuery.condition(()=>e.querySelector(".original-card-content .description"),e=>{if(e===null){return false}if(r){return true}return Boolean(e.innerText)});return t?(i.innerText+"\n"+t.innerText).trim():r}return r};const i=async e=>{const n=parseInt(await t(e));if(isNaN(n)){return 0}return n};const r=(()=>{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}return n.text})();const a={id:e.getAttribute("data-did"),username:await t(".main-content .user-name"),text:await t(".card-content .text.description,.video-container .title,.bangumi-container .title",true),reposts:await i(".button-bar .single-button:nth-child(1) .text-offset"),comments:await i(".button-bar .single-button:nth-child(2) .text-offset"),likes:await i(".button-bar .single-button:nth-child(3) .text-offset"),element:e,type:r};e.setAttribute("data-type",r.id.toString());return a}async startWatching(){const e=await SpinQuery.select(".card-list .content");if(!e){return false}const t=[...e.querySelectorAll(".content>.card")];t.forEach(e=>this.addCard(e));Observer.childList(e,e=>{e.forEach(e=>{e.addedNodes.forEach(e=>this.addCard(e));e.removedNodes.forEach(e=>this.removeCard(e))})});return true}}const r=new i;const a=async(e="video")=>{if(!getUID()){return[]}const n=await Ajax.getJsonWithCredentials(`https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_new?uid=${getUID()}&type_list=${e==="video"?8:512}`);if(n.code!==0){throw new Error(n.message)}if(e==="video"){const{getWatchlaterList:e}=await t.importAsync("watchlater-api");const i=await e();return n.data.cards.map(e=>{const t=JSON.parse(e.card);const n=_.get(e,"display.topic_info.topic_details",[]).map(e=>{return{id:e.topic_id,name:e.topic_name}});return{id:e.desc.dynamic_id_str,aid:t.aid,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:n,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:i.includes(t.aid)}})}else if(e==="bangumi"){return n.data.cards.map(e=>{const t=JSON.parse(e.card);return{id:e.desc.dynamic_id_str,aid:t.aid,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{export:{feedsCardsManager:r,feedsCardTypes:n,getVideoFeeds:a}}}})();
|
||||
@ -105,8 +105,24 @@ class FeedsCardsManager extends EventTarget {
|
||||
console.warn(element, selector)
|
||||
return ''
|
||||
}
|
||||
const repost = element.querySelector('.original-card-content .description') as HTMLElement
|
||||
return (repost && withRepost) ? (subElement.innerText + '\n' + repost.innerText).trim() : subElement.innerText
|
||||
const subElementText = subElement.innerText.trim()
|
||||
if (withRepost) {
|
||||
const repost = await SpinQuery.condition(
|
||||
() => element.querySelector('.original-card-content .description'),
|
||||
it => {
|
||||
if (it === null) {
|
||||
return false
|
||||
}
|
||||
if (subElementText) {
|
||||
return true
|
||||
}
|
||||
return Boolean(it.innerText)
|
||||
}
|
||||
) as HTMLElement
|
||||
// console.log(repost, repost.innerText, subElementText)
|
||||
return repost ? (subElement.innerText + '\n' + repost.innerText).trim() : subElementText
|
||||
}
|
||||
return subElementText
|
||||
}
|
||||
const getNumber = async (selector: string) => {
|
||||
const result = parseInt(await getText(selector))
|
||||
|
||||
Loading…
Reference in New Issue
Block a user