diff options
Diffstat (limited to 'src/queue/processors/db/import-following.ts')
| -rw-r--r-- | src/queue/processors/db/import-following.ts | 41 |
1 files changed, 21 insertions, 20 deletions
diff --git a/src/queue/processors/db/import-following.ts b/src/queue/processors/db/import-following.ts index 069afa74c4..8de3193e46 100644 --- a/src/queue/processors/db/import-following.ts +++ b/src/queue/processors/db/import-following.ts @@ -1,32 +1,33 @@ import * as Bull from 'bull'; -import * as mongo from 'mongodb'; import { queueLogger } from '../../logger'; -import User from '../../../models/user'; import follow from '../../../services/following/create'; -import DriveFile from '../../../models/drive-file'; -import { getOriginalUrl } from '../../../misc/get-drive-file-url'; import parseAcct from '../../../misc/acct/parse'; -import resolveUser from '../../../remote/resolve-user'; +import { resolveUser } from '../../../remote/resolve-user'; import { downloadTextFile } from '../../../misc/download-text-file'; -import { isSelfHost, toDbHost } from '../../../misc/convert-host'; +import { isSelfHost, toPuny } from '../../../misc/convert-host'; +import { Users, DriveFiles } from '../../../models'; const logger = queueLogger.createSubLogger('import-following'); export async function importFollowing(job: Bull.Job, done: any): Promise<void> { - logger.info(`Importing following of ${job.data.user._id} ...`); + logger.info(`Importing following of ${job.data.user.id} ...`); - const user = await User.findOne({ - _id: new mongo.ObjectID(job.data.user._id.toString()) - }); + const user = await Users.findOne(job.data.user.id); + if (user == null) { + done(); + return; + } - const file = await DriveFile.findOne({ - _id: new mongo.ObjectID(job.data.fileId.toString()) + const file = await DriveFiles.findOne({ + id: job.data.fileId }); + if (file == null) { + done(); + return; + } - const url = getOriginalUrl(file); - - const csv = await downloadTextFile(url); + const csv = await downloadTextFile(file.url); let linenum = 0; @@ -36,11 +37,11 @@ export async function importFollowing(job: Bull.Job, done: any): Promise<void> { try { const { username, host } = parseAcct(line.trim()); - let target = isSelfHost(host) ? await User.findOne({ + let target = isSelfHost(host!) ? await Users.findOne({ host: null, usernameLower: username.toLowerCase() - }) : await User.findOne({ - host: toDbHost(host), + }) : await Users.findOne({ + host: toPuny(host!), usernameLower: username.toLowerCase() }); @@ -55,9 +56,9 @@ export async function importFollowing(job: Bull.Job, done: any): Promise<void> { } // skip myself - if (target._id.equals(job.data.user._id)) continue; + if (target.id === job.data.user.id) continue; - logger.info(`Follow[${linenum}] ${target._id} ...`); + logger.info(`Follow[${linenum}] ${target.id} ...`); follow(user, target); } catch (e) { |