适配新接口、插件;更新附录、通知书、课外书;修复、优化部分功能

This commit is contained in:
anian
2026-06-15 20:32:43 +08:00
parent 92d591f70b
commit 048e4336d1
13 changed files with 129 additions and 149 deletions
+50 -28
View File
@@ -344,10 +344,6 @@ function init_douban_page() {
if (Number.isNaN(scoreNumber)) {
return null;
}
// 豆瓣常见是 10 分制,这里统一转换为 5 星展示
if (scoreNumber > 5) {
scoreNumber = scoreNumber / 2;
}
if (scoreNumber < 0) {
scoreNumber = 0;
}
@@ -357,16 +353,28 @@ function init_douban_page() {
return scoreNumber;
}
function getTypeNameCN(typeCode) {
var typeMap = {
'music': '音乐',
'drama': '演出',
'book': '图书',
'game': '游戏',
'movie': '影视',
// 'test': '测试'
};
return typeMap[typeCode] || typeCode;
function renderTypeNav(typeList) {
var $navList = $('.douban_cat_nav ul');
if ($navList.length === 0) {
return;
}
var navHtml = ['<li><a data-type="" class="cat-link active">全部<span></span></a></li>'];
var seen = {};
if (Array.isArray(typeList)) {
typeList.forEach(function (item) {
var key = item && item.key !== undefined && item.key !== null ? String(item.key).trim() : '';
if (!key || seen[key]) {
return;
}
seen[key] = true;
var safeKey = escapeHtml(key);
navHtml.push('<li><a data-type="' + safeKey + '" class="cat-link">' + safeKey + '<span></span></a></li>');
});
}
$navList.html(navHtml.join(''));
}
function renderScore(rawScore) {
@@ -386,7 +394,7 @@ function init_douban_page() {
var poster = escapeHtml(spec.poster || '/themes/theme-pix/assets/img/theme/banner.jpg');
var rawScore = faves.score || spec.score || '';
var createTime = escapeHtml(formatTime(faves.createTime));
var dataType = getTypeNameCN(spec.type || '--');
var dataType = escapeHtml(spec.type || '--');
var contentText = escapeHtml(spec.cardSubtitle || '暂无内容简介');
var pid = escapeHtml((item.metadata && item.metadata.name) || ('douban-' + Date.now()));
var scoreText = renderScore(rawScore);
@@ -476,7 +484,7 @@ function init_douban_page() {
$btn.text('收起');
}
});
$('.douban_content_main').each(function () {
var $content = $(this);
var $btn = $content.next('.douban_expand_btn');
@@ -658,23 +666,37 @@ function init_douban_page() {
return false;
});
var urlTag = new URLSearchParams(window.location.search).get('tag');
if (urlTag && urlTag.trim() !== '') {
var $matchedTag = $('.douban_cat_nav .cat-link').filter(function () {
var tagText = $(this).clone().find('span').remove().end().text().trim();
return tagText === urlTag;
}).first();
if ($matchedTag.length > 0) {
$matchedTag.addClass('active').parent().siblings().children('.cat-link').removeClass('active');
state.type = $matchedTag.attr('data-type') || '';
function applyUrlTagState() {
var urlTag = new URLSearchParams(window.location.search).get('tag');
if (urlTag && urlTag.trim() !== '') {
var $matchedTag = $('.douban_cat_nav .cat-link').filter(function () {
var tagText = $(this).clone().find('span').remove().end().text().trim();
return tagText === urlTag;
}).first();
if ($matchedTag.length > 0) {
$matchedTag.addClass('active').parent().siblings().children('.cat-link').removeClass('active');
state.type = $matchedTag.attr('data-type') || '';
} else {
state.type = $('.douban_cat_nav .cat-link.active').attr('data-type') || '';
}
} else {
state.type = $('.douban_cat_nav .cat-link.active').attr('data-type') || '';
}
} else {
state.type = $('.douban_cat_nav .cat-link.active').attr('data-type') || '';
}
requestList(1, state.type, false);
$.ajax({
type: 'GET',
url: '/apis/api.douban.moony.la/v1alpha1/doubanmovies/-/types',
dataType: 'json',
success: function (data) {
var typeList = Array.isArray(data) ? data : ((data && Array.isArray(data.items)) ? data.items : []);
renderTypeNav(typeList);
},
complete: function () {
applyUrlTagState();
requestList(1, state.type, false);
}
});
}
// 打开确认模态框