Fix image exporter

This commit is contained in:
the1812 2021-06-16 16:38:23 +08:00
parent dcddd9ef60
commit cd404209af
2 changed files with 3 additions and 3 deletions

View File

@ -1 +1 @@
(()=>(t,n)=>({widget:{condition:()=>document.URL.startsWith("https://www.bilibili.com/read/cv"),content:`\n<button class="gui-settings-flat-button column-image-export">\n<i class="mdi mdi-24px mdi-export"></i>\n<span>导出图片</span>\n</button>`,success:()=>{const t=dq(".column-image-export");const e=dq(t,"span");t.addEventListener("click",(async()=>{try{t.disabled=true;e.textContent="下载中...";const a=[];const o=document.title.replace(/ - 哔哩哔哩$/,"");const i=dq(".banner-img-holder");const s=retrieveImageUrl(i);if(s){a.push({...s,name:`${o}-banner${s.extension}`})}const c=dqa('.article-holder img:not([class*="cut-off-"])');c.forEach((t=>{const n=retrieveImageUrl(t);if(n){a.push({...n,name:`${o}-${a.length-1}${n.extension}`})}}));if(a.length===0){Toast.info("此专栏没有检测到任何图片.","专栏图片导出");return}const{DownloadPackage:l}=await n.importAsync("download-package");const r=await Promise.all(a.map((({url:t})=>Ajax.getBlob(t))));const d=new l;r.forEach(((t,n)=>d.add(a[n].name,t)));await d.emit(`${o}.zip`)}catch(t){logError(t)}finally{e.textContent="导出图片";t.disabled=false}}))}}}))();
(()=>(t,n)=>({widget:{condition:()=>document.URL.startsWith("https://www.bilibili.com/read/cv"),content:`\n<button class="gui-settings-flat-button column-image-export">\n<i class="mdi mdi-24px mdi-export"></i>\n<span>导出图片</span>\n</button>`,success:()=>{const t=dq(".column-image-export");const e=dq(t,"span");t.addEventListener("click",(async()=>{try{t.disabled=true;e.textContent="下载中...";const a=[];const o=document.title.replace(/ - 哔哩哔哩$/,"");const i=dq(".banner-image .card-image__image");const s=retrieveImageUrl(i);if(s){a.push({...s,name:`${o}-banner${s.extension}`})}const c=dqa('.article-content .img-box img:not([class*="cut-off-"])');c.forEach((t=>{const n=retrieveImageUrl(t);if(n){a.push({...n,name:`${o}-${a.length-1}${n.extension}`})}}));if(a.length===0){Toast.info("此专栏没有检测到任何图片.","专栏图片导出");return}const{DownloadPackage:r}=await n.importAsync("download-package");const l=await Promise.all(a.map((({url:t})=>Ajax.getBlob(t))));const d=new r;l.forEach(((t,n)=>d.add(a[n].name,t)));await d.emit(`${o}.zip`)}catch(t){logError(t)}finally{e.textContent="导出图片";t.disabled=false}}))}}}))();

View File

@ -15,7 +15,7 @@ export default {
text.textContent = '下载中...'
const images: { name: string; extension: string; url: string }[] = []
const title = document.title.replace(/ - 哔哩哔哩$/, '')
const bannerElement = dq('.banner-img-holder') as HTMLDivElement
const bannerElement = dq('.banner-image .card-image__image') as HTMLDivElement
const bannerUrl = retrieveImageUrl(bannerElement)
if (bannerUrl) {
images.push({
@ -23,7 +23,7 @@ export default {
name: `${title}-banner${bannerUrl.extension}`,
})
}
const articleImages = dqa('.article-holder img:not([class*="cut-off-"])')
const articleImages = dqa('.article-content .img-box img:not([class*="cut-off-"])')
articleImages.forEach(image => {
const url = retrieveImageUrl(image)
if (url) {