/*
Initialisation
*/
const defSocket = io.connect("https://defs.opnm.net:443", {reconnection: true, auth: {token: "YOUR_TOKEN"}})
defSocket.on("connect", () => console.log("(Re)connecté au serveur de defs")).on("def", (w, t, d) => {
// w = le mot
// t = le dico (Bot, Robert, Larousse, Universalis, Wiktionnaire, Cordial, Encyclopedie, LeDictionnaire, Linternaute) (Error 404, 401 peuvent survenir)
// d = tableau des définitions
if(t === "Error 404"){
console.log(`Définition introuvable pour ${w}${d ? `, vouliez-vous dire "${d}" ?` : ""}`)
} else if(t === "Error 401"){
console.log("Mauvaise requĂŞte", d)
} else {
console.log(`Les définitions ${t} pour le mot ${w} sont:`, d)
}
})
/*
Usage jpp
*/
// defSocket.emit("def", word: string, dico?: string)
// ou la version objet (recommandée pour l'avenir):
// defSocket.emit("def", { word: string, dico?: string, lang?: string, reduce?: boolean })
// Params:
// dico -> sélectionne le dico (voir les exemples plus bas)
// lang ("fr" par défaut) -> sélectionne la langue (voir les exemples plus bas)
// reduce (true par défaut, lang = "fr" surtout) -> renvoie les defs de la forme canonique du mot demandé (lemmatisation) quand c'est pertinent et connu (conjug -> infinitif, féminin -> masculin, pluriel -> singulier, etc)
// renverra la première def trouvée dans cet ordre : Bot → Robert → Larousse → Universalis → Wiktionnaire → Cordial → Encyclopedie → LeDictionnaire → Linternaute
defSocket.emit("def", "test")
defSocket.emit("def", { word: "test" })
// "def_en" marche exactement pareil que "def" mais pour les defs anglaises, ordre des dicos : Bot → Oxford → Cambridge → Wordnik → Wiktionary → Collins
defSocket.emit("def_en", "ubiquitous")
defSocket.emit("def", { word: "ubiquitous", lang: "en" }) // -> autre façon de récupérer des defs anglaises, langues disponibles: fr, en
// forcer le dico, choisir parmi : Bot, Robert, Larousse, Universalis, Wiktionnaire, Cordial, Encyclopedie, LeDictionnaire, Linternaute
defSocket.emit("def", "encapsulation", "Cordial") // -> définition du Cordial
defSocket.emit("def", "sprinkler", "") // -> pareil que mettre aucun dico
// version sync (utile pour garder le contexte dans le callback), ex avec "user" ici:
// note: seulement la version objet est supportée ici pour les params
function getDef(user, word, lang, dico){
defSocket.emit("def_sync", { word, dico, lang }, (w, t, d) => {
if(t === "Error 404"){
console.log(`Définition introuvable pour ${w}${d ? `, vouliez-vous dire "${d}" ?` : ""}`)
} else if(t === "Error 401"){
console.log("Mauvaise requĂŞte", d)
} else {
console.log(`Hey ${user}, les définitions ${t} pour le mot ${w} sont:`, d)
}
})
}
getDef("Stockfish", "kookaburra")
getDef("Stockfish", "kookaburra", "en") // -> mĂŞme chose mais en anglais
// exemples random :
defSocket.emit("def", "pachyblepharose") // -> le premier dico qui a ce mot est le Wiktionnaire
defSocket.emit("def", "biholomorphisme") // -> le dico "Bot" représente les defs complétées par d'autres sources
defSocket.emit("def", "carbune") // -> introuvable, propose "carbene" Ă la place
defSocket.emit("def_sync", { word: "conchage" }, console.log) // -> affiche les valeurs retournées dans l'ordre (mot, dico, defs)
defSocket.emit("def_sync", { word: "conchage", dico: "Wiktionnaire" }, console.log) // -> même chose mais en forçant le dico Wiktionnaire
defSocket.emit("def_sync", { word: "conchage", dico: "Robert" }, console.log) // -> error 404 car le Robert n'a pas ce mot, le même mot est reproposé en suggestion (3ème param) parce que d'autres dicos l'ont
defSocket.emit("def_sync", { word: "ethiopienne", dico: "Cordial" }, console.log) // -> retourne la définition Cordial d'"éthiopien"
defSocket.emit("def_sync", { word: "ethiopienne", dico: "Cordial", reduce: false }, console.log) // -> retourne la définition Cordial d'"éthiopienne"
defSocket.emit("def_sync", { word: "trempeuse", dico: "Larousse" }, console.log) // -> retourne la définition Larousse de "trempeur"
defSocket.emit("def_sync", { word: "trempeuse", dico: "Larousse", reduce: false }, console.log) // -> error 404 le Larousse n'a pas la flexion "trempeuse"
defSocket.emit("def_sync", { word: "introduite", dico: "Encyclopedie", reduce: false }, console.log) // -> définition spécifique pour "introduite" au lieu du verbe "introduire"
defSocket.emit("def_sync", { word: "flabbergasting", lang: "en" }, console.log) // -> anglais
defSocket.emit("def_sync", { word: "rendezvous", lang: "en", dico: "Wordnik" }, console.log) // -> bon t'as compris