UNPKG

get-wikipedia-article

Version:

Fetch Wikipedia article resources (e.g. title, body, links...).

55 lines (45 loc) 1.24 kB
import { queriesType, wikipediaLanguageType as languageType, } from 'fullfiller-common/src/types'; import { fetchResource } from './common/utils'; type response = { links: { title: string }[]; plcontinue: string; }; async function getLinksRecursively( language: languageType, queries: queriesType ): Promise<string[]> { const resp = (await fetchResource(language, queries)) as unknown as response; const links = resp.links.map((obj) => obj.title); return !('plcontinue' in resp) ? links : links.concat( await getLinksRecursively(language, { ...queries, plcontinue: encodeURIComponent(resp.plcontinue), }) ); } /** * Fetch all Wikipedia articles that are linked in the given article. * @param title Wikipedia article title. * @returns Array of Wikipedia articles titles. */ async function getArticleLinks( language: languageType, title: string ): Promise<string[]> { const queries = { action: 'query', prop: 'links', redirects: undefined, pllimit: 'max', plnamespace: '0', titles: encodeURIComponent(title), }; const links = await getLinksRecursively(language, queries); return links; } export default getArticleLinks;