blob: 6286465c201fa0ae0c7d61a456415a39833ab687 [file] [log] [blame]
import * as fs from "fs";
import client from "../client.js";
import _ from "lodash";
const dir = "./data";
const files = fs.readdirSync(dir);
for (const file of files) {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
let rsmData: any;
try {
rsmData = JSON.parse(fs.readFileSync(`${dir}/${file}`, "utf8"));
} catch {
continue;
}
if (!rsmData.version || rsmData.version < 3) continue;
const nucleusData = await client.database.guilds.readOld(rsmData.guild_info.id);
const rsmToNucleus = {
id: rsmData.guild_info.id,
version: 1,
singleEventNotifications: {},
filters: {
images: {
NSFW: rsmData.images?.nsfw,
size: rsmData.images?.toosmall
},
malware: null,
wordFilter: {
enabled: true,
words: {
strict: rsmData.wordfilter?.strict,
loose: rsmData.wordfilter?.soft
},
allowed: {
users: rsmData.wordfilter?.ignore?.members,
roles: rsmData.wordfilter?.ignore?.roles,
channels: rsmData.wordfilter?.ignore?.channels
}
},
invite: {
enabled: rsmData.invite?.enabled,
allowed: {
channels: rsmData.invite?.whitelist?.members,
roles: rsmData.invite?.whitelist?.roles,
users: rsmData.invite?.whitelist?.channels
}
}
},
welcome: {
enabled: true,
role: rsmData.welcome?.role,
channel: rsmData.welcome?.message?.channel,
message: rsmData.welcome?.message?.text ?? null
},
logging: {
logs: {
enabled: true,
channel: rsmData.log_info?.log_channel
},
staff: {
channel: rsmData.log_info?.staff
}
},
verify: {
enabled: true,
role: rsmData.verify_role
},
tickets: {
enabled: true,
category: rsmData.modmail?.cat,
supportRole: rsmData.modmail?.mention,
maxTickets: rsmData.modmail?.max
},
tags: rsmData.tags
} as Partial<ReturnType<typeof client.database.guilds.read>>;
// console.log(rsmToNucleus)
const merged = _.merge(nucleusData, rsmToNucleus);
// console.log(merged)
await client.database.guilds.write(merged.id!, merged);
}