diff --git a/packages/archive/src/lib/judgement.ts b/packages/archive/src/lib/judgement.ts index f53fa66..3945662 100644 --- a/packages/archive/src/lib/judgement.ts +++ b/packages/archive/src/lib/judgement.ts @@ -22,11 +22,9 @@ export default async function saveJudgements( logger: BaseLogger, prisma: PrismaClient, ) { - const res = await getResponse( - logger, - lgUrl(`/judgement?_contentOnly`, false), - false, - ).then((response): Promise => response.json()); + const res = await getResponse(logger, lgUrl(`/judgement`, false), false).then( + (response): Promise => response.json(), + ); const operations: PrismaPromise[] = []; const judgements = res.currentData.logs; diff --git a/packages/archive/src/lib/list.ts b/packages/archive/src/lib/list.ts index e4bb9a1..8559de8 100644 --- a/packages/archive/src/lib/list.ts +++ b/packages/archive/src/lib/list.ts @@ -19,9 +19,7 @@ interface PostData { } interface PostListResponse { - code: 200; - currentTemplate: "DiscussList"; - currentData: { + data: { forum: ForumData | null; publicForums: ForumData[]; posts: { @@ -41,11 +39,11 @@ export default async function getPostList( ) { const response = await getResponse( logger, - lgUrl(`/discuss?_contentOnly&page=${page}`), + lgUrl(`/discuss?page=${page}`), false, ); const { - currentData: { + data: { posts: { result }, }, } = (await response.json()) as PostListResponse; diff --git a/packages/archive/src/lib/parser.ts b/packages/archive/src/lib/parser.ts index ed37155..2401b88 100644 --- a/packages/archive/src/lib/parser.ts +++ b/packages/archive/src/lib/parser.ts @@ -28,7 +28,11 @@ export async function getResponse( retries = 1, ) { const response = await fetch(url, { - headers: cookie ? { cookie: process.env.COOKIE! } : undefined, + headers: { + "x-luogu-type": "content-only", + "x-lentille-request": "content-only", + ...(cookie ? { cookie: process.env.COOKIE! } : {}), + }, cache: "no-cache", }); logger.info( diff --git a/packages/archive/src/lib/paste.ts b/packages/archive/src/lib/paste.ts index e3c04dc..22a554f 100644 --- a/packages/archive/src/lib/paste.ts +++ b/packages/archive/src/lib/paste.ts @@ -24,10 +24,7 @@ export default async function savePaste( prisma: PrismaClient, id: string, ) { - const response = await getResponse( - logger, - lgUrl(`/paste/${id}?_contentOnly`, false), - ); + const response = await getResponse(logger, lgUrl(`/paste/${id}`, false)); const json = (await response.json()) as | { code: 403 | 404; currentData: LuoguError } | { code: 200; currentData: { paste: Paste } }; diff --git a/packages/archive/src/lib/post.ts b/packages/archive/src/lib/post.ts index 969f047..1d7ae08 100644 --- a/packages/archive/src/lib/post.ts +++ b/packages/archive/src/lib/post.ts @@ -39,7 +39,7 @@ interface ReplyData { } interface ResponseBody { - currentData: { + data: { forum: ForumData; post: PostData; replies: ReplyData; @@ -64,11 +64,9 @@ export async function savePost( let allReplies: ReplyContent[] = []; const fetchPage = (page: number) => - getResponse( - logger, - lgUrl(`/discuss/${id}?_contentOnly&page=${page}`), - false, - ).then((response): Promise => response.json()); + getResponse(logger, lgUrl(`/discuss/${id}?page=${page}`), false).then( + (response): Promise => response.json(), + ); const saveReplies = async (replies: ReplyContent[]) => { // eslint-disable-next-line no-restricted-syntax @@ -127,7 +125,7 @@ export async function savePost( }); }; - const { post, replies, forum } = (await fetchPage(1)).currentData; + const { post, replies, forum } = (await fetchPage(1)).data; const postTime = new Date(post.time * 1000); await upsertUserSnapshot(prisma, post.author); @@ -186,7 +184,7 @@ export async function savePost( )[0]; for (let i = Math.min(pages, maxPages); i > 0; i -= 1) { // eslint-disable-next-line no-await-in-loop - const { replies: newReplies } = (await fetchPage(i)).currentData; + const { replies: newReplies } = (await fetchPage(i)).data; // eslint-disable-next-line no-await-in-loop await saveReplies(newReplies.result); if (newReplies.result[newReplies.result.length - 1].id <= lastReply)