mirror of https://github.com/clickscodes/nucleus
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
136 lines
4.3 KiB
136 lines
4.3 KiB
import fs from "fs";
|
|
import { MongoClient } from "mongodb";
|
|
|
|
const mongoClient = new MongoClient("mongodb://127.0.0.1:27017/local");
|
|
await mongoClient.connect();
|
|
const database = mongoClient.db("Nucleus");
|
|
const collection = database.collection("migrationTesting");
|
|
|
|
// Loop through all files in the oldData folder
|
|
const files = fs.readdirSync("./oldData");
|
|
let x = 0;
|
|
for (const file of files) {
|
|
console.log(`┌ Processing file ${x} of ${files.length - 1} | ${file}`);
|
|
// Read the file as a json
|
|
let data;
|
|
try {
|
|
data = JSON.parse(fs.readFileSync(`./oldData/${file}`));
|
|
} catch {
|
|
console.log(`└ Error reading file ${file}`);
|
|
x++;
|
|
continue;
|
|
}
|
|
// Check if data version is 3
|
|
if (data.version !== 3) {
|
|
console.log(`├ Version was too old on ${file}`);
|
|
console.log("└ Skipping file");
|
|
x++;
|
|
continue;
|
|
}
|
|
// Convert to the new format
|
|
const newData = {
|
|
id: data.guild_info.id.toString(),
|
|
version: 1,
|
|
singleEventNotifications: {
|
|
statsChannelDeleted: false
|
|
},
|
|
filters: {
|
|
images: {
|
|
NSFW: !data.images.nsfw,
|
|
size: data.images.toosmall
|
|
},
|
|
wordFilter: {
|
|
enabled: true,
|
|
words: {
|
|
strict: data.wordfilter.strict,
|
|
loose: data.wordfilter.soft
|
|
}
|
|
},
|
|
invite: {
|
|
enabled: data.invite ? data.invite.enabled : false,
|
|
channels: data.invite ? data.invite.whitelist.channels.map((channel) => channel.toString()) : []
|
|
},
|
|
pings: {
|
|
mass: 5,
|
|
everyone: true,
|
|
roles: true
|
|
}
|
|
},
|
|
welcome: {
|
|
enabled: data.welcome ? data.welcome.message.text !== null : false,
|
|
verificationRequired: {
|
|
message: null,
|
|
role: null
|
|
},
|
|
role: data.welcome ? (data.welcome.role !== null ? data.welcome.role.toString() : null) : null,
|
|
channel: data.welcome
|
|
? data.welcome.message.text !== null
|
|
? data.welcome.message.channel.toString()
|
|
: null
|
|
: null,
|
|
message: data.welcome ? data.welcome.message.text : null
|
|
},
|
|
stats: {},
|
|
logging: {
|
|
logs: {
|
|
enabled: true,
|
|
channel: data.log_info.log_channel ? data.log_info.log_channel.toString() : null,
|
|
toLog: "3fffff"
|
|
},
|
|
staff: {
|
|
channel: data.log_info.staff ? data.log_info.staff.toString() : null
|
|
}
|
|
},
|
|
verify: {
|
|
enabled: data.verify_role !== null,
|
|
role: data.verify_role ? data.verify_role.toString() : null
|
|
},
|
|
tickets: {
|
|
enabled: data.modmail ? data.modmail.cat !== null : null,
|
|
category: data.modmail ? (data.modmail.cat !== null ? data.modmail.cat.toString() : null) : null,
|
|
types: "3f",
|
|
customTypes: null,
|
|
supportRole: data.modmail ? (data.modmail.mention !== null ? data.modmail.mention.toString() : null) : null,
|
|
maxTickets: data.modmail ? data.modmail.max : 5
|
|
},
|
|
moderation: {
|
|
mute: {
|
|
timeout: true,
|
|
role: null,
|
|
text: null,
|
|
link: null
|
|
},
|
|
kick: {
|
|
text: null,
|
|
link: null
|
|
},
|
|
ban: {
|
|
text: null,
|
|
link: null
|
|
},
|
|
softban: {
|
|
text: null,
|
|
link: null
|
|
},
|
|
warn: {
|
|
text: null,
|
|
link: null
|
|
},
|
|
role: {
|
|
role: null
|
|
}
|
|
},
|
|
tracks: [],
|
|
roleMenu: [],
|
|
tags: data.tags
|
|
};
|
|
// Insert the new data into the database
|
|
await collection.updateOne({ id: data.guild_info.id.toString() }, { $set: newData }, { upsert: true });
|
|
// Delete the old file
|
|
fs.unlinkSync(`./oldData/${file}`);
|
|
console.log(`└ Successfully migrated file ${file}`);
|
|
x++;
|
|
}
|
|
|
|
// console.log((await collection.findOne({ id: "your mother" })));
|