130 lines
3.9 KiB
JavaScript
130 lines
3.9 KiB
JavaScript
import { deleteAccount } from "./delete-account.js";
|
|
import { deleteDriveFiles } from "./delete-drive-files.js";
|
|
import { exportBlocking } from "./export-blocking.js";
|
|
import { exportCustomEmojis } from "./export-custom-emojis.js";
|
|
import { exportFollowing } from "./export-following.js";
|
|
import { exportMute } from "./export-mute.js";
|
|
import { exportNotes } from "./export-notes.js";
|
|
import { exportUserLists } from "./export-user-lists.js";
|
|
import { importBlocking } from "./import-blocking.js";
|
|
import { importCustomEmojis } from "./import-custom-emojis.js";
|
|
import { importFollowing } from "./import-following.js";
|
|
import { importMuting } from "./import-muting.js";
|
|
import { importUserLists } from "./import-user-lists.js";
|
|
import { createQueue, defaultJobOpts } from "../index.js";
|
|
import config from "../../../config/index.js";
|
|
const processors = {
|
|
deleteAccount,
|
|
deleteDriveFiles,
|
|
exportBlocking,
|
|
exportCustomEmojis,
|
|
exportFollowing,
|
|
exportMute,
|
|
exportNotes,
|
|
exportUserLists,
|
|
importBlocking,
|
|
importCustomEmojis,
|
|
importFollowing,
|
|
importMuting,
|
|
importUserLists
|
|
};
|
|
async function process(job) {
|
|
const processor = processors[job.name];
|
|
if (processor === undefined) return "skip: unknown job name";
|
|
return await processor(job);
|
|
}
|
|
export const [dbQueue, dbInit] = createQueue("db", process, {
|
|
limitPerSec: 256,
|
|
concurrency: 16
|
|
});
|
|
export function createDeleteDriveFilesJob(user) {
|
|
return dbQueue.add("deleteDriveFiles", {
|
|
user: user
|
|
}, defaultJobOpts);
|
|
}
|
|
export function createExportCustomEmojisJob(user) {
|
|
return dbQueue.add("exportCustomEmojis", {
|
|
user: user
|
|
}, defaultJobOpts);
|
|
}
|
|
export function createExportNotesJob(user) {
|
|
return dbQueue.add("exportNotes", {
|
|
user: user
|
|
}, defaultJobOpts);
|
|
}
|
|
export function createExportFollowingJob(user, excludeMuting = false, excludeInactive = false) {
|
|
return dbQueue.add("exportFollowing", {
|
|
user: user,
|
|
excludeMuting,
|
|
excludeInactive
|
|
}, defaultJobOpts);
|
|
}
|
|
export function createExportMuteJob(user) {
|
|
return dbQueue.add("exportMute", {
|
|
user: user
|
|
}, defaultJobOpts);
|
|
}
|
|
export function createExportBlockingJob(user) {
|
|
return dbQueue.add("exportBlocking", {
|
|
user: user
|
|
}, defaultJobOpts);
|
|
}
|
|
export function createExportUserListsJob(user) {
|
|
return dbQueue.add("exportUserLists", {
|
|
user: user
|
|
}, defaultJobOpts);
|
|
}
|
|
export function createImportFollowingJob(user, fileId) {
|
|
return dbQueue.add("importFollowing", {
|
|
user: user,
|
|
fileId: fileId
|
|
}, defaultJobOpts);
|
|
}
|
|
export function createImportMastoPostJob(user, post, signatureCheck) {
|
|
return dbQueue.add("importMastoPost", {
|
|
user: user,
|
|
post: post,
|
|
signatureCheck: signatureCheck
|
|
}, {
|
|
attempts: config.inboxJobMaxAttempts || 8,
|
|
...defaultJobOpts
|
|
});
|
|
}
|
|
export function createImportCkPostJob(user, post, signatureCheck) {
|
|
return dbQueue.add("importCkPost", {
|
|
user: user,
|
|
post: post,
|
|
signatureCheck: signatureCheck
|
|
}, defaultJobOpts);
|
|
}
|
|
export function createImportMutingJob(user, fileId) {
|
|
return dbQueue.add("importMuting", {
|
|
user: user,
|
|
fileId: fileId
|
|
}, defaultJobOpts);
|
|
}
|
|
export function createImportBlockingJob(user, fileId) {
|
|
return dbQueue.add("importBlocking", {
|
|
user: user,
|
|
fileId: fileId
|
|
}, defaultJobOpts);
|
|
}
|
|
export function createImportUserListsJob(user, fileId) {
|
|
return dbQueue.add("importUserLists", {
|
|
user: user,
|
|
fileId: fileId
|
|
}, defaultJobOpts);
|
|
}
|
|
export function createImportCustomEmojisJob(user, fileId) {
|
|
return dbQueue.add("importCustomEmojis", {
|
|
user: user,
|
|
fileId: fileId
|
|
}, defaultJobOpts);
|
|
}
|
|
export function createDeleteAccountJob(user, opts = {}) {
|
|
return dbQueue.add("deleteAccount", {
|
|
user: user,
|
|
soft: opts.soft
|
|
}, defaultJobOpts);
|
|
}
|