feat 详情页支持IMDBID搜索

This commit is contained in:
jxxghp
2023-08-24 08:32:58 +08:00
parent 55abc47d0e
commit 4491e80f6a
5 changed files with 35 additions and 4 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "moviepilot", "name": "moviepilot",
"version": "1.0.5", "version": "1.0.6",
"private": true, "private": true,
"scripts": { "scripts": {
"dev": "vite --host", "dev": "vite --host",
+1
View File
@@ -349,6 +349,7 @@ function handleSearch() {
: `douban:${props.media?.douban_id}` : `douban:${props.media?.douban_id}`
}`, }`,
type: props.media?.type, type: props.media?.type,
area: 'title',
}, },
}) })
} }
+4
View File
@@ -9,6 +9,9 @@ const keyword = route.query?.keyword?.toString() ?? ''
// 查询类型 // 查询类型
const type = route.query?.type?.toString() ?? '' const type = route.query?.type?.toString() ?? ''
// 搜索字段
const area = route.query?.area?.toString() ?? ''
</script> </script>
<template> <template>
@@ -16,6 +19,7 @@ const type = route.query?.type?.toString() ?? ''
<TorrentCardListView <TorrentCardListView
:keyword="keyword" :keyword="keyword"
:type="type" :type="type"
:area="area"
/> />
</div> </div>
</template> </template>
+24 -3
View File
@@ -379,12 +379,13 @@ function joinArray(arr: string[]) {
} }
// 开始搜索 // 开始搜索
function handleSearch() { function handleSearch(area: string) {
router.push({ router.push({
path: '/resource', path: '/resource',
query: { query: {
keyword: `tmdb:${mediaDetail.value.tmdb_id}`, keyword: `tmdb:${mediaDetail.value.tmdb_id}`,
type: mediaDetail.value.type, type: mediaDetail.value.type,
area,
}, },
}) })
} }
@@ -440,11 +441,31 @@ onBeforeMount(() => {
</span> </span>
</div> </div>
<div class="media-actions"> <div class="media-actions">
<VBtn v-if="mediaDetail.tmdb_id" variant="tonal" color="info" @click="handleSearch"> <VBtn v-if="mediaDetail.tmdb_id" variant="tonal" color="info">
<template #prepend> <template #prepend>
<VIcon icon="mdi-magnify" /> <VIcon icon="mdi-magnify" />
</template> </template>
搜索 搜索资源
<VMenu
activator="parent"
close-on-content-click
>
<VList>
<VListItem
variant="plain"
@click="handleSearch('title')"
>
<VListItemTitle>标题</VListItemTitle>
</VListItem>
<VListItem
v-show="mediaDetail.imdb_id"
variant="plain"
@click="handleSearch('imdbid')"
>
<VListItemTitle>IMDB链接</VListItemTitle>
</VListItem>
</VList>
</VMenu>
</VBtn> </VBtn>
<VBtn v-if="mediaDetail.type === '电影'" class="ms-2" :color="getSubscribeColor" variant="tonal" @click="handleSubscribe(0)"> <VBtn v-if="mediaDetail.type === '电影'" class="ms-2" :color="getSubscribeColor" variant="tonal" @click="handleSubscribe(0)">
<template #prepend> <template #prepend>
@@ -13,6 +13,9 @@ const props = defineProps({
// 类型 // 类型
type: String, type: String,
// 搜索字段
area: String,
}) })
interface SearchTorrent extends Context { interface SearchTorrent extends Context {
@@ -124,6 +127,7 @@ async function fetchData(): Promise<Array<Context>> {
let searchData: Array<Context> let searchData: Array<Context>
const keyword = props.keyword ?? '' const keyword = props.keyword ?? ''
const mtype = props.type ?? '' const mtype = props.type ?? ''
const area = props.area ?? ''
if (!keyword) { if (!keyword) {
// 查询上次搜索结果 // 查询上次搜索结果
searchData = await api.get('search/last') searchData = await api.get('search/last')
@@ -136,6 +140,7 @@ async function fetchData(): Promise<Array<Context>> {
searchData = await api.get(`search/media/${props.keyword}`, { searchData = await api.get(`search/media/${props.keyword}`, {
params: { params: {
mtype, mtype,
area,
}, },
}) })
} }