fix(discovery): 修复真实书籍封面显示

This commit is contained in:
admin committed 2026-09-12 08:38:58 +08:00
1 parent db8d5fc391
commit d33601c987
2 files changed
+12 -3

No files matched your search

+9 -3
View File
@@ -78,11 +78,17 @@ $('#theme').onclick = () => {
try { localStorage.setItem('weread-theme', theme); } catch { toast('主题已切换,本次浏览有效。'); }
};
/* 封面:沿用设计稿的示意封面(4 种底色 + 书名短行) */
/* 封面:优先显示微信读书返回的真实封面,加载失败时回退到示意封面 */
function cover(book, mini = false) {
const short = book.short || book.title || '';
if (mini) return `<div class="mini-cover ${book.cover}" aria-hidden="true"><b>${esc(book.title)}</b><small>${esc(book.author)}</small></div>`;
return `<div class="cover ${book.cover}"><span class="tiny">${esc(book.en || '')}</span><span class="title">${esc(short).replaceAll('\n', '<br>')}</span><span class="author">${esc(book.author)}</span><span class="publisher">READING SPACE · 藏书</span></div>`;
const coverUrl = book.cover_url || (typeof book.cover === 'string' && /^https?:\/\//i.test(book.cover) ? book.cover : '');
const coverClass = typeof book.cover === 'string' && !/^https?:\/\//i.test(book.cover) ? book.cover : '';
const fallback = mini
? `<div class="mini-cover ${coverClass}" aria-hidden="true"><b>${esc(book.title)}</b><small>${esc(book.author)}</small></div>`
: `<div class="cover ${coverClass}"><span class="tiny">${esc(book.en || '')}</span><span class="title">${esc(short).replaceAll('\n', '<br>')}</span><span class="author">${esc(book.author)}</span><span class="publisher">READING SPACE · 藏书</span></div>`;
if (!coverUrl) return fallback;
const className = mini ? 'real-cover mini-real-cover' : 'real-cover';
return `<img class="${className}" src="${esc(coverUrl)}" alt="${esc(book.title)}" loading="lazy" onerror='this.outerHTML=${JSON.stringify(fallback)}'>`;
}
function scoreText(book) {
return book.score ? `评分 ${Math.round(Number(book.score) * 10)}/100` : '暂无评分';