forked from Galactic/galactic-bot
include msglog webhook in import
This commit is contained in:
parent
376f2d75ac
commit
723d0c693e
@ -114,7 +114,7 @@ class GuildWrapper {
|
|||||||
const result = await this.client.storageManager.mongodb.webhooks.findOne({ feature, guild: this.id });
|
const result = await this.client.storageManager.mongodb.webhooks.findOne({ feature, guild: this.id });
|
||||||
if (!result) return null;
|
if (!result) return null;
|
||||||
if (!this.me.permissions.has('MANAGE_WEBHOOKS')) throw new Error('Missing MANAGE_WEBHOOKS');
|
if (!this.me.permissions.has('MANAGE_WEBHOOKS')) throw new Error('Missing MANAGE_WEBHOOKS');
|
||||||
const hooks = await this.guild.fetchWebhooks();
|
const hooks = await this.fetchWebhooks();
|
||||||
const hook = hooks.get(result.hookID);
|
const hook = hooks.get(result.hookID);
|
||||||
if (!hook) return null;
|
if (!hook) return null;
|
||||||
// const hook = new WebhookClient(result.hookID, result.token, {
|
// const hook = new WebhookClient(result.hookID, result.token, {
|
||||||
@ -125,6 +125,10 @@ class GuildWrapper {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fetchWebhooks() {
|
||||||
|
return this.guild.fetchWebhooks();
|
||||||
|
}
|
||||||
|
|
||||||
get defaultConfig() {
|
get defaultConfig() {
|
||||||
return { ...this.client.defaultConfig('GUILD') };
|
return { ...this.client.defaultConfig('GUILD') };
|
||||||
}
|
}
|
||||||
|
@ -49,7 +49,7 @@ class ImportCommand extends SlashCommand {
|
|||||||
database: dbs[version], // Default to v3
|
database: dbs[version], // Default to v3
|
||||||
version
|
version
|
||||||
});
|
});
|
||||||
|
|
||||||
await migrator.connect();
|
await migrator.connect();
|
||||||
let imported = null;
|
let imported = null;
|
||||||
try {
|
try {
|
||||||
@ -58,7 +58,18 @@ class ImportCommand extends SlashCommand {
|
|||||||
return { index: 'COMMAND_IMPORT_ERROR', params: { message: err.message }, emoji: 'failure' };
|
return { index: 'COMMAND_IMPORT_ERROR', params: { message: err.message }, emoji: 'failure' };
|
||||||
}
|
}
|
||||||
|
|
||||||
await guild.updateSettings(imported);
|
const { webhook } = imported;
|
||||||
|
if (webhook) {
|
||||||
|
if (typeof webhook === 'string') {
|
||||||
|
const hooks = await guild.fetchWebhooks();
|
||||||
|
const hook = hooks.get(webhook);
|
||||||
|
if(hook) await guild.updateWebhook('messages', hook);
|
||||||
|
} else if(version === '3') {
|
||||||
|
this.client.storageManager.mongodb.webhooks.updateOne({ feature: 'messages', guild: guild.id }, webhook);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
await guild.updateSettings(imported.settings);
|
||||||
return { index: 'COMMAND_IMPORT_SUCCESS', emoji: 'success' };
|
return { index: 'COMMAND_IMPORT_SUCCESS', emoji: 'success' };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -30,9 +30,10 @@ class SettingsMigrator {
|
|||||||
|
|
||||||
this.logger.debug(`Attempting settings migration for ${this.guild}`);
|
this.logger.debug(`Attempting settings migration for ${this.guild}`);
|
||||||
|
|
||||||
|
const { version } = this._config;
|
||||||
let idIdentifier = null,
|
let idIdentifier = null,
|
||||||
collection = null;
|
collection = null;
|
||||||
if (this._config.version === '2') {
|
if (version === '2') {
|
||||||
collection = 'discord_guilds';
|
collection = 'discord_guilds';
|
||||||
idIdentifier = 'guild_id';
|
idIdentifier = 'guild_id';
|
||||||
} else {
|
} else {
|
||||||
@ -41,15 +42,20 @@ class SettingsMigrator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const filter = { [idIdentifier]: this.guild };
|
const filter = { [idIdentifier]: this.guild };
|
||||||
console.log(filter);
|
const settings = await this.mongo.findOne(collection, filter);
|
||||||
const result = await this.mongo.findOne(collection, filter);
|
if (!settings) return Promise.reject(new Error('No old settings found'));
|
||||||
if (!result) return Promise.reject(new Error('No old settings found'));
|
|
||||||
|
|
||||||
const { _version } = result;
|
const { _version } = settings;
|
||||||
if (!_version) return Promise.reject(new Error('Unable to determine configuration version'));
|
if (!_version) return Promise.reject(new Error('Unable to determine configuration version'));
|
||||||
|
|
||||||
|
let webhook = null;
|
||||||
|
if (version === '3')
|
||||||
|
webhook = this.mongo.findOne('webhooks', { guild: this.guild, feature: 'messageLog' });
|
||||||
|
else if (version === '2')
|
||||||
|
({ webhook } = settings.chatlogs);
|
||||||
|
|
||||||
this.logger.info(`Settings migration for ${this.guild}`);
|
this.logger.info(`Settings migration for ${this.guild}`);
|
||||||
return this.cleanUp(this[_version](result));
|
return { settings: this.cleanUp(this[_version](settings)), webhook };
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user