sutom/utils/majATrouver.js

54 lines
1.8 KiB
JavaScript

"use strict";
/**
* Petit script qui nettoie le fichier des mots à trouver pour le mettre dans le format attendu par le système
*/
var fs = require("fs");
var instanceConfiguration = require("../public/js/instanceConfiguration");
let aujourdhui = new Date().getTime();
let origine = instanceConfiguration.default.dateOrigine.getTime();
let numeroGrille = Math.floor((aujourdhui - origine) / (24 * 3600 * 1000));
const maxFige = numeroGrille + 1; // inclus
fs.readFile("data/motsATrouve.txt", "UTF8", function (erreur, contenu) {
//console.log(erreur);
var dictionnaire = contenu.split("\n");
let motsFiges = dictionnaire.slice(0, maxFige + 1);
motsFiges
.map((mot) =>
mot
.normalize("NFD")
.replace(/\p{Diacritic}/gu, "")
.toUpperCase()
.trim()
.replace(/^\s+|\s+$/g, "")
)
.forEach((mot, numeroMot) =>
new Promise((resolve, reject) => {
let datePartie = new Date(instanceConfiguration.default.dateOrigine);
datePartie.setDate(datePartie.getDate() + (numeroMot + 1));
let datePartieStr =
datePartie.getFullYear().toString() +
"-" +
(datePartie.getMonth() + 1).toString().padStart(2, "0") +
"-" +
datePartie.getDate().toString().padStart(2, "0");
return resolve(Buffer.from(instanceConfiguration.default.idPartieParDefaut + "-" + datePartieStr, "utf-8").toString("base64"));
}).then((nomFichier) =>
fs.access("public/mots/" + nomFichier + ".txt", fs.constants.F_OK, (err) => {
if (err) {
// Dans ce cas, le fichier n'existe pas
fs.writeFile("public/mots/" + nomFichier + ".txt", mot, (err) => {
if (err) console.error(err);
});
}
})
)
);
});