mirror of
https://framagit.org/JonathanMM/sutom.git
synced 2024-05-02 14:12:56 +02:00
Ajout d'un script automatique pour mettre à jour automatiquement la liste des mots à trouver
This commit is contained in:
parent
7fe0b2dffa
commit
5b720a50cf
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -1,4 +1,4 @@
|
||||||
node_modules/
|
node_modules/
|
||||||
js/
|
js/
|
||||||
public/*.txt
|
data/
|
||||||
ts/mots/motsATrouver.*.ts
|
ts/mots/motsATrouver.*.ts
|
||||||
|
|
8
cron.sh
Normal file
8
cron.sh
Normal 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/
|
|
@ -8,7 +8,7 @@ var readlineSync = require("readline-sync");
|
||||||
|
|
||||||
function start() {
|
function start() {
|
||||||
let motsGardes = [];
|
let motsGardes = [];
|
||||||
fs.readFile("public/mots.txt", "UTF8", function (erreur, contenu) {
|
fs.readFile("data/mots.txt", "UTF8", function (erreur, contenu) {
|
||||||
//console.log(erreur);
|
//console.log(erreur);
|
||||||
var dictionnaire = contenu.split("\n");
|
var dictionnaire = contenu.split("\n");
|
||||||
while (true) {
|
while (true) {
|
||||||
|
@ -39,7 +39,7 @@ function start() {
|
||||||
let isGarde = reponse.toLowerCase() === "o";
|
let isGarde = reponse.toLowerCase() === "o";
|
||||||
if (isGarde) motsGardes.push(mot);
|
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) {
|
if (err) {
|
||||||
console.error(err);
|
console.error(err);
|
||||||
return;
|
return;
|
||||||
|
|
41
utils/majATrouver.js
Normal file
41
utils/majATrouver.js
Normal 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
69
utils/melangerATrouver.js
Normal 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
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
|
@ -5,7 +5,7 @@
|
||||||
*/
|
*/
|
||||||
var fs = require("fs");
|
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);
|
//console.log(erreur);
|
||||||
var dictionnaire = contenu
|
var dictionnaire = contenu
|
||||||
.split("\n")
|
.split("\n")
|
||||||
|
@ -40,7 +40,7 @@ fs.readFile("public/mots.txt", "UTF8", function (erreur, contenu) {
|
||||||
})
|
})
|
||||||
.join("\n");
|
.join("\n");
|
||||||
contenu += "\n];";
|
contenu += "\n];";
|
||||||
fs.writeFile("public/motsNettoyes.txt", contenu, function (err) {
|
fs.writeFile("data/motsNettoyes.txt", contenu, function (err) {
|
||||||
if (err) {
|
if (err) {
|
||||||
console.error(err);
|
console.error(err);
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -27,7 +27,7 @@ let numeroGrille = Math.floor((aujourdhui - origine) / (24 * 3600 * 1000));
|
||||||
|
|
||||||
const maxFige = numeroGrille + 1; // inclus
|
const maxFige = numeroGrille + 1; // inclus
|
||||||
console.log(maxFige);
|
console.log(maxFige);
|
||||||
fs.readFile("public/motsATrouve.txt", "UTF8", function (erreur, contenu) {
|
fs.readFile("data/motsATrouve.txt", "UTF8", function (erreur, contenu) {
|
||||||
//console.log(erreur);
|
//console.log(erreur);
|
||||||
var dictionnaire = contenu.split("\n");
|
var dictionnaire = contenu.split("\n");
|
||||||
let motsFiges = dictionnaire.slice(0, maxFige + 1);
|
let motsFiges = dictionnaire.slice(0, maxFige + 1);
|
||||||
|
@ -68,7 +68,7 @@ fs.readFile("public/motsATrouve.txt", "UTF8", function (erreur, contenu) {
|
||||||
})
|
})
|
||||||
.join("\n");
|
.join("\n");
|
||||||
contenu += "\n]";
|
contenu += "\n]";
|
||||||
fs.writeFile("public/motsATrouveNettoyes.txt", contenu, function (err) {
|
fs.writeFile("data/motsATrouveNettoyes.txt", contenu, function (err) {
|
||||||
if (err) {
|
if (err) {
|
||||||
console.error(err);
|
console.error(err);
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*/
|
*/
|
||||||
var fs = require("fs");
|
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);
|
//console.log(erreur);
|
||||||
var dictionnaire = contenu.split("\n");
|
var dictionnaire = contenu.split("\n");
|
||||||
let lettres = {};
|
let lettres = {};
|
||||||
|
|
70
utils/trierATrouver.js
Normal file
70
utils/trierATrouver.js
Normal 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
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
Loading…
Reference in a new issue