blob: 268639d58a7ddee38da1f4376ad0a57cafcb0518 [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) {
let rsmData;
try {
rsmData = JSON.parse(fs.readFileSync(`${dir}/${file}`, 'utf8'));
} catch { continue }
if (!rsmData.version || rsmData.version < 3) continue;
const nucleusData = await client.database.guilds.read(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);
}