Ajout d'un script automatique pour mettre à jour automatiquement la liste des mots à trouver

This commit is contained in:
JonathanMM 2022-01-22 23:11:57 +01:00
parent 7fe0b2dffa
commit 5b720a50cf
9 changed files with 196 additions and 8 deletions

2
.gitignore vendored
View File

@ -1,4 +1,4 @@
node_modules/
js/
public/*.txt
data/
ts/mots/motsATrouver.*.ts

8
cron.sh Normal file
View File

@ -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/

View File

@ -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;

41
utils/majATrouver.js Normal file
View File

@ -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<string> = [\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
});
});

69
utils/melangerATrouver.js Normal file
View File

@ -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
}
);
});

View File

@ -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;

View File

@ -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;

View File

@ -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 = {};

70
utils/trierATrouver.js Normal file
View File

@ -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
}
);
});