-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfixBackup.js
More file actions
64 lines (55 loc) · 2.31 KB
/
fixBackup.js
File metadata and controls
64 lines (55 loc) · 2.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
const fs = require('fs').promises;
const path = require('path');
async function fixBackup() {
try {
// Lire le fichier source
const sourcePath = path.join(__dirname, 'backups', 'backup-1162551699165151332-1739676640334.json');
const backup = JSON.parse(await fs.readFile(sourcePath, 'utf-8'));
// Fonction pour corriger les permissions
function fixPermissions(permissionArray) {
return permissionArray.map(p => {
// Convertir [object Object] en valeurs réelles
if (p.allow && p.allow.toString() === '[object Object]') {
console.log(`Fixing invalid allow permission for ID ${p.id}`);
p.allow = "0";
}
if (p.deny && p.deny.toString() === '[object Object]') {
console.log(`Fixing invalid deny permission for ID ${p.id}`);
p.deny = "0";
}
// Assurer que les permissions sont des strings
p.allow = p.allow?.toString() || "0";
p.deny = p.deny?.toString() || "0";
return {
id: p.id,
type: p.type || 0,
allow: p.allow,
deny: p.deny
};
});
}
// Corriger les permissions des catégories et canaux
backup.channels = backup.channels.map(channel => {
console.log(`Processing channel: ${channel.name}`);
return {
...channel,
permissionOverwrites: fixPermissions(channel.permissionOverwrites || [])
};
});
// Corriger les permissions des rôles si nécessaire
backup.roles = backup.roles.map(role => {
console.log(`Processing role: ${role.name}`);
return {
...role,
permissions: role.permissions?.toString() || "0"
};
});
// Sauvegarder le backup corrigé
const fixedPath = path.join(__dirname, 'backups', 'fixed-backup.json');
await fs.writeFile(fixedPath, JSON.stringify(backup, null, 2));
console.log('Backup fixed and saved to fixed-backup.json');
} catch (error) {
console.error('Error fixing backup:', error);
}
}
fixBackup();