适配新接口、插件;更新附录、通知书、课外书;修复、优化部分功能
This commit is contained in:
@@ -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);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 打开确认模态框
|
||||
|
||||
Reference in New Issue
Block a user