diff --git a/CHANGELOG.md b/CHANGELOG.md index 540726ae7d74ee4a528defba5d0e103d929c2133..f058786b5d238b10df4a157525b94e837f81d9d1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -53,6 +53,7 @@ - ファイルアップãƒãƒ¼ãƒ‰æ™‚ç‰ã«ãƒ•ã‚¡ã‚¤ãƒ«åã®æ‹¡å¼µåã‚’ä¿®æ£ã™ã‚‹é–¢æ•°(correctFilename)ã®æŒ™å‹•ã‚’改善 - Webhookã®ãƒšã‚¤ãƒãƒ¼ãƒ‰ã«ã‚µãƒ¼ãƒãƒ¼ã®urlãŒå«ã¾ã‚Œã‚‹ã‚ˆã†ã«ãªã‚Šã¾ã—㟠- Webhookè¨å®šã§secretを空ã«å‡ºæ¥ã‚‹ã‚ˆã†ã« +- 使ã‚ã‚Œã¦ã„ãªã„アンテナã®è‡ªå‹•åœæ¢ã‚’è¨å®šå¯èƒ½ã« - Fix: 一部ã®featured noteを照会ã§ããªã„å•é¡Œã‚’ä¿®æ£ - Fix: muteãŒapiã‹ã‚‰ã®user list timelineå–å¾—ã§æ©Ÿèƒ½ã—ãªã„å•é¡Œã‚’ä¿®æ£ - Fix: ジョブã‚ュー管ç†ç”»é¢ã®èªè¨¼ã‚’回é¿ã§ãã‚‹å•é¡Œã‚’ä¿®æ£ diff --git a/packages/backend/src/config.ts b/packages/backend/src/config.ts index 0113090a08f2db1bcea60de5462b799143870e13..abbfdfed8fe55a72cb5ac85c7ff777f464532e26 100644 --- a/packages/backend/src/config.ts +++ b/packages/backend/src/config.ts @@ -88,6 +88,7 @@ type Source = { perChannelMaxNoteCacheCount?: number; perUserNotificationsMaxCount?: number; + deactivateAntennaThreshold?: number; }; export type Config = { @@ -161,6 +162,7 @@ export type Config = { redisForJobQueue: RedisOptions & RedisOptionsSource; perChannelMaxNoteCacheCount: number; perUserNotificationsMaxCount: number; + deactivateAntennaThreshold: number; }; const _filename = fileURLToPath(import.meta.url); @@ -252,6 +254,7 @@ export function loadConfig(): Config { clientManifestExists: clientManifestExists, perChannelMaxNoteCacheCount: config.perChannelMaxNoteCacheCount ?? 1000, perUserNotificationsMaxCount: config.perUserNotificationsMaxCount ?? 300, + deactivateAntennaThreshold: config.deactivateAntennaThreshold ?? (1000 * 60 * 60 * 24 * 7), }; } diff --git a/packages/backend/src/queue/processors/CleanProcessorService.ts b/packages/backend/src/queue/processors/CleanProcessorService.ts index 03a33e76acc3f6582a2604ce21350b37ec80e6e8..3b974c2405a0ecb7cd3a8687ca75016351b4fee2 100644 --- a/packages/backend/src/queue/processors/CleanProcessorService.ts +++ b/packages/backend/src/queue/processors/CleanProcessorService.ts @@ -10,6 +10,7 @@ import type { AntennasRepository, MutedNotesRepository, RoleAssignmentsRepositor import type Logger from '@/logger.js'; import { bindThis } from '@/decorators.js'; import { IdService } from '@/core/IdService.js'; +import type { Config } from '@/config.js'; import { QueueLoggerService } from '../QueueLoggerService.js'; import type * as Bull from 'bullmq'; @@ -18,6 +19,9 @@ export class CleanProcessorService { private logger: Logger; constructor( + @Inject(DI.config) + private config: Config, + @Inject(DI.userIpsRepository) private userIpsRepository: UserIpsRepository, @@ -54,12 +58,14 @@ export class CleanProcessorService { reason: 'word', }); - // 7日以上使ã‚ã‚Œã¦ãªã„アンテナをåœæ¢ - this.antennasRepository.update({ - lastUsedAt: LessThan(new Date(Date.now() - (1000 * 60 * 60 * 24 * 7))), - }, { - isActive: false, - }); + // 使ã‚ã‚Œã¦ãªã„アンテナをåœæ¢ + if (this.config.deactivateAntennaThreshold > 0) { + this.antennasRepository.update({ + lastUsedAt: LessThan(new Date(Date.now() - this.config.deactivateAntennaThreshold)), + }, { + isActive: false, + }); + } const expiredRoleAssignments = await this.roleAssignmentsRepository.createQueryBuilder('assign') .where('assign.expiresAt IS NOT NULL')