diff --git a/src/utils/api.js b/src/utils/api.js index 19d1a12c544fea86a8ac551e9b8d77bcf87a36e3..58695258e268059be0e86ce3f9c4232309c96903 100644 --- a/src/utils/api.js +++ b/src/utils/api.js @@ -54,8 +54,7 @@ async function callApi(url, authToken = null, method = 'GET', data = null) { // ───────────────────────────────────────────────────────────────────────────── /** - * Récupère les lexiques de l'utilisateur, - * en langue par défaut "fr". + * Récupère les lexiques de l'utilisateur * * @param {string} authToken - Le token d'authentification. * @returns {Promise<any[]>} - Liste des lexiques trouvés. @@ -66,37 +65,6 @@ async function getLexicons(authToken) { return callApi(url, authToken); } -/** - * Récupère tous les lexiques (catégories) de l'utilisateur - */ -async function getAllCategoriesLexicons(authToken) { - const categories = ["User", "Group", "Zero", "New words"]; - - const promises = categories.map(async (category) => { - const baseUrl = "https://babalex.lezinter.net/api/lexicon/search"; - const url = `${baseUrl}?&category=${encodeURIComponent(category)}&language=fr`; - - try { - return await callApi(url, authToken); - } catch (error) { - console.warn(`âš ï¸ Aucune donnée trouvée (ou accès refusé) pour la catégorie "${category}" :`, error.message); - return []; - } - }); - - try { - const resultsByCategory = await Promise.all(promises); - const combined = resultsByCategory.flat(); - - log("✅ Lexiques récupérés (toutes catégories confondues) :", combined); - return combined; - } catch (error) { - log("⌠Erreur lors de la récupération multi-catégories :", error); - return []; - } -} - - // ───────────────────────────────────────────────────────────────────────────── // â–Œ Récupération des entrées d'un lexique // ───────────────────────────────────────────────────────────────────────────── @@ -219,7 +187,6 @@ async function AddWord(authToken, selectedWord, lexiconIds, force = false) { window.callApi = callApi; window.getLexicons = getLexicons; -window.getAllCategoriesLexicons = getAllCategoriesLexicons; window.getLexiconEntries = getLexiconEntries; window.getAllLexiconWords = getAllLexiconWords; window.getWiktionaryDefinition = getWiktionaryDefinition; diff --git a/src/utils/definitions.js b/src/utils/definitions.js index b59e496c0fdf72d6b64bdfe288c1f450c942b1c0..3ff087cdc208418faeee8785138683caf99edb95 100644 --- a/src/utils/definitions.js +++ b/src/utils/definitions.js @@ -125,45 +125,69 @@ async function fetchLexiconDefinitions(word) { * Récupère la définition d'un mot depuis le Wiktionnaire (fr). * Retourne un tableau d'objets : [{ source: 'Wiktionnaire', text: '...' }] */ -// async function fetchWiktionaryDefinition(word) { -// try { -// log(`🔠Requête Wiktionnaire pour "${word}"...`); -// if (!word || word.trim() === "") { -// throw new Error("âš ï¸ Mot vide, impossible d'envoyer la requête."); -// } -// const wiktionaryURL = `https://fr.wiktionary.org/w/api.php?action=query&format=json&origin=*&prop=extracts&explaintext=true&redirects=1&titles=${encodeURIComponent(word)}`; -// const response = await fetch(wiktionaryURL); -// if (!response.ok) { -// throw new Error(`⌠Erreur API Wiktionnaire: ${response.statusText}`); -// } -// const data = await response.json(); -// log("📖 Réponse API (Wiktionnaire) :", data); - -// const pages = data.query?.pages; -// const page = pages ? Object.values(pages)[0] : null; - -// const definitionText = page && page.extract -// ? page.extract.trim() -// : "âš ï¸ Aucune définition trouvée sur le Wiktionnaire."; - -// log("🌠Définition Wiktionnaire extraite :", definitionText); - -// return [ -// { -// source: "Wiktionnaire", -// text: definitionText -// } -// ]; -// } catch (error) { -// log("⌠Erreur Wiktionnaire :", error); -// return [ -// { -// source: "Wiktionnaire", -// text: "âš ï¸ Erreur lors de la récupération sur le Wiktionnaire." -// } -// ]; -// } -// } +async function fetchWiktionaryDefinition(word) { + try { + const result = await browser.storage.local.get("accessToken"); + authToken = result.accessToken; + + if (!authToken) { + // Utiliser la première fonction si l'utilisateur n'est pas connecté + log(`🔠Requête Wiktionnaire pour "${word}"...`); + if (!word || word.trim() === "") { + throw new Error("âš ï¸ Mot vide, impossible d'envoyer la requête."); + } + const wiktionaryURL = `https://fr.wiktionary.org/w/api.php?action=query&format=json&origin=*&prop=extracts&explaintext=true&redirects=1&titles=${encodeURIComponent(word)}`; + const response = await fetch(wiktionaryURL); + if (!response.ok) { + throw new Error(`⌠Erreur API Wiktionnaire: ${response.statusText}`); + } + const data = await response.json(); + log("📖 Réponse API (Wiktionnaire) :", data); + + const pages = data.query?.pages; + const page = pages ? Object.values(pages)[0] : null; + + const definitionText = page && page.extract + ? page.extract.trim() + : "âš ï¸ Aucune définition trouvée sur le Wiktionnaire."; + + log("🌠Définition Wiktionnaire extraite :", definitionText); + + return [ + { + source: "Wiktionnaire", + text: definitionText + } + ]; + } else { + // Utiliser la seconde fonction si l'utilisateur est connecté + log(` Recherche de la définition pour : ${word}`); + + // Récupération des données depuis l'API + const apiResponse = await wikiApiResponse(word); + log("Réponse brute de l'API :", apiResponse); + + if (!Array.isArray(apiResponse) || apiResponse.length === 0) { + console.warn(`Aucune définition trouvée pour "${word}"`); + return []; // Retourne un tableau vide si aucune définition + } + + // Formatage des données + const formattedData = formatDefinitionData(apiResponse); + log("Données formatées :", formattedData); + + return [ + { + source: "Wiktionnaire", + text: formattedData.definitions.length > 0 ? formattedData.definitions.join(" | ") : "âš ï¸ Aucune définition disponible." + } + ]; + } + } catch (error) { + log("⌠Erreur lors de la récupération de la définition :", error); + return [{ source: "Wiktionnaire", text: "Erreur lors de la récupération sur le Wiktionnaire." }]; + } +} async function wikiApiResponse(word) { const result = await browser.storage.local.get("accessToken"); @@ -238,36 +262,6 @@ function formatDefinitionData(apiResponse) { return formattedData; } -async function fetchWiktionaryDefinition(word) { - try { - log(` Recherche de la définition pour : ${word}`); - - // Récupération des données depuis l'API - const apiResponse = await wikiApiResponse(word); - log("Réponse brute de l'API :", apiResponse); - - if (!Array.isArray(apiResponse) || apiResponse.length === 0) { - console.warn(`Aucune définition trouvée pour "${word}"`); - return []; // Retourne un tableau vide si aucune définition - } - - // Formatage des données - const formattedData = formatDefinitionData(apiResponse); - log("Données formatées :", formattedData); - - return [ - { - source: "Wiktionnaire", - text: formattedData.definitions.length > 0 ? formattedData.definitions.join(" | ") : "âš ï¸ Aucune définition disponible." - } - ]; - } catch (error) { - log("Erreur lors de la récupération de la définition :", error); - return [{ source: "Wiktionnaire", text: "Erreur lors de la récupération sur le Wiktionnaire." }]; - } -} - - // ───────────────────────────────────────────────────────────────────────────── // â–Œ Affichage des définitions dans la barre latérale // ───────────────────────────────────────────────────────────────────────────── @@ -479,8 +473,8 @@ async function showDefinitions(word) { } /** -* Appel direct pour récupérer les définitions d’un mot uniquement via l’API -* (sans Wiktionnaire), puis gérer l’affichage d’erreur ou non. +* Appel direct pour récupérer les définitions d'un mot uniquement via l'API +* (sans Wiktionnaire), puis gérer l'affichage d'erreur ou non. */ async function fetchDefinition(word) { log(`🔠Recherche de la définition pour '${word}'...`); diff --git a/src/utils/logger.js b/src/utils/logger.js index 9828f273969a19ea77e758e8a30ca17ae84d36ba..3d3891c61284b17268311004cb1246ab881987da 100644 --- a/src/utils/logger.js +++ b/src/utils/logger.js @@ -5,7 +5,7 @@ (function () { if (typeof window !== 'undefined') { if (typeof window.DEBUG === 'undefined') { - window.DEBUG = false; // true en debug + window.DEBUG = true; // true en debug } if (!window.log) { function log(...args) { @@ -17,7 +17,7 @@ } } else if (typeof self !== 'undefined') { if (typeof self.DEBUG === 'undefined') { - self.DEBUG = false; // true en debug + self.DEBUG = true; // true en debug } if (!self.log) { function log(...args) {