wikipedia-data-fetcher
Version:
A simple Node.js API to fetch Wikipedia page summaries and detailed information.
47 lines (46 loc) • 1.9 kB
JavaScript
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};
}
};