summaryrefslogtreecommitdiff
path: root/packages/backend/src/queue/processors
diff options
context:
space:
mode:
authoranatawa12 <anatawa12@icloud.com>2025-05-09 17:48:01 +0900
committerGitHub <noreply@github.com>2025-05-09 17:48:01 +0900
commit0bd44bca6db77efd7ed0fdf2d62ccbf88470aa0f (patch)
treed9b3fc46d11a2d78222cbf96a1c0fbc67f402333 /packages/backend/src/queue/processors
parentFeat: UGCの公開範囲設定機能 (#15938) (diff)
downloadmisskey-0bd44bca6db77efd7ed0fdf2d62ccbf88470aa0f.tar.gz
misskey-0bd44bca6db77efd7ed0fdf2d62ccbf88470aa0f.tar.bz2
misskey-0bd44bca6db77efd7ed0fdf2d62ccbf88470aa0f.zip
fix: exported antenna data cannot be imported in some cases (#15985)
* chore: add ExportedAntenna type * chore: use ExportedAntenna on export and fix schema * fix: excludeNotesInSensitiveChannel is not included * chore: revert unnecessary changes * chore: add doc for future developer * docs: update changelog
Diffstat (limited to 'packages/backend/src/queue/processors')
-rw-r--r--packages/backend/src/queue/processors/ExportAntennasProcessorService.ts4
-rw-r--r--packages/backend/src/queue/processors/ImportAntennasProcessorService.ts13
2 files changed, 13 insertions, 4 deletions
diff --git a/packages/backend/src/queue/processors/ExportAntennasProcessorService.ts b/packages/backend/src/queue/processors/ExportAntennasProcessorService.ts
index b3111865ad..053ba99005 100644
--- a/packages/backend/src/queue/processors/ExportAntennasProcessorService.ts
+++ b/packages/backend/src/queue/processors/ExportAntennasProcessorService.ts
@@ -15,6 +15,7 @@ import { bindThis } from '@/decorators.js';
import { createTemp } from '@/misc/create-temp.js';
import { UtilityService } from '@/core/UtilityService.js';
import { NotificationService } from '@/core/NotificationService.js';
+import { ExportedAntenna } from '@/queue/processors/ImportAntennasProcessorService.js';
import { QueueLoggerService } from '../QueueLoggerService.js';
import type { DBExportAntennasData } from '../types.js';
import type * as Bull from 'bullmq';
@@ -86,7 +87,8 @@ export class ExportAntennasProcessorService {
excludeBots: antenna.excludeBots,
withReplies: antenna.withReplies,
withFile: antenna.withFile,
- }));
+ excludeNotesInSensitiveChannel: antenna.excludeNotesInSensitiveChannel,
+ } satisfies Required<ExportedAntenna>));
if (antennas.length - 1 !== index) {
write(', ');
}
diff --git a/packages/backend/src/queue/processors/ImportAntennasProcessorService.ts b/packages/backend/src/queue/processors/ImportAntennasProcessorService.ts
index 9c033b73e2..4c7f2d09bb 100644
--- a/packages/backend/src/queue/processors/ImportAntennasProcessorService.ts
+++ b/packages/backend/src/queue/processors/ImportAntennasProcessorService.ts
@@ -11,17 +11,18 @@ import Logger from '@/logger.js';
import type { AntennasRepository } from '@/models/_.js';
import { DI } from '@/di-symbols.js';
import { bindThis } from '@/decorators.js';
+import { Schema, SchemaType } from '@/misc/json-schema.js';
import { QueueLoggerService } from '../QueueLoggerService.js';
import { DBAntennaImportJobData } from '../types.js';
import type * as Bull from 'bullmq';
const Ajv = _Ajv.default;
-const validate = new Ajv().compile({
+const exportedAntennaSchema = {
type: 'object',
properties: {
name: { type: 'string', minLength: 1, maxLength: 100 },
- src: { type: 'string', enum: ['home', 'all', 'users', 'list'] },
+ src: { type: 'string', enum: ['home', 'all', 'users', 'list', 'users_blacklist'] },
userListAccts: {
type: 'array',
items: {
@@ -47,9 +48,14 @@ const validate = new Ajv().compile({
excludeBots: { type: 'boolean' },
withReplies: { type: 'boolean' },
withFile: { type: 'boolean' },
+ excludeNotesInSensitiveChannel: { type: 'boolean' },
},
required: ['name', 'src', 'keywords', 'excludeKeywords', 'users', 'caseSensitive', 'withReplies', 'withFile'],
-});
+} as const satisfies Schema;
+
+export type ExportedAntenna = SchemaType<typeof exportedAntennaSchema>;
+
+const validate = new Ajv().compile<ExportedAntenna>(exportedAntennaSchema);
@Injectable()
export class ImportAntennasProcessorService {
@@ -91,6 +97,7 @@ export class ImportAntennasProcessorService {
excludeBots: antenna.excludeBots,
withReplies: antenna.withReplies,
withFile: antenna.withFile,
+ excludeNotesInSensitiveChannel: antenna.excludeNotesInSensitiveChannel,
});
this.logger.succ('Antenna created: ' + result.id);
this.globalEventService.publishInternalEvent('antennaCreated', result);