diff --git a/.gitignore b/.gitignore index 92b7a0d..bcf633a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ node_modules/ js/ -public/*.txt +data/ ts/mots/motsATrouver.*.ts diff --git a/cron.sh b/cron.sh new file mode 100644 index 0000000..52dc642 --- /dev/null +++ b/cron.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +npm install +node utils/melangerATrouver.js +node utils/majATrouver.js +tsc +cp -r public/* /var/www/sutom2/ +cp -r js/ /var/www/sutom2/ diff --git a/utils/genererMotTrouve.js b/utils/genererMotTrouve.js index 152efc9..90a45d8 100644 --- a/utils/genererMotTrouve.js +++ b/utils/genererMotTrouve.js @@ -8,7 +8,7 @@ var readlineSync = require("readline-sync"); function start() { let motsGardes = []; - fs.readFile("public/mots.txt", "UTF8", function (erreur, contenu) { + fs.readFile("data/mots.txt", "UTF8", function (erreur, contenu) { //console.log(erreur); var dictionnaire = contenu.split("\n"); while (true) { @@ -39,7 +39,7 @@ function start() { let isGarde = reponse.toLowerCase() === "o"; if (isGarde) motsGardes.push(mot); } - fs.appendFile("public/motsATrouve.txt", motsGardes.join("\n") + "\n", (err) => { + fs.appendFile("data/motsATrouve.txt", motsGardes.join("\n") + "\n", (err) => { if (err) { console.error(err); return; diff --git a/utils/majATrouver.js b/utils/majATrouver.js new file mode 100644 index 0000000..08a4a3b --- /dev/null +++ b/utils/majATrouver.js @@ -0,0 +1,41 @@ +"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"); + +let aujourdhui = new Date().getTime(); +let origine = new Date(2022, 0, 8).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 + 2); + + contenu = "export default class MotsATrouver {\n"; + contenu += " public static readonly Liste: Array = [\n"; + contenu += motsFiges + .map( + (mot) => + '"' + + mot + .normalize("NFD") + .replace(/\p{Diacritic}/gu, "") + .toUpperCase() + + '",' + ) + .join("\n"); + contenu += "\n ]"; + contenu += "\n}"; + fs.writeFile("ts/mots/motsATrouver.ts", contenu, function (err) { + if (err) { + console.error(err); + return; + } + //file written successfully + }); +}); diff --git a/utils/melangerATrouver.js b/utils/melangerATrouver.js new file mode 100644 index 0000000..1e1178e --- /dev/null +++ b/utils/melangerATrouver.js @@ -0,0 +1,69 @@ +"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"); +function shuffle(array) { + let currentIndex = array.length, + randomIndex; + + // While there remain elements to shuffle... + while (currentIndex != 0) { + // Pick a remaining element... + randomIndex = Math.floor(Math.random() * currentIndex); + currentIndex--; + + // And swap it with the current element. + [array[currentIndex], array[randomIndex]] = [array[randomIndex], array[currentIndex]]; + } + + return array; +} + +let aujourdhui = new Date().getTime(); +let origine = new Date(2022, 0, 8).getTime(); + +let numeroGrille = Math.floor((aujourdhui - origine) / (24 * 3600 * 1000)); + +const maxFige = numeroGrille + 1; // inclus +console.log(maxFige); +fs.readFile("data/motsATrouve.txt", "UTF8", function (erreur, contenu) { + //console.log(erreur); + var dictionnaire = contenu.split("\n"); + let motsFiges = dictionnaire.slice(0, maxFige + 1); + let motsMelanges = shuffle(dictionnaire.slice(maxFige + 1)); + + var contenu = ""; + contenu += motsFiges.join("\n") + "\n"; + contenu += motsMelanges + .filter( + (mot) => + mot && + mot.length >= 6 && + mot.length <= 9 && + !mot.includes("!") && + !mot.includes(" ") && + !mot.includes("-") && + !mot.toUpperCase().startsWith("K") && + !mot.toUpperCase().startsWith("Q") && + !mot.toUpperCase().startsWith("W") && + !mot.toUpperCase().startsWith("X") && + !mot.toUpperCase().startsWith("Y") && + !mot.toUpperCase().startsWith("Z") + ) + .join("\n"); + fs.writeFile( + "data/motsATrouve.txt", + contenu, + { + flag: "w", + }, + function (err) { + if (err) { + console.error(err); + return; + } + //file written successfully + } + ); +}); diff --git a/utils/nettoyage.js b/utils/nettoyage.js index 7a736fd..eecf95a 100644 --- a/utils/nettoyage.js +++ b/utils/nettoyage.js @@ -5,7 +5,7 @@ */ var fs = require("fs"); -fs.readFile("public/mots.txt", "UTF8", function (erreur, contenu) { +fs.readFile("data/mots.txt", "UTF8", function (erreur, contenu) { //console.log(erreur); var dictionnaire = contenu .split("\n") @@ -40,7 +40,7 @@ fs.readFile("public/mots.txt", "UTF8", function (erreur, contenu) { }) .join("\n"); contenu += "\n];"; - fs.writeFile("public/motsNettoyes.txt", contenu, function (err) { + fs.writeFile("data/motsNettoyes.txt", contenu, function (err) { if (err) { console.error(err); return; diff --git a/utils/nettoyageATrouver.js b/utils/nettoyageATrouver.js index a119a23..93e7128 100644 --- a/utils/nettoyageATrouver.js +++ b/utils/nettoyageATrouver.js @@ -27,7 +27,7 @@ let numeroGrille = Math.floor((aujourdhui - origine) / (24 * 3600 * 1000)); const maxFige = numeroGrille + 1; // inclus console.log(maxFige); -fs.readFile("public/motsATrouve.txt", "UTF8", function (erreur, contenu) { +fs.readFile("data/motsATrouve.txt", "UTF8", function (erreur, contenu) { //console.log(erreur); var dictionnaire = contenu.split("\n"); let motsFiges = dictionnaire.slice(0, maxFige + 1); @@ -68,7 +68,7 @@ fs.readFile("public/motsATrouve.txt", "UTF8", function (erreur, contenu) { }) .join("\n"); contenu += "\n]"; - fs.writeFile("public/motsATrouveNettoyes.txt", contenu, function (err) { + fs.writeFile("data/motsATrouveNettoyes.txt", contenu, function (err) { if (err) { console.error(err); return; diff --git a/utils/stats.js b/utils/stats.js index b11a43b..0db4ecb 100644 --- a/utils/stats.js +++ b/utils/stats.js @@ -4,7 +4,7 @@ */ var fs = require("fs"); -fs.readFile("public/motsATrouve.txt", "UTF8", function (erreur, contenu) { +fs.readFile("data/motsATrouve.txt", "UTF8", function (erreur, contenu) { //console.log(erreur); var dictionnaire = contenu.split("\n"); let lettres = {}; diff --git a/utils/trierATrouver.js b/utils/trierATrouver.js new file mode 100644 index 0000000..41be9cb --- /dev/null +++ b/utils/trierATrouver.js @@ -0,0 +1,70 @@ +"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"); +function shuffle(array) { + let currentIndex = array.length, + randomIndex; + + // While there remain elements to shuffle... + while (currentIndex != 0) { + // Pick a remaining element... + randomIndex = Math.floor(Math.random() * currentIndex); + currentIndex--; + + // And swap it with the current element. + [array[currentIndex], array[randomIndex]] = [array[randomIndex], array[currentIndex]]; + } + + return array; +} + +let aujourdhui = new Date().getTime(); +let origine = new Date(2022, 0, 8).getTime(); + +let numeroGrille = Math.floor((aujourdhui - origine) / (24 * 3600 * 1000)); + +const maxFige = numeroGrille + 1; // inclus +console.log(maxFige); +fs.readFile("data/motsATrouve.txt", "UTF8", function (erreur, contenu) { + //console.log(erreur); + var dictionnaire = contenu.split("\n"); + let motsFiges = dictionnaire.slice(0, maxFige + 1); + let motsMelanges = dictionnaire.slice(maxFige + 1); + motsMelanges.sort(); + + var contenu = ""; + contenu += motsFiges.join("\n") + "\n"; + contenu += motsMelanges + .filter( + (mot) => + mot && + mot.length >= 6 && + mot.length <= 9 && + !mot.includes("!") && + !mot.includes(" ") && + !mot.includes("-") && + !mot.toUpperCase().startsWith("K") && + !mot.toUpperCase().startsWith("Q") && + !mot.toUpperCase().startsWith("W") && + !mot.toUpperCase().startsWith("X") && + !mot.toUpperCase().startsWith("Y") && + !mot.toUpperCase().startsWith("Z") + ) + .join("\n"); + fs.writeFile( + "data/motsATrouveTriee.txt", + contenu, + { + flag: "w", + }, + function (err) { + if (err) { + console.error(err); + return; + } + //file written successfully + } + ); +});