const fetch = require("node-fetch"); module.exports = async (titles) => { const url = new URL("https://ja.wikipedia.org/w/api.php"); const params = new URLSearchParams({ action: "query", format: "json", prop: "extracts", titles, redirects: "", exchars: 120, explaintext: "", }); try { const response = await fetch([url, params].join("?")); if (!response.ok) { throw new Error([response.status, response.statusText].join(":")); } const json = await response.json(); if (json == null || json.query == null || json.query.pages == null) { throw new Error(["response is invalid", JSON.stringify(json)].join(":")); } const pages = new Map(Object.entries(json.query.pages)); return pages.size > 0 ? [...pages.values()].map(({ extract }) => extract).join("\n") : "しらないにゃーん"; } catch (e) { console.error(e); } return null; };