七十二家房客-观看平台v161
This commit is contained in:
parent
96a7dae310
commit
f3a5c1e9c9
@ -1,5 +1,5 @@
|
||||
{
|
||||
"running": false,
|
||||
"lastMessage": "自动采集完成",
|
||||
"updatedAt": "2026-03-12T05:01:28.586Z"
|
||||
"lastMessage": "采集启动失败: page.goto: Target page, context or browser has been closed\nCall log:\n\u001b[2m - navigating to \"https://www1.gdtv.cn/tvColumn/768\", waiting until \"domcontentloaded\"\u001b[22m\n",
|
||||
"updatedAt": "2026-03-12T05:16:36.500Z"
|
||||
}
|
||||
@ -4,44 +4,67 @@
|
||||
<div class="col-12">
|
||||
<div class="top-card card border-0 shadow-sm">
|
||||
<div class="card-body d-flex flex-wrap justify-content-between align-items-center gap-3">
|
||||
|
||||
<div>
|
||||
<h2 class="mb-2 page-title">{{ columnInfo.name || '七十二家房客播放器' }}</h2>
|
||||
<div class="page-subtitle">
|
||||
共 {{ allEpisodeList.length }} 条 | 最后更新:{{ updatedAtText }}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="d-flex flex-wrap gap-2">
|
||||
<div class="card-body d-flex flex-wrap gap-2 align-items-center">
|
||||
<button class="btn btn-outline-dark btn-sm" @click="playPrevEpisode" :disabled="!hasPrevEpisode">
|
||||
上一集
|
||||
</button>
|
||||
|
||||
<button class="btn btn-outline-dark btn-sm" @click="playNextEpisode" :disabled="!hasNextEpisode">
|
||||
下一集
|
||||
</button>
|
||||
|
||||
<div class="form-check form-switch ms-2">
|
||||
<input id="autoNext" v-model="autoNext" class="form-check-input" type="checkbox" />
|
||||
<label class="form-check-label" for="autoNext">自动下一集</label>
|
||||
</div>
|
||||
|
||||
<select v-model="playMode" class="form-select form-select-sm mode-select">
|
||||
<option value="asc">顺序播放</option>
|
||||
<option value="desc">倒序播放</option>
|
||||
</select>
|
||||
</div>
|
||||
<button class="btn btn-dark btn-sm px-3" @click="handleRefresh">刷新数据</button>
|
||||
<button class="btn btn-outline-dark btn-sm px-3" @click="openGitRepo">git仓库:v1.6</button>
|
||||
<button class="btn btn-warning btn-sm px-3" @click="openSource">数据来源:荔枝网</button>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-12">
|
||||
<div class="toolbar-card card border-0 shadow-sm">
|
||||
<div class="card-body d-flex flex-wrap gap-2 align-items-center">
|
||||
<button class="btn btn-outline-dark btn-sm" @click="playPrevEpisode" :disabled="!hasPrevEpisode">
|
||||
上一集
|
||||
</button>
|
||||
<!--<div class="col-12">-->
|
||||
<!-- <div class="toolbar-card card border-0 shadow-sm">-->
|
||||
<!-- <div class="card-body d-flex flex-wrap gap-2 align-items-center">-->
|
||||
<!-- <button class="btn btn-outline-dark btn-sm" @click="playPrevEpisode" :disabled="!hasPrevEpisode">-->
|
||||
<!-- 上一集-->
|
||||
<!-- </button>-->
|
||||
|
||||
<button class="btn btn-outline-dark btn-sm" @click="playNextEpisode" :disabled="!hasNextEpisode">
|
||||
下一集
|
||||
</button>
|
||||
<!-- <button class="btn btn-outline-dark btn-sm" @click="playNextEpisode" :disabled="!hasNextEpisode">-->
|
||||
<!-- 下一集-->
|
||||
<!-- </button>-->
|
||||
|
||||
<div class="form-check form-switch ms-2">
|
||||
<input id="autoNext" v-model="autoNext" class="form-check-input" type="checkbox" />
|
||||
<label class="form-check-label" for="autoNext">自动下一集</label>
|
||||
</div>
|
||||
<!-- <div class="form-check form-switch ms-2">-->
|
||||
<!-- <input id="autoNext" v-model="autoNext" class="form-check-input" type="checkbox" />-->
|
||||
<!-- <label class="form-check-label" for="autoNext">自动下一集</label>-->
|
||||
<!-- </div>-->
|
||||
|
||||
<select v-model="playMode" class="form-select form-select-sm mode-select">
|
||||
<option value="asc">顺序播放</option>
|
||||
<option value="desc">倒序播放</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <select v-model="playMode" class="form-select form-select-sm mode-select">-->
|
||||
<!-- <option value="asc">顺序播放</option>-->
|
||||
<!-- <option value="desc">倒序播放</option>-->
|
||||
<!-- </select>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!--</div>-->
|
||||
|
||||
<div class="col-xl-8 col-lg-7">
|
||||
<div class="content-card card border-0 shadow-sm">
|
||||
@ -73,7 +96,7 @@
|
||||
@select="playEpisode"
|
||||
/>
|
||||
|
||||
<QishierProjectLinks />
|
||||
<!--<QishierProjectLinks />-->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -112,6 +135,8 @@ const errorMsg = ref('')
|
||||
const updatedAt = ref<string | null>(null)
|
||||
const years = ref<number[]>([])
|
||||
const selectedYear = ref('all')
|
||||
const months = ref<number[]>([])
|
||||
const selectedMonth = ref('all')
|
||||
|
||||
const autoNext = ref(true)
|
||||
const playMode = ref<'asc' | 'desc'>('asc')
|
||||
@ -126,7 +151,16 @@ const displayEpisodeList = computed(() => {
|
||||
|
||||
if (selectedYear.value !== 'all') {
|
||||
const year = Number(selectedYear.value)
|
||||
list = list.filter(item => new Date(item.releasedAt).getFullYear() === year)
|
||||
list = list.filter(
|
||||
item => new Date(item.releasedAt).getFullYear() === year
|
||||
)
|
||||
}
|
||||
|
||||
if (selectedMonth.value !== 'all') {
|
||||
const month = Number(selectedMonth.value)
|
||||
list = list.filter(
|
||||
item => new Date(item.releasedAt).getMonth() + 1 === month
|
||||
)
|
||||
}
|
||||
|
||||
if (playMode.value === 'desc') {
|
||||
@ -167,6 +201,10 @@ function getEpisodeYear(item: EpisodeData) {
|
||||
return String(new Date(item.releasedAt).getFullYear())
|
||||
}
|
||||
|
||||
function openGitRepo() {
|
||||
window.open('https://git.a-hxin.cn/ahxin/72QishierPlayer.git', '_blank')
|
||||
}
|
||||
|
||||
async function fetchAllEpisodes() {
|
||||
try {
|
||||
errorMsg.value = ''
|
||||
@ -183,6 +221,14 @@ async function fetchAllEpisodes() {
|
||||
return
|
||||
}
|
||||
|
||||
months.value = [
|
||||
...new Set(
|
||||
allEpisodeList.value.map(item =>
|
||||
new Date(item.releasedAt).getMonth() + 1
|
||||
)
|
||||
)
|
||||
].sort((a, b) => a - b)
|
||||
|
||||
const savedEpisodeId = getCurrentEpisodeId()
|
||||
const savedEpisode = allEpisodeList.value.find(item => item.id === savedEpisodeId)
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user