diff --git a/backend/src/module/api/rss.py b/backend/src/module/api/rss.py index d2de16fe..48a17aef 100644 --- a/backend/src/module/api/rss.py +++ b/backend/src/module/api/rss.py @@ -194,7 +194,7 @@ async def download_collection(data: Bangumi): @router.post( "/subscribe", response_model=APIResponse, dependencies=[Depends(get_current_user)] ) -async def subscribe(data: Bangumi): +async def subscribe(data: Bangumi, rss: RSSItem): with SeasonCollector() as collector: - resp = collector.subscribe_season(data) + resp = collector.subscribe_season(data, parser=rss.parser) return u_response(resp) diff --git a/backend/src/module/manager/collector.py b/backend/src/module/manager/collector.py index 282db739..ee14fb41 100644 --- a/backend/src/module/manager/collector.py +++ b/backend/src/module/manager/collector.py @@ -46,12 +46,15 @@ class SeasonCollector(DownloadClient): ) @staticmethod - def subscribe_season(data: Bangumi): + def subscribe_season(data: Bangumi, parser: str = "mikan"): with RSSEngine() as engine: data.added = True data.eps_collect = True engine.add_rss( - rss_link=data.rss_link, name=data.official_title, aggregate=False + rss_link=data.rss_link, + name=data.official_title, + aggregate=False, + parser=parser, ) result = engine.download_bangumi(data) engine.bangumi.add(data) diff --git a/webui/src/api/download.ts b/webui/src/api/download.ts index 909ed0d2..bbf86a82 100644 --- a/webui/src/api/download.ts +++ b/webui/src/api/download.ts @@ -42,12 +42,16 @@ export const apiDownload = { * 新番 * @param bangumiData - Bangumi 数据 */ - async subscribe(bangumiData: BangumiRule) { - const postData: BangumiAPI = { + async subscribe(bangumiData: BangumiRule, rss: RSS) { + const bangumi: BangumiAPI = { ...bangumiData, filter: bangumiData.filter.join(','), rss_link: bangumiData.rss_link.join(','), }; + const postData = { + data: bangumi, + rss, + }; const { data } = await axios.post( 'api/v1/rss/subscribe', postData diff --git a/webui/src/components/ab-add-rss.vue b/webui/src/components/ab-add-rss.vue index ee3b0d37..33003814 100644 --- a/webui/src/components/ab-add-rss.vue +++ b/webui/src/components/ab-add-rss.vue @@ -96,7 +96,7 @@ async function subscribe() { if (rule.value) { try { loading.subscribe = true; - const res = await apiDownload.subscribe(rule.value); + const res = await apiDownload.subscribe(rule.value, rss.value); loading.subscribe = false; if (res) { message.success('Subscribe Success!');