legacyMigrator: fix open legacy threads having no message logs
parent
87a2c885f8
commit
a76a675f4c
|
@ -2,7 +2,7 @@ const fs = require('fs');
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
const promisify = require('util').promisify;
|
const promisify = require('util').promisify;
|
||||||
const moment = require('moment');
|
const moment = require('moment');
|
||||||
const uuid = require('uuid');
|
const Eris = require('eris');
|
||||||
|
|
||||||
const knex = require('../knex');
|
const knex = require('../knex');
|
||||||
const config = require('../config');
|
const config = require('../config');
|
||||||
|
@ -68,6 +68,9 @@ async function shouldMigrate() {
|
||||||
}
|
}
|
||||||
|
|
||||||
async function migrateOpenThreads() {
|
async function migrateOpenThreads() {
|
||||||
|
const bot = new Eris.Client(config.token);
|
||||||
|
await bot.connect();
|
||||||
|
|
||||||
const oldThreads = await jsonDb.get('threads', []);
|
const oldThreads = await jsonDb.get('threads', []);
|
||||||
const promises = oldThreads.map(async oldThread => {
|
const promises = oldThreads.map(async oldThread => {
|
||||||
const existingOpenThread = await knex('threads')
|
const existingOpenThread = await knex('threads')
|
||||||
|
@ -76,6 +79,12 @@ async function migrateOpenThreads() {
|
||||||
|
|
||||||
if (existingOpenThread) return;
|
if (existingOpenThread) return;
|
||||||
|
|
||||||
|
const threadMessages = await bot.getChannel(oldThread.channelId).getMessages(1000);
|
||||||
|
const log = threadMessages.reverse().map(msg => {
|
||||||
|
const date = moment.utc(msg.timestamp, 'x').format('YYYY-MM-DD HH:mm:ss');
|
||||||
|
return `[${date}] ${msg.author.username}#${msg.author.discriminator}: ${msg.content}`;
|
||||||
|
}).join('\n') + '\n';
|
||||||
|
|
||||||
const newThread = {
|
const newThread = {
|
||||||
status: THREAD_STATUS.OPEN,
|
status: THREAD_STATUS.OPEN,
|
||||||
user_id: oldThread.userId,
|
user_id: oldThread.userId,
|
||||||
|
@ -84,7 +93,17 @@ async function migrateOpenThreads() {
|
||||||
is_legacy: 1
|
is_legacy: 1
|
||||||
};
|
};
|
||||||
|
|
||||||
return threads.createThreadInDB(newThread);
|
const threadId = await threads.createThreadInDB(newThread);
|
||||||
|
|
||||||
|
await trx('thread_messages').insert({
|
||||||
|
thread_id: threadId,
|
||||||
|
message_type: THREAD_MESSAGE_TYPE.LEGACY,
|
||||||
|
user_id: oldThread.userId,
|
||||||
|
user_name: '',
|
||||||
|
body: log,
|
||||||
|
is_anonymous: 0,
|
||||||
|
created_at: moment.utc().format('YYYY-MM-DD HH:mm:ss')
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
return Promise.all(promises);
|
return Promise.all(promises);
|
||||||
|
|
Loading…
Reference in New Issue