Compare commits
3 Commits
foundryvtt
...
foundryvtt
| Author | SHA1 | Date | |
|---|---|---|---|
| 5bc6d0d2f5 | |||
| d557fac83f | |||
| f07ef0b01d |
92
find-blessures-variables.cjs
Normal file
92
find-blessures-variables.cjs
Normal file
@@ -0,0 +1,92 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
// Patterns pour détecter les variables JavaScript nommées "Blessures"
|
||||
const patterns = [
|
||||
// Déclarations de variables
|
||||
/\b(let|const|var)\s+Blessures\b/g,
|
||||
// Paramètres de fonction
|
||||
/function\s+\w*\s*\([^)]*\bBlessures\b[^)]*\)/g,
|
||||
// Arrow functions avec paramètres
|
||||
/\(\s*[^)]*\bBlessures\b[^)]*\)\s*=>/g,
|
||||
// Arrow function avec un seul paramètre sans parenthèses
|
||||
/\bBlessures\s*=>/g,
|
||||
// Destructuration d'objets
|
||||
/\{\s*[^}]*\bBlessures\b[^}]*\}\s*=/g,
|
||||
// Destructuration de tableaux
|
||||
/\[\s*[^\]]*\bBlessures\b[^\]]*\]\s*=/g,
|
||||
// Catch clause
|
||||
/catch\s*\(\s*Blessures\s*\)/g,
|
||||
// For...of/in loops
|
||||
/for\s*\(\s*(let|const|var)?\s*Blessures\s+(of|in)\b/g,
|
||||
];
|
||||
|
||||
function findBlessuresInFile(filePath) {
|
||||
const content = fs.readFileSync(filePath, 'utf-8');
|
||||
const lines = content.split('\n');
|
||||
const results = [];
|
||||
|
||||
lines.forEach((line, index) => {
|
||||
patterns.forEach(pattern => {
|
||||
pattern.lastIndex = 0; // Reset regex
|
||||
if (pattern.test(line)) {
|
||||
results.push({
|
||||
line: index + 1,
|
||||
content: line.trim()
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
return results;
|
||||
}
|
||||
|
||||
function walkDirectory(dir) {
|
||||
const files = fs.readdirSync(dir);
|
||||
const allResults = {};
|
||||
|
||||
files.forEach(file => {
|
||||
const filePath = path.join(dir, file);
|
||||
const stat = fs.statSync(filePath);
|
||||
|
||||
if (stat.isDirectory()) {
|
||||
Object.assign(allResults, walkDirectory(filePath));
|
||||
} else if (file.endsWith('.js')) {
|
||||
const results = findBlessuresInFile(filePath);
|
||||
if (results.length > 0) {
|
||||
allResults[filePath] = results;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
return allResults;
|
||||
}
|
||||
|
||||
// Main
|
||||
const scriptsDir = path.join(__dirname, 'scripts');
|
||||
|
||||
console.log('🔍 Recherche des variables JavaScript nommées "Blessures" dans le répertoire scripts/...\n');
|
||||
|
||||
if (!fs.existsSync(scriptsDir)) {
|
||||
console.error('❌ Le répertoire scripts/ n\'existe pas');
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
const results = walkDirectory(scriptsDir);
|
||||
|
||||
if (Object.keys(results).length === 0) {
|
||||
console.log('✅ Aucune variable JavaScript nommée "Blessures" trouvée.');
|
||||
} else {
|
||||
console.log(`⚠️ ${Object.keys(results).length} fichier(s) contenant des variables "Blessures" :\n`);
|
||||
|
||||
Object.entries(results).forEach(([filePath, occurrences]) => {
|
||||
const relativePath = path.relative(__dirname, filePath);
|
||||
console.log(`📄 ${relativePath}`);
|
||||
occurrences.forEach(({ line, content }) => {
|
||||
console.log(` Ligne ${line}: ${content}`);
|
||||
});
|
||||
console.log('');
|
||||
});
|
||||
}
|
||||
92
find-tests-variables.cjs
Normal file
92
find-tests-variables.cjs
Normal file
@@ -0,0 +1,92 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
// Patterns pour détecter les variables JavaScript nommées "Tests"
|
||||
const patterns = [
|
||||
// Déclarations de variables
|
||||
/\b(let|const|var)\s+Tests\b/g,
|
||||
// Paramètres de fonction
|
||||
/function\s+\w*\s*\([^)]*\bTests\b[^)]*\)/g,
|
||||
// Arrow functions avec paramètres
|
||||
/\(\s*[^)]*\bTests\b[^)]*\)\s*=>/g,
|
||||
// Arrow function avec un seul paramètre sans parenthèses
|
||||
/\bTests\s*=>/g,
|
||||
// Destructuration d'objets
|
||||
/\{\s*[^}]*\bTests\b[^}]*\}\s*=/g,
|
||||
// Destructuration de tableaux
|
||||
/\[\s*[^\]]*\bTests\b[^\]]*\]\s*=/g,
|
||||
// Catch clause
|
||||
/catch\s*\(\s*Tests\s*\)/g,
|
||||
// For...of/in loops
|
||||
/for\s*\(\s*(let|const|var)?\s*Tests\s+(of|in)\b/g,
|
||||
];
|
||||
|
||||
function findTestsInFile(filePath) {
|
||||
const content = fs.readFileSync(filePath, 'utf-8');
|
||||
const lines = content.split('\n');
|
||||
const results = [];
|
||||
|
||||
lines.forEach((line, index) => {
|
||||
patterns.forEach(pattern => {
|
||||
pattern.lastIndex = 0; // Reset regex
|
||||
if (pattern.test(line)) {
|
||||
results.push({
|
||||
line: index + 1,
|
||||
content: line.trim()
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
return results;
|
||||
}
|
||||
|
||||
function walkDirectory(dir) {
|
||||
const files = fs.readdirSync(dir);
|
||||
const allResults = {};
|
||||
|
||||
files.forEach(file => {
|
||||
const filePath = path.join(dir, file);
|
||||
const stat = fs.statSync(filePath);
|
||||
|
||||
if (stat.isDirectory()) {
|
||||
Object.assign(allResults, walkDirectory(filePath));
|
||||
} else if (file.endsWith('.js')) {
|
||||
const results = findTestsInFile(filePath);
|
||||
if (results.length > 0) {
|
||||
allResults[filePath] = results;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
return allResults;
|
||||
}
|
||||
|
||||
// Main
|
||||
const scriptsDir = path.join(__dirname, 'scripts');
|
||||
|
||||
console.log('🔍 Recherche des variables JavaScript nommées "Tests" dans le répertoire scripts/...\n');
|
||||
|
||||
if (!fs.existsSync(scriptsDir)) {
|
||||
console.error('❌ Le répertoire scripts/ n\'existe pas');
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
const results = walkDirectory(scriptsDir);
|
||||
|
||||
if (Object.keys(results).length === 0) {
|
||||
console.log('✅ Aucune variable JavaScript nommée "Tests" trouvée.');
|
||||
} else {
|
||||
console.log(`⚠️ ${Object.keys(results).length} fichier(s) contenant des variables "Tests" :\n`);
|
||||
|
||||
Object.entries(results).forEach(([filePath, occurrences]) => {
|
||||
const relativePath = path.relative(__dirname, filePath);
|
||||
console.log(`📄 ${relativePath}`);
|
||||
occurrences.forEach(({ line, content }) => {
|
||||
console.log(` Ligne ${line}: ${content}`);
|
||||
});
|
||||
console.log('');
|
||||
});
|
||||
}
|
||||
@@ -5,9 +5,6 @@
|
||||
},
|
||||
{
|
||||
"path": "../WFRP4e-FoundryVTT"
|
||||
},
|
||||
{
|
||||
"path": "../WarhammerLibrary-FVTT"
|
||||
}
|
||||
],
|
||||
"settings": {}
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
}
|
||||
],
|
||||
"url": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr",
|
||||
"version": "9.4.0",
|
||||
"version": "9.4.3",
|
||||
"esmodules": [
|
||||
"wh4_fr.js",
|
||||
"modules/babele-register.js",
|
||||
@@ -120,7 +120,7 @@
|
||||
}
|
||||
],
|
||||
"manifest": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr/raw/v10/module.json",
|
||||
"download": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr/archive/foundryvtt-wh4-lang-fr-9-3-7.zip",
|
||||
"download": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr/archive/foundryvtt-wh4-lang-fr-9-4-3.zip",
|
||||
"id": "wh4-fr-translation",
|
||||
"compatibility": {
|
||||
"minimum": "13",
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
MANIFEST-001287
|
||||
MANIFEST-001307
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2026/01/29-22:56:42.449653 7f78b77fe6c0 Recovering log #1285
|
||||
2026/01/29-22:56:42.460601 7f78b77fe6c0 Delete type=3 #1283
|
||||
2026/01/29-22:56:42.460653 7f78b77fe6c0 Delete type=0 #1285
|
||||
2026/01/29-22:57:35.335489 7f78b67fc6c0 Level-0 table #1290: started
|
||||
2026/01/29-22:57:35.335514 7f78b67fc6c0 Level-0 table #1290: 0 bytes OK
|
||||
2026/01/29-22:57:35.341828 7f78b67fc6c0 Delete type=0 #1288
|
||||
2026/01/29-22:57:35.348187 7f78b67fc6c0 Manual compaction at level-0 from '!journal!3IgmiprzLB6Lwenc' @ 72057594037927935 : 1 .. '!journal.pages!suuYN87Al1ZZWtQQ.jhgNnhWhrkOpKs1B' @ 0 : 0; will stop at (end)
|
||||
2026/03/05-20:38:02.743870 7f7930fff6c0 Recovering log #1305
|
||||
2026/03/05-20:38:02.754744 7f7930fff6c0 Delete type=3 #1303
|
||||
2026/03/05-20:38:02.754879 7f7930fff6c0 Delete type=0 #1305
|
||||
2026/03/05-20:42:36.083534 7f78e15b46c0 Level-0 table #1310: started
|
||||
2026/03/05-20:42:36.083606 7f78e15b46c0 Level-0 table #1310: 0 bytes OK
|
||||
2026/03/05-20:42:36.090385 7f78e15b46c0 Delete type=0 #1308
|
||||
2026/03/05-20:42:36.111635 7f78e15b46c0 Manual compaction at level-0 from '!journal!3IgmiprzLB6Lwenc' @ 72057594037927935 : 1 .. '!journal.pages!suuYN87Al1ZZWtQQ.jhgNnhWhrkOpKs1B' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2026/01/29-20:23:41.937265 7fac3cbfe6c0 Recovering log #1281
|
||||
2026/01/29-20:23:41.947854 7fac3cbfe6c0 Delete type=3 #1279
|
||||
2026/01/29-20:23:41.947908 7fac3cbfe6c0 Delete type=0 #1281
|
||||
2026/01/29-20:30:28.237866 7fa9a6fef6c0 Level-0 table #1286: started
|
||||
2026/01/29-20:30:28.237897 7fa9a6fef6c0 Level-0 table #1286: 0 bytes OK
|
||||
2026/01/29-20:30:28.274449 7fa9a6fef6c0 Delete type=0 #1284
|
||||
2026/01/29-20:30:28.305057 7fa9a6fef6c0 Manual compaction at level-0 from '!journal!3IgmiprzLB6Lwenc' @ 72057594037927935 : 1 .. '!journal.pages!suuYN87Al1ZZWtQQ.jhgNnhWhrkOpKs1B' @ 0 : 0; will stop at (end)
|
||||
2026/03/05-20:35:58.958021 7f78e2ffd6c0 Recovering log #1301
|
||||
2026/03/05-20:35:59.014393 7f78e2ffd6c0 Delete type=3 #1299
|
||||
2026/03/05-20:35:59.014563 7f78e2ffd6c0 Delete type=0 #1301
|
||||
2026/03/05-20:36:36.801154 7f78e15b46c0 Level-0 table #1306: started
|
||||
2026/03/05-20:36:36.801207 7f78e15b46c0 Level-0 table #1306: 0 bytes OK
|
||||
2026/03/05-20:36:36.851951 7f78e15b46c0 Delete type=0 #1304
|
||||
2026/03/05-20:36:36.886757 7f78e15b46c0 Manual compaction at level-0 from '!journal!3IgmiprzLB6Lwenc' @ 72057594037927935 : 1 .. '!journal.pages!suuYN87Al1ZZWtQQ.jhgNnhWhrkOpKs1B' @ 0 : 0; will stop at (end)
|
||||
|
||||
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-001289
|
||||
MANIFEST-001309
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2026/01/29-22:56:42.465768 7f78b7fff6c0 Recovering log #1287
|
||||
2026/01/29-22:56:42.475309 7f78b7fff6c0 Delete type=3 #1285
|
||||
2026/01/29-22:56:42.475364 7f78b7fff6c0 Delete type=0 #1287
|
||||
2026/01/29-22:57:35.362417 7f78b67fc6c0 Level-0 table #1292: started
|
||||
2026/01/29-22:57:35.362439 7f78b67fc6c0 Level-0 table #1292: 0 bytes OK
|
||||
2026/01/29-22:57:35.369784 7f78b67fc6c0 Delete type=0 #1290
|
||||
2026/01/29-22:57:35.376148 7f78b67fc6c0 Manual compaction at level-0 from '!folders!3uquYH73ttCdoH0I' @ 72057594037927935 : 1 .. '!items!ylFhk7mGZOnAJTUT' @ 0 : 0; will stop at (end)
|
||||
2026/03/05-20:38:02.758975 7f78e37fe6c0 Recovering log #1307
|
||||
2026/03/05-20:38:02.770688 7f78e37fe6c0 Delete type=3 #1305
|
||||
2026/03/05-20:38:02.770801 7f78e37fe6c0 Delete type=0 #1307
|
||||
2026/03/05-20:42:36.097432 7f78e15b46c0 Level-0 table #1312: started
|
||||
2026/03/05-20:42:36.097481 7f78e15b46c0 Level-0 table #1312: 0 bytes OK
|
||||
2026/03/05-20:42:36.104419 7f78e15b46c0 Delete type=0 #1310
|
||||
2026/03/05-20:42:36.111679 7f78e15b46c0 Manual compaction at level-0 from '!folders!3uquYH73ttCdoH0I' @ 72057594037927935 : 1 .. '!items!ylFhk7mGZOnAJTUT' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2026/01/29-20:23:41.951251 7fac277fe6c0 Recovering log #1283
|
||||
2026/01/29-20:23:41.961856 7fac277fe6c0 Delete type=3 #1281
|
||||
2026/01/29-20:23:41.961911 7fac277fe6c0 Delete type=0 #1283
|
||||
2026/01/29-20:30:28.274586 7fa9a6fef6c0 Level-0 table #1288: started
|
||||
2026/01/29-20:30:28.274614 7fa9a6fef6c0 Level-0 table #1288: 0 bytes OK
|
||||
2026/01/29-20:30:28.304924 7fa9a6fef6c0 Delete type=0 #1286
|
||||
2026/01/29-20:30:28.305066 7fa9a6fef6c0 Manual compaction at level-0 from '!folders!3uquYH73ttCdoH0I' @ 72057594037927935 : 1 .. '!items!ylFhk7mGZOnAJTUT' @ 0 : 0; will stop at (end)
|
||||
2026/03/05-20:35:59.019628 7f7930fff6c0 Recovering log #1303
|
||||
2026/03/05-20:35:59.074111 7f7930fff6c0 Delete type=3 #1301
|
||||
2026/03/05-20:35:59.074362 7f7930fff6c0 Delete type=0 #1303
|
||||
2026/03/05-20:36:37.079874 7f78e15b46c0 Level-0 table #1308: started
|
||||
2026/03/05-20:36:37.079944 7f78e15b46c0 Level-0 table #1308: 0 bytes OK
|
||||
2026/03/05-20:36:37.117249 7f78e15b46c0 Delete type=0 #1306
|
||||
2026/03/05-20:36:37.117631 7f78e15b46c0 Manual compaction at level-0 from '!folders!3uquYH73ttCdoH0I' @ 72057594037927935 : 1 .. '!items!ylFhk7mGZOnAJTUT' @ 0 : 0; will stop at (end)
|
||||
|
||||
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-001287
|
||||
MANIFEST-001307
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2026/01/29-22:56:42.493062 7f78b6ffd6c0 Recovering log #1285
|
||||
2026/01/29-22:56:42.503149 7f78b6ffd6c0 Delete type=3 #1283
|
||||
2026/01/29-22:56:42.503203 7f78b6ffd6c0 Delete type=0 #1285
|
||||
2026/01/29-22:57:35.355694 7f78b67fc6c0 Level-0 table #1290: started
|
||||
2026/01/29-22:57:35.355726 7f78b67fc6c0 Level-0 table #1290: 0 bytes OK
|
||||
2026/01/29-22:57:35.362323 7f78b67fc6c0 Delete type=0 #1288
|
||||
2026/01/29-22:57:35.376141 7f78b67fc6c0 Manual compaction at level-0 from '!journal!cZtNgayIw2QFhC9u' @ 72057594037927935 : 1 .. '!journal.pages!cZtNgayIw2QFhC9u.ts265H1XkisLgdow' @ 0 : 0; will stop at (end)
|
||||
2026/03/05-20:38:02.790472 7f78e3fff6c0 Recovering log #1305
|
||||
2026/03/05-20:38:02.801425 7f78e3fff6c0 Delete type=3 #1303
|
||||
2026/03/05-20:38:02.801553 7f78e3fff6c0 Delete type=0 #1305
|
||||
2026/03/05-20:42:36.090593 7f78e15b46c0 Level-0 table #1310: started
|
||||
2026/03/05-20:42:36.090646 7f78e15b46c0 Level-0 table #1310: 0 bytes OK
|
||||
2026/03/05-20:42:36.097257 7f78e15b46c0 Delete type=0 #1308
|
||||
2026/03/05-20:42:36.111659 7f78e15b46c0 Manual compaction at level-0 from '!journal!cZtNgayIw2QFhC9u' @ 72057594037927935 : 1 .. '!journal.pages!cZtNgayIw2QFhC9u.ts265H1XkisLgdow' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2026/01/29-20:23:41.979254 7fac277fe6c0 Recovering log #1281
|
||||
2026/01/29-20:23:41.990432 7fac277fe6c0 Delete type=3 #1279
|
||||
2026/01/29-20:23:41.990499 7fac277fe6c0 Delete type=0 #1281
|
||||
2026/01/29-20:30:28.407331 7fa9a6fef6c0 Level-0 table #1286: started
|
||||
2026/01/29-20:30:28.407362 7fa9a6fef6c0 Level-0 table #1286: 0 bytes OK
|
||||
2026/01/29-20:30:28.441323 7fa9a6fef6c0 Delete type=0 #1284
|
||||
2026/01/29-20:30:28.642713 7fa9a6fef6c0 Manual compaction at level-0 from '!journal!cZtNgayIw2QFhC9u' @ 72057594037927935 : 1 .. '!journal.pages!cZtNgayIw2QFhC9u.ts265H1XkisLgdow' @ 0 : 0; will stop at (end)
|
||||
2026/03/05-20:35:59.141622 7f7930fff6c0 Recovering log #1301
|
||||
2026/03/05-20:35:59.197458 7f7930fff6c0 Delete type=3 #1299
|
||||
2026/03/05-20:35:59.197605 7f7930fff6c0 Delete type=0 #1301
|
||||
2026/03/05-20:36:36.998926 7f78e15b46c0 Level-0 table #1306: started
|
||||
2026/03/05-20:36:36.999012 7f78e15b46c0 Level-0 table #1306: 0 bytes OK
|
||||
2026/03/05-20:36:37.079601 7f78e15b46c0 Delete type=0 #1304
|
||||
2026/03/05-20:36:37.117606 7f78e15b46c0 Manual compaction at level-0 from '!journal!cZtNgayIw2QFhC9u' @ 72057594037927935 : 1 .. '!journal.pages!cZtNgayIw2QFhC9u.ts265H1XkisLgdow' @ 0 : 0; will stop at (end)
|
||||
|
||||
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-001287
|
||||
MANIFEST-001307
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2026/01/29-22:56:42.435103 7f78cc9ff6c0 Recovering log #1285
|
||||
2026/01/29-22:56:42.445358 7f78cc9ff6c0 Delete type=3 #1283
|
||||
2026/01/29-22:56:42.445414 7f78cc9ff6c0 Delete type=0 #1285
|
||||
2026/01/29-22:57:35.328574 7f78b67fc6c0 Level-0 table #1290: started
|
||||
2026/01/29-22:57:35.328607 7f78b67fc6c0 Level-0 table #1290: 0 bytes OK
|
||||
2026/01/29-22:57:35.335392 7f78b67fc6c0 Delete type=0 #1288
|
||||
2026/01/29-22:57:35.348176 7f78b67fc6c0 Manual compaction at level-0 from '!journal!50u8VAjdmovyr0hx' @ 72057594037927935 : 1 .. '!journal.pages!yzw9I0r3hCK7PJnz.sPNCYj2nR3Cp3jHd' @ 0 : 0; will stop at (end)
|
||||
2026/03/05-20:38:02.727495 7f78e2ffd6c0 Recovering log #1305
|
||||
2026/03/05-20:38:02.739900 7f78e2ffd6c0 Delete type=3 #1303
|
||||
2026/03/05-20:38:02.740017 7f78e2ffd6c0 Delete type=0 #1305
|
||||
2026/03/05-20:42:36.060514 7f78e15b46c0 Level-0 table #1310: started
|
||||
2026/03/05-20:42:36.060577 7f78e15b46c0 Level-0 table #1310: 0 bytes OK
|
||||
2026/03/05-20:42:36.067949 7f78e15b46c0 Delete type=0 #1308
|
||||
2026/03/05-20:42:36.083144 7f78e15b46c0 Manual compaction at level-0 from '!journal!50u8VAjdmovyr0hx' @ 72057594037927935 : 1 .. '!journal.pages!yzw9I0r3hCK7PJnz.sPNCYj2nR3Cp3jHd' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2026/01/29-20:23:41.924353 7fac3d3ff6c0 Recovering log #1281
|
||||
2026/01/29-20:23:41.933825 7fac3d3ff6c0 Delete type=3 #1279
|
||||
2026/01/29-20:23:41.933878 7fac3d3ff6c0 Delete type=0 #1281
|
||||
2026/01/29-20:30:28.174496 7fa9a6fef6c0 Level-0 table #1286: started
|
||||
2026/01/29-20:30:28.174527 7fa9a6fef6c0 Level-0 table #1286: 0 bytes OK
|
||||
2026/01/29-20:30:28.203862 7fa9a6fef6c0 Delete type=0 #1284
|
||||
2026/01/29-20:30:28.305039 7fa9a6fef6c0 Manual compaction at level-0 from '!journal!50u8VAjdmovyr0hx' @ 72057594037927935 : 1 .. '!journal.pages!yzw9I0r3hCK7PJnz.sPNCYj2nR3Cp3jHd' @ 0 : 0; will stop at (end)
|
||||
2026/03/05-20:35:58.885055 7f78e37fe6c0 Recovering log #1301
|
||||
2026/03/05-20:35:58.952601 7f78e37fe6c0 Delete type=3 #1299
|
||||
2026/03/05-20:35:58.952732 7f78e37fe6c0 Delete type=0 #1301
|
||||
2026/03/05-20:36:36.852227 7f78e15b46c0 Level-0 table #1306: started
|
||||
2026/03/05-20:36:36.852283 7f78e15b46c0 Level-0 table #1306: 0 bytes OK
|
||||
2026/03/05-20:36:36.886395 7f78e15b46c0 Delete type=0 #1304
|
||||
2026/03/05-20:36:36.886780 7f78e15b46c0 Manual compaction at level-0 from '!journal!50u8VAjdmovyr0hx' @ 72057594037927935 : 1 .. '!journal.pages!yzw9I0r3hCK7PJnz.sPNCYj2nR3Cp3jHd' @ 0 : 0; will stop at (end)
|
||||
|
||||
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-001287
|
||||
MANIFEST-001307
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2026/01/29-22:56:42.421350 7f78b6ffd6c0 Recovering log #1285
|
||||
2026/01/29-22:56:42.431020 7f78b6ffd6c0 Delete type=3 #1283
|
||||
2026/01/29-22:56:42.431080 7f78b6ffd6c0 Delete type=0 #1285
|
||||
2026/01/29-22:57:35.341932 7f78b67fc6c0 Level-0 table #1290: started
|
||||
2026/01/29-22:57:35.341953 7f78b67fc6c0 Level-0 table #1290: 0 bytes OK
|
||||
2026/01/29-22:57:35.348055 7f78b67fc6c0 Delete type=0 #1288
|
||||
2026/01/29-22:57:35.348196 7f78b67fc6c0 Manual compaction at level-0 from '!tables!4l60Lxv8cpsyy2Cg' @ 72057594037927935 : 1 .. '!tables.results!tfaYKDZqu7kgZvRG.yvbwKursaixh2dby' @ 0 : 0; will stop at (end)
|
||||
2026/03/05-20:38:02.710364 7f7930fff6c0 Recovering log #1305
|
||||
2026/03/05-20:38:02.722794 7f7930fff6c0 Delete type=3 #1303
|
||||
2026/03/05-20:38:02.722917 7f7930fff6c0 Delete type=0 #1305
|
||||
2026/03/05-20:42:36.068193 7f78e15b46c0 Level-0 table #1310: started
|
||||
2026/03/05-20:42:36.068246 7f78e15b46c0 Level-0 table #1310: 0 bytes OK
|
||||
2026/03/05-20:42:36.074966 7f78e15b46c0 Delete type=0 #1308
|
||||
2026/03/05-20:42:36.083182 7f78e15b46c0 Manual compaction at level-0 from '!tables!4l60Lxv8cpsyy2Cg' @ 72057594037927935 : 1 .. '!tables.results!tfaYKDZqu7kgZvRG.yvbwKursaixh2dby' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2026/01/29-20:23:41.909492 7fac277fe6c0 Recovering log #1281
|
||||
2026/01/29-20:23:41.920402 7fac277fe6c0 Delete type=3 #1279
|
||||
2026/01/29-20:23:41.920469 7fac277fe6c0 Delete type=0 #1281
|
||||
2026/01/29-20:30:28.203984 7fa9a6fef6c0 Level-0 table #1286: started
|
||||
2026/01/29-20:30:28.204007 7fa9a6fef6c0 Level-0 table #1286: 0 bytes OK
|
||||
2026/01/29-20:30:28.237718 7fa9a6fef6c0 Delete type=0 #1284
|
||||
2026/01/29-20:30:28.305049 7fa9a6fef6c0 Manual compaction at level-0 from '!tables!4l60Lxv8cpsyy2Cg' @ 72057594037927935 : 1 .. '!tables.results!tfaYKDZqu7kgZvRG.yvbwKursaixh2dby' @ 0 : 0; will stop at (end)
|
||||
2026/03/05-20:35:58.822672 7f78e2ffd6c0 Recovering log #1301
|
||||
2026/03/05-20:35:58.879917 7f78e2ffd6c0 Delete type=3 #1299
|
||||
2026/03/05-20:35:58.880051 7f78e2ffd6c0 Delete type=0 #1301
|
||||
2026/03/05-20:36:36.762561 7f78e15b46c0 Level-0 table #1306: started
|
||||
2026/03/05-20:36:36.762639 7f78e15b46c0 Level-0 table #1306: 0 bytes OK
|
||||
2026/03/05-20:36:36.800890 7f78e15b46c0 Delete type=0 #1304
|
||||
2026/03/05-20:36:36.886730 7f78e15b46c0 Manual compaction at level-0 from '!tables!4l60Lxv8cpsyy2Cg' @ 72057594037927935 : 1 .. '!tables.results!tfaYKDZqu7kgZvRG.yvbwKursaixh2dby' @ 0 : 0; will stop at (end)
|
||||
|
||||
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-000930
|
||||
MANIFEST-000950
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2026/01/29-22:56:42.478978 7f78b77fe6c0 Recovering log #928
|
||||
2026/01/29-22:56:42.489559 7f78b77fe6c0 Delete type=3 #926
|
||||
2026/01/29-22:56:42.489615 7f78b77fe6c0 Delete type=0 #928
|
||||
2026/01/29-22:57:35.369875 7f78b67fc6c0 Level-0 table #933: started
|
||||
2026/01/29-22:57:35.369900 7f78b67fc6c0 Level-0 table #933: 0 bytes OK
|
||||
2026/01/29-22:57:35.376019 7f78b67fc6c0 Delete type=0 #931
|
||||
2026/01/29-22:57:35.376158 7f78b67fc6c0 Manual compaction at level-0 from '!journal!056ILNNrLiPq3Gi3' @ 72057594037927935 : 1 .. '!journal.pages!yfZxl4I7XAuUF6r3.apXmOlZRmGT4GreB' @ 0 : 0; will stop at (end)
|
||||
2026/03/05-20:38:02.775184 7f7930fff6c0 Recovering log #948
|
||||
2026/03/05-20:38:02.786747 7f7930fff6c0 Delete type=3 #946
|
||||
2026/03/05-20:38:02.786856 7f7930fff6c0 Delete type=0 #948
|
||||
2026/03/05-20:42:36.104620 7f78e15b46c0 Level-0 table #953: started
|
||||
2026/03/05-20:42:36.104679 7f78e15b46c0 Level-0 table #953: 0 bytes OK
|
||||
2026/03/05-20:42:36.111433 7f78e15b46c0 Delete type=0 #951
|
||||
2026/03/05-20:42:36.111701 7f78e15b46c0 Manual compaction at level-0 from '!journal!056ILNNrLiPq3Gi3' @ 72057594037927935 : 1 .. '!journal.pages!yfZxl4I7XAuUF6r3.apXmOlZRmGT4GreB' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
2026/01/29-20:23:41.966258 7fac3cbfe6c0 Recovering log #924
|
||||
2026/01/29-20:23:41.975859 7fac3cbfe6c0 Delete type=3 #922
|
||||
2026/01/29-20:23:41.975913 7fac3cbfe6c0 Delete type=0 #924
|
||||
2026/01/29-20:30:28.375267 7fa9a6fef6c0 Level-0 table #929: started
|
||||
2026/01/29-20:30:28.375310 7fa9a6fef6c0 Level-0 table #929: 0 bytes OK
|
||||
2026/01/29-20:30:28.407196 7fa9a6fef6c0 Delete type=0 #927
|
||||
2026/01/29-20:30:28.642703 7fa9a6fef6c0 Manual compaction at level-0 from '!journal!056ILNNrLiPq3Gi3' @ 72057594037927935 : 1 .. '!journal.pages!yfZxl4I7XAuUF6r3.apXmOlZRmGT4GreB' @ 0 : 0; will stop at (end)
|
||||
2026/03/05-20:35:59.080273 7f78e2ffd6c0 Recovering log #944
|
||||
2026/03/05-20:35:59.136381 7f78e2ffd6c0 Delete type=3 #942
|
||||
2026/03/05-20:35:59.136563 7f78e2ffd6c0 Delete type=0 #944
|
||||
2026/03/05-20:36:36.924587 7f78e15b46c0 Level-0 table #949: started
|
||||
2026/03/05-20:36:36.924663 7f78e15b46c0 Level-0 table #949: 0 bytes OK
|
||||
2026/03/05-20:36:36.998629 7f78e15b46c0 Delete type=0 #947
|
||||
2026/03/05-20:36:37.117578 7f78e15b46c0 Manual compaction at level-0 from '!journal!056ILNNrLiPq3Gi3' @ 72057594037927935 : 1 .. '!journal.pages!yfZxl4I7XAuUF6r3.apXmOlZRmGT4GreB' @ 0 : 0; will stop at (end)
|
||||
|
||||
Binary file not shown.
@@ -1,31 +1,28 @@
|
||||
if (!this.item.name.includes("(") || this.item.system.tests.value.includes("Terrain") || this.item.system.tests.value.toLowerCase().includes("(any)"))
|
||||
{
|
||||
let Tests = this.item.system.tests.value
|
||||
let name = this.item.name
|
||||
if (!this.item.name.includes("(") || this.item.system.tests.value.includes("Terrain") || this.item.system.tests.value.toLowerCase().includes("(any)")) {
|
||||
let tests = this.item.system.tests.value
|
||||
let name = this.item.name
|
||||
|
||||
// If name already specifies, make sure Tests value reflects that
|
||||
if (name.includes("(") && !name.toLowerCase().includes("(any)"))
|
||||
{
|
||||
let terrain = name.split("(")[1].split(")")[0]
|
||||
tests = tests.replace("the Terrain", terrain)
|
||||
}
|
||||
else // If no sense specified, provide dialog choice
|
||||
{
|
||||
let choice = await ItemDialog.create(ItemDialog.objectToArray({
|
||||
coastal : "Littoral",
|
||||
deserts : "Déserts",
|
||||
marshes : "Marécages",
|
||||
rocky : "Rocailleux",
|
||||
tundra : "Toundra",
|
||||
woodlands : "Régions boisées"
|
||||
}, this.item.img), 1, "Choisissez un Terrain");
|
||||
if (choice[0])
|
||||
{
|
||||
name = `${name.split("(")[0].trim()} (${choice[0].name})`
|
||||
tests = tests.replace("Terrain", choice[0].name + " Terrain")
|
||||
}
|
||||
// If name already specifies, make sure Tests value reflects that
|
||||
if (name.includes("(") && !name.toLowerCase().includes("(any)")) {
|
||||
let terrain = name.split("(")[1].split(")")[0]
|
||||
tests = tests.replace("the Terrain", terrain)
|
||||
}
|
||||
else // If no sense specified, provide dialog choice
|
||||
{
|
||||
let choice = await ItemDialog.create(ItemDialog.objectToArray({
|
||||
coastal: "Littoral",
|
||||
deserts: "Déserts",
|
||||
marshes: "Marécages",
|
||||
rocky: "Rocailleux",
|
||||
tundra: "Toundra",
|
||||
woodlands: "Régions boisées"
|
||||
}, this.item.img), 1, "Choisissez un Terrain");
|
||||
if (choice[0]) {
|
||||
name = `${name.split("(")[0].trim()} (${choice[0].name})`
|
||||
tests = tests.replace("Terrain", choice[0].name + " Terrain")
|
||||
}
|
||||
}
|
||||
|
||||
this.effect.updateSource({name})
|
||||
this.item.updateSource({name, "system.tests.value" : tests})
|
||||
this.effect.updateSource({ name })
|
||||
this.item.updateSource({ name, "system.tests.value": tests })
|
||||
}
|
||||
@@ -10,17 +10,17 @@ scriptData[0].script = `
|
||||
let chatData = {whisper: ChatMessage.getWhisperRecipients("GM")};
|
||||
let message = "";
|
||||
|
||||
let Blessures = foundry.utils.duplicate(this.actor.status.Blessures);
|
||||
let wounds = foundry.utils.duplicate(this.actor.status.wounds);
|
||||
let regenRoll = await new Roll("1d10").roll({allowInteractive : false});
|
||||
let regen = regenRoll.total;
|
||||
|
||||
if (Blessures.value >= Blessures.max)
|
||||
if (wounds.value >= wounds.max)
|
||||
return;
|
||||
|
||||
if (Blessures.value > 0) {
|
||||
Blessures.value += Math.floor(regen / 2);
|
||||
if (Blessures.value > Blessures.max) {
|
||||
Blessures.value = Blessures.max;
|
||||
if (wounds.value > 0) {
|
||||
wounds.value += Math.floor(regen / 2);
|
||||
if (wounds.value > wounds.max) {
|
||||
wounds.value = wounds.max;
|
||||
}
|
||||
message += \`<b>\${this.actor.name}</b> regagne \${regen} Blessures.\`;
|
||||
|
||||
@@ -29,7 +29,7 @@ scriptData[0].script = `
|
||||
}
|
||||
} else if (regen >= 8) {
|
||||
message += \`<b>\${this.actor.name}</b> a obtenu un \${regen} et regagne 1 Blessure.\`;
|
||||
Blessures.value += 1;
|
||||
wounds.value += 1;
|
||||
if (regen === 10) {
|
||||
message += "<br>De plus, il régénère une Blessure Critique.";
|
||||
}
|
||||
@@ -37,7 +37,7 @@ scriptData[0].script = `
|
||||
message += \`<b>\${this.actor.name}</b> Résultat de régénération de \${regen} - Aucun effet.\`;
|
||||
}
|
||||
|
||||
await this.actor.update({"system.status.wounds": Blessures});
|
||||
await this.actor.update({"system.status.wounds": wounds});
|
||||
this.script.message(message, {whisper: ChatMessage.getWhisperRecipients("GM")});
|
||||
`
|
||||
|
||||
@@ -46,4 +46,4 @@ await effet.update({
|
||||
"system.scriptData": scriptData
|
||||
});
|
||||
|
||||
await trait.update({name});
|
||||
await trait.update({ name });
|
||||
@@ -5,15 +5,15 @@ let wounds = foundry.utils.duplicate(this.actor.status.wounds)
|
||||
let regenRoll = await new Roll("1d10").roll({allowInteractive : false});
|
||||
let regen = regenRoll.total;
|
||||
|
||||
if (Blessures.value >= Blessures.max)
|
||||
if (wounds.value >= wounds.max)
|
||||
return
|
||||
|
||||
if (Blessures.value > 0)
|
||||
if (wounds.value > 0)
|
||||
{
|
||||
Blessures.value += regen
|
||||
if (Blessures.value > Blessures.max)
|
||||
wounds.value += regen
|
||||
if (wounds.value > wounds.max)
|
||||
{
|
||||
Blessures.value = Blessures.max
|
||||
wounds.value = wounds.max
|
||||
}
|
||||
message += `<b>${this.actor.name}</b> regagne ${regen} Point de Blessures.`
|
||||
|
||||
@@ -25,7 +25,7 @@ if (Blessures.value > 0)
|
||||
else if (regen >= 8)
|
||||
{
|
||||
message += `<b>${this.actor.name}</b> a fait un ${regen} et regagne 1 Point de Blessures.`
|
||||
Blessures.value += 1
|
||||
wounds.value += 1
|
||||
if (regen == 10)
|
||||
{
|
||||
message += `<br>De plus, il guérit d'une Blessure Critique.`
|
||||
@@ -36,5 +36,5 @@ else
|
||||
message += `<b>${this.actor.name}</b> a fait un ${regen} et ne régénère pas de Point de Blessures.`
|
||||
}
|
||||
|
||||
await this.actor.update({ "system.status.wounds": Blessures })
|
||||
await this.actor.update({ "system.status.wounds": wounds })
|
||||
this.script.message(message, { whisper: ChatMessage.getWhisperRecipients("GM") })
|
||||
@@ -1,6 +1,6 @@
|
||||
if (!this.item.name.includes("(") || this.item.system.tests.value.includes("(Sense)") || this.item.system.tests.value.toLowerCase().includes("(any)"))
|
||||
{
|
||||
let Tests = this.item.system.tests.value
|
||||
let tests = this.item.system.tests.value
|
||||
let name = this.item.name
|
||||
|
||||
// If name already specifies, make sure Tests value reflects that
|
||||
|
||||
2009
tools/check-tests-log.txt
Normal file
2009
tools/check-tests-log.txt
Normal file
File diff suppressed because it is too large
Load Diff
1991
tools/check-tests-results.json
Normal file
1991
tools/check-tests-results.json
Normal file
File diff suppressed because it is too large
Load Diff
111
tools/check-tests.js
Normal file
111
tools/check-tests.js
Normal file
@@ -0,0 +1,111 @@
|
||||
import fs from 'node:fs';
|
||||
import path from 'node:path';
|
||||
import { fileURLToPath } from 'node:url';
|
||||
|
||||
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
||||
const SCRIPTS_DIR = path.join(__dirname, '..', 'scripts');
|
||||
const LOG_FILE = path.join(__dirname, 'check-tests-log.txt');
|
||||
|
||||
const log = [];
|
||||
|
||||
function writeLog(message) {
|
||||
console.log(message);
|
||||
log.push(message);
|
||||
}
|
||||
|
||||
function getAllJsFiles(dir) {
|
||||
const files = [];
|
||||
|
||||
function traverse(currentDir) {
|
||||
const entries = fs.readdirSync(currentDir, { withFileTypes: true });
|
||||
|
||||
for (const entry of entries) {
|
||||
const fullPath = path.join(currentDir, entry.name);
|
||||
|
||||
if (entry.isDirectory()) {
|
||||
traverse(fullPath);
|
||||
} else if (entry.isFile() && entry.name.endsWith('.js')) {
|
||||
files.push(fullPath);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
traverse(dir);
|
||||
return files;
|
||||
}
|
||||
|
||||
function checkForTests(filePath) {
|
||||
const content = fs.readFileSync(filePath, 'utf-8');
|
||||
return content.includes('let Tests');
|
||||
}
|
||||
|
||||
// Programme principal
|
||||
writeLog('='.repeat(60));
|
||||
writeLog('VÉRIFICATION DE "let Tests" DANS LES SCRIPTS');
|
||||
writeLog('='.repeat(60));
|
||||
writeLog(`Date: ${new Date().toISOString()}`);
|
||||
writeLog(`Répertoire: ${SCRIPTS_DIR}\n`);
|
||||
|
||||
const allFiles = getAllJsFiles(SCRIPTS_DIR);
|
||||
writeLog(`Total de fichiers trouvés: ${allFiles.length}\n`);
|
||||
|
||||
const filesWithTests = [];
|
||||
const filesWithoutTests = [];
|
||||
|
||||
allFiles.forEach(filePath => {
|
||||
const relativePath = path.relative(path.join(__dirname, '..'), filePath);
|
||||
|
||||
if (checkForTests(filePath)) {
|
||||
filesWithTests.push(relativePath);
|
||||
} else {
|
||||
filesWithoutTests.push(relativePath);
|
||||
}
|
||||
});
|
||||
|
||||
// Afficher les résultats
|
||||
writeLog('=== FICHIERS CONTENANT "let Tests" ===\n');
|
||||
if (filesWithTests.length > 0) {
|
||||
filesWithTests.forEach(file => {
|
||||
writeLog(`✓ ${file}`);
|
||||
});
|
||||
} else {
|
||||
writeLog('Aucun fichier trouvé.');
|
||||
}
|
||||
|
||||
writeLog(`\nTotal: ${filesWithTests.length} fichier(s)\n`);
|
||||
|
||||
writeLog('='.repeat(60));
|
||||
writeLog('=== FICHIERS NE CONTENANT PAS "let Tests" ===\n');
|
||||
if (filesWithoutTests.length > 0) {
|
||||
filesWithoutTests.forEach(file => {
|
||||
writeLog(`✗ ${file}`);
|
||||
});
|
||||
} else {
|
||||
writeLog('Aucun fichier trouvé.');
|
||||
}
|
||||
|
||||
writeLog(`\nTotal: ${filesWithoutTests.length} fichier(s)\n`);
|
||||
|
||||
writeLog('='.repeat(60));
|
||||
writeLog('RÉSUMÉ');
|
||||
writeLog('='.repeat(60));
|
||||
writeLog(`Fichiers avec "let Tests": ${filesWithTests.length}`);
|
||||
writeLog(`Fichiers sans "let Tests": ${filesWithoutTests.length}`);
|
||||
writeLog(`Total de fichiers analysés: ${allFiles.length}`);
|
||||
writeLog('='.repeat(60));
|
||||
|
||||
// Sauvegarder le log
|
||||
fs.writeFileSync(LOG_FILE, log.join('\n'), 'utf-8');
|
||||
writeLog(`\nLog sauvegardé dans: ${LOG_FILE}`);
|
||||
|
||||
// Exporter les résultats en JSON
|
||||
const results = {
|
||||
date: new Date().toISOString(),
|
||||
totalFiles: allFiles.length,
|
||||
filesWithTests: filesWithTests,
|
||||
filesWithoutTests: filesWithoutTests
|
||||
};
|
||||
|
||||
const resultsFile = path.join(__dirname, 'check-tests-results.json');
|
||||
fs.writeFileSync(resultsFile, JSON.stringify(results, null, 2), 'utf-8');
|
||||
writeLog(`Résultats sauvegardés dans: ${resultsFile}`);
|
||||
Reference in New Issue
Block a user