diff --git a/src/core/react-query/external/helpers.ts b/src/core/react-query/external/helpers.ts index 044238e39..c91d1d687 100644 --- a/src/core/react-query/external/helpers.ts +++ b/src/core/react-query/external/helpers.ts @@ -1,3 +1,3 @@ import type { DashboardNewsType } from '@/core/types/api/dashboard'; -export const transformShokoNews = (response: { items: DashboardNewsType[] }) => response.items ?? []; +export const transformShokoNews = (response: { results: DashboardNewsType[] }) => response.results ?? []; diff --git a/src/core/react-query/external/queries.ts b/src/core/react-query/external/queries.ts index 50c477963..076d25604 100644 --- a/src/core/react-query/external/queries.ts +++ b/src/core/react-query/external/queries.ts @@ -6,9 +6,12 @@ import { transformShokoNews } from '@/core/react-query/external/helpers'; import type { DashboardNewsType } from '@/core/types/api/dashboard'; export const useShokoNewsQuery = () => - useQuery<{ items?: DashboardNewsType[] }, unknown, DashboardNewsType[]>({ + useQuery<{ results?: DashboardNewsType[] }, unknown, DashboardNewsType[]>({ queryKey: ['shoko-news'], - queryFn: () => axios.get('https://shokoanime.com/jsonfeed/index.json'), + queryFn: async () => + axios.get( + 'https://shokoanime.com/api/getFiles?type=blog&offset=0&limit=4&sort=dateDescending', + ), select: transformShokoNews, retry: 1, }); diff --git a/src/core/types/api/dashboard.ts b/src/core/types/api/dashboard.ts index 3b742bdd6..3079a2a6b 100644 --- a/src/core/types/api/dashboard.ts +++ b/src/core/types/api/dashboard.ts @@ -48,9 +48,11 @@ export type DashboardEpisodeDetailsType = { }; export type DashboardNewsType = { - link: string; - title: string; - content_text: string; - url: string; - date_published: string; + filename: string; + meta: { + link: string; + title: string; + quick: string; + date: string; + }; }; diff --git a/src/pages/dashboard/panels/ShokoNews.tsx b/src/pages/dashboard/panels/ShokoNews.tsx index 0ddbb2a6f..e4de093b4 100644 --- a/src/pages/dashboard/panels/ShokoNews.tsx +++ b/src/pages/dashboard/panels/ShokoNews.tsx @@ -19,23 +19,24 @@ const newNewsCheck = (date: string) => { const NewsRow = ({ item }: { item: DashboardNewsType }) => { const { shokoNewsPostsCount } = useSettingsQuery().data.WebUI_Settings.dashboard; + const newsUrl = `https://shokoanime.com/blog/${item.filename.replace('.mdx', '')}`; return ( -
+
4 && ('mr-4'))}> -

{item.date_published}

- {newNewsCheck(item.date_published) &&

New!

} +

{item.meta.date}

+ {newNewsCheck(item.meta.date) &&

New!

}
-

{item.title}

+

{item.meta.title}

-

{item.content_text}

+

{item.meta.quick}

); }; @@ -48,7 +49,7 @@ function ShokoNews() { return (
- {newsQuery.data?.slice(0, shokoNewsPostsCount).map(item => )} + {newsQuery.data?.slice(0, shokoNewsPostsCount).map(item => )}
);