Files
FrozenFriendsYume/packages/backend/built/queue/queues/db/index.js
T
2026-07-26 18:25:37 +09:00

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);
}