mirror of
https://github.com/Cp0204/quark-auto-save.git
synced 2026-01-14 00:10:43 +08:00
新增在任务列表的海报视图下点击任务名称打开 TMDB 季页面的功能
- 为任务列表海报视图中的任务名称添加点击事件处理器
- 新增 getTaskTmdbId() 方法,智能获取任务的 TMDB ID
- 新增 getTaskSeasonNumber() 方法,获取任务的季数信息
- 新增 openTaskTmdbPage() 方法,优先打开特定季的 TMDB 页面
- 只有当任务有匹配项目时才显示为可点击状态
- 当有季数信息时打开 /tv/{tmdb_id}/season/{season_number} 页面
- 当无季数信息时回退到打开整个节目页面
- 提升了用户访问 TMDB 页面的便捷性和精确性
This commit is contained in:
parent
46b07fcdac
commit
922c47848b
@ -8179,4 +8179,14 @@ div:has(> .collapse:not(.show)):has(+ .row.title[title^="资源搜索"]) {
|
||||
/* 模态框面包屑导航滚动条隐藏 */
|
||||
#fileSelectModal .breadcrumb::-webkit-scrollbar {
|
||||
display: none; /* 隐藏滚动条 */
|
||||
}
|
||||
|
||||
/* 任务列表海报视图 - 可点击的任务名称样式 */
|
||||
.discovery-title[style*="cursor: pointer"] {
|
||||
color: var(--dark-text-color);
|
||||
transition: color 0.2s ease;
|
||||
}
|
||||
|
||||
.discovery-title[style*="cursor: pointer"]:hover {
|
||||
color: var(--focus-border-color);
|
||||
}
|
||||
@ -1312,7 +1312,10 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="discovery-info">
|
||||
<div class="discovery-title" :title="getTasklistPosterTitle(task, index)" style="cursor: default;">
|
||||
<div class="discovery-title"
|
||||
:title="getTasklistPosterTitle(task, index)"
|
||||
:style="{ cursor: getTaskTmdbId(task) ? 'pointer' : 'default' }"
|
||||
@click="openTaskTmdbPage(task)">
|
||||
{{ task.taskname }}
|
||||
<span v-if="getTaskShowStatus(task.taskname)"> · {{ getTaskShowStatus(task.taskname) }}</span>
|
||||
<span v-if="isTaskUpdatedToday(task.taskname) && shouldShowTodayIndicator()"
|
||||
@ -5812,7 +5815,7 @@
|
||||
}
|
||||
},
|
||||
|
||||
// 打开“内容管理”任务匹配到的节目的 TMDB 页面
|
||||
// 打开"内容管理"任务匹配到的节目的 TMDB 页面
|
||||
openTaskMatchedTmdbPage(task) {
|
||||
try {
|
||||
if (!task) return;
|
||||
@ -5825,6 +5828,64 @@
|
||||
console.warn('打开任务匹配TMDB页面失败', e);
|
||||
}
|
||||
},
|
||||
// 获取任务的 TMDB ID(用于任务列表海报视图)
|
||||
getTaskTmdbId(task) {
|
||||
try {
|
||||
if (!task) return null;
|
||||
// 优先从 calendar.tasks 中获取匹配的任务信息
|
||||
const calendarTask = this.getCalendarTaskByName(task.taskname);
|
||||
if (calendarTask) {
|
||||
return (calendarTask.match && calendarTask.match.tmdb_id) || calendarTask.match_tmdb_id || calendarTask.tmdb_id;
|
||||
}
|
||||
// 如果 calendar.tasks 中没有,则从任务配置中获取
|
||||
const cal = (task.calendar_info) || {};
|
||||
const match = cal.match || {};
|
||||
return match.tmdb_id || task.tmdb_id;
|
||||
} catch (e) {
|
||||
return null;
|
||||
}
|
||||
},
|
||||
// 获取任务的季数(用于任务列表海报视图)
|
||||
getTaskSeasonNumber(task) {
|
||||
try {
|
||||
if (!task) return null;
|
||||
// 优先从 calendar.tasks 中获取匹配的任务信息
|
||||
const calendarTask = this.getCalendarTaskByName(task.taskname);
|
||||
if (calendarTask) {
|
||||
return (calendarTask.match && calendarTask.match.latest_season_number) ||
|
||||
calendarTask.matched_latest_season_number ||
|
||||
calendarTask.season_number;
|
||||
}
|
||||
// 如果 calendar.tasks 中没有,则从任务配置中获取
|
||||
const cal = (task.calendar_info) || {};
|
||||
const match = cal.match || {};
|
||||
return match.latest_season_number || task.season_number;
|
||||
} catch (e) {
|
||||
return null;
|
||||
}
|
||||
},
|
||||
// 打开任务列表海报视图中任务的 TMDB 页面
|
||||
openTaskTmdbPage(task) {
|
||||
try {
|
||||
if (!task) return;
|
||||
const tmdbId = this.getTaskTmdbId(task);
|
||||
if (tmdbId) {
|
||||
// 获取匹配的季数
|
||||
const seasonNumber = this.getTaskSeasonNumber(task);
|
||||
if (seasonNumber) {
|
||||
// 打开特定季的页面
|
||||
const url = `https://www.themoviedb.org/tv/${tmdbId}/season/${seasonNumber}`;
|
||||
window.open(url, '_blank');
|
||||
} else {
|
||||
// 如果没有季数信息,则打开整个节目的页面
|
||||
const url = `https://www.themoviedb.org/tv/${tmdbId}`;
|
||||
window.open(url, '_blank');
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
console.warn('打开任务TMDB页面失败', e);
|
||||
}
|
||||
},
|
||||
|
||||
// 打开集的TMDB页面(合并集打开最后一集)
|
||||
openEpisodeTmdbPage(episode) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user