import fs from 'fs'; import path, {dirname} from 'path'; import axios from 'axios'; import {fileURLToPath} from 'url'; const __dirname = dirname(fileURLToPath(import.meta.url)); // Charger le fichier JSON const wikiArticles = JSON.parse(fs.readFileSync(path.join(__dirname, '..', 'assets', 'documents', 'all_wiki_osm.json'), 'utf8')); // Sélectionner un article au hasard const randomIndex = Math.floor(Math.random() * wikiArticles['elements'].length); console.log('wikiArticles[\'elements\']', wikiArticles['elements'].length) const selectedArticle = wikiArticles['elements'][randomIndex]; // Récupérer le titre et la description de l'article const title = selectedArticle.title; const pageId = selectedArticle.pageid; // Récupérer le contenu de l'article via l'API de MediaWiki const wikiApiUrl = `https://wiki.openstreetmap.org/w/api.php`; const params = { action: 'parse', pageid: pageId, format: 'json', prop: 'text', section: 0 }; axios.get(wikiApiUrl, {params}) .then(response => { const articleContent = response.data.parse.text['*']; const firstParagraph = articleContent.split('

')[1].split('

')[0]; // Sanitizer le texte const sanitizedText = firstParagraph.replace(/<\/?[^>]+(>|$)/g, ''); const sanitizedTextWithoutEntities = sanitizedText.replace(/&#(\d+);/g, (match, code) => { return String.fromCharCode(code); }); // Générer le message const message = `Je vous recommande de lire l'article "${title}" sur le wiki d'OpenStreetMap : ${sanitizedTextWithoutEntities} Lire la suite sur : https://wiki.openstreetmap.org/wiki/${title}`; console.log(message); }) .catch(error => { console.error(error); });