UNPKG

wikipedia-data-fetcher

Version:

A simple Node.js API to fetch Wikipedia page summaries and detailed information.

47 lines (46 loc) 1.9 kB
const axios = require("axios"); exports.searchData = async (Search) => { try { const query = Search; const response = await axios.get(`https://en.wikipedia.org/api/rest_v1/page/summary/${encodeURIComponent(query)}`); const detailsResponse = await axios.get("https://en.wikipedia.org/w/api.php", { params: { action: "query", prop: "extracts|info|links|revisions", explaintext: true, titles: query, format: "json", inprop: "url", rvprop: "timestamp|user" } }); const page = Object.values(detailsResponse.data.query.pages)[0]; const infoboxResponse = await axios.get("https://en.wikipedia.org/w/api.php", { params: { action: "query", prop: "revisions", rvprop: "content", rvsection: 0, titles: query, format: "json", formatversion: 2 } }); const infoboxData = infoboxResponse.data.query.pages[0]?.revisions?.[0]?.content || "No infobox found"; return { status: 1, title: response.data.title, description: response.data.extract, full_content: page.extract || "Content not available", thumbnail: response.data.thumbnail?.source || null, full_url: page.fullurl, last_edit: page.revisions?.[0]?.timestamp || "N/A", last_editor: page.revisions?.[0]?.user || "Unknown", links: page.links?.map(link => link.title) || [], infobox: infoboxData, }; } catch (error) { console.log(error); return { status: 500, message: "Internal Server Error",error}; } };