diff --git a/src/api/types.ts b/src/api/types.ts index 5192a0af..7a621b9b 100644 --- a/src/api/types.ts +++ b/src/api/types.ts @@ -1204,3 +1204,17 @@ export interface TransferQueue { state: string }[] } + +// 探索的数据源 +export interface DiscoverSource { + // 数据源名称 + name: string + // 媒体ID的前缀,不含: + mediaid_prefix: string + // 媒体数据源API地址 + api_path: string + // 过滤参数 + filter_params: { [key: string]: any } + // 过滤参数UI配置 + filter_ui: RenderProps[] +} diff --git a/src/pages/discover.vue b/src/pages/discover.vue index a8a2d3c4..dc8a7a3f 100644 --- a/src/pages/discover.vue +++ b/src/pages/discover.vue @@ -4,6 +4,9 @@ import router from '@/router' import TheMovieDbView from '@/views/discover/TheMovieDbView.vue' import DoubanView from '@/views/discover/DoubanView.vue' import BangumiView from '@/views/discover/BangumiView.vue' +import ExtraSourceView from '@/views/discover/ExtraSourceView.vue' +import { DiscoverSource } from '@/api/types' +import api from '@/api' const route = useRoute() const activeTab = ref(route.query.tab) @@ -11,6 +14,22 @@ const activeTab = ref(route.query.tab) function jumpTab(tab: string) { router.push('/subscribe/discover?tab=' + tab) } + +// 额外的数据源 +const extraDiscoverSources = ref([]) + +// 加载额外的发现数据源 +async function loadExtraDiscoverSources() { + try { + extraDiscoverSources.value = await api.get('discover/source') + } catch (error) { + console.log(error) + } +} + +onMounted(async () => { + await loadExtraDiscoverSources() +}) diff --git a/src/views/discover/ExtraSourceView.vue b/src/views/discover/ExtraSourceView.vue new file mode 100644 index 00000000..034e828b --- /dev/null +++ b/src/views/discover/ExtraSourceView.vue @@ -0,0 +1,30 @@ + + +