From 152714ca03954c2139f181382ac1bd70abb7ad5d Mon Sep 17 00:00:00 2001 From: Hazelnoot Date: Fri, 7 Nov 2025 02:25:01 -0500 Subject: [PATCH] fix lots of rebase errors --- .../backend/src/core/NoteCreateService.ts | 16 +----------- packages/backend/src/core/NoteEditService.ts | 3 ++- packages/backend/src/core/ReactionService.ts | 5 ++-- .../src/core/activitypub/ApResolverService.ts | 2 +- .../activitypub/models/ApPersonService.ts | 23 ++-------------- .../BackgroundTaskProcessorService.ts | 2 +- .../queue/processors/InboxProcessorService.ts | 26 ++----------------- packages/backend/test/unit/activitypub.ts | 2 +- 8 files changed, 12 insertions(+), 67 deletions(-) diff --git a/packages/backend/src/core/NoteCreateService.ts b/packages/backend/src/core/NoteCreateService.ts index 67bcd797db..da1d23100b 100644 --- a/packages/backend/src/core/NoteCreateService.ts +++ b/packages/backend/src/core/NoteCreateService.ts @@ -156,7 +156,6 @@ export type PureRenoteOption = Option & { renote: MiNote } & ({ text?: null } | @Injectable() export class NoteCreateService implements OnApplicationShutdown { #shutdownController = new AbortController(); - // private updateNotesCountQueue: CollapsedQueue; constructor( @Inject(DI.config) @@ -230,7 +229,6 @@ export class NoteCreateService implements OnApplicationShutdown { private readonly noteVisibilityService: NoteVisibilityService, private readonly collapsedQueueService: CollapsedQueueService, ) { - //this.updateNotesCountQueue = new CollapsedQueue(this.timeService, process.env.NODE_ENV !== 'test' ? 60 * 1000 * 5 : 0, this.collapseNotesCount, this.performUpdateNotesCount); } @bindThis @@ -1034,23 +1032,11 @@ export class NoteCreateService implements OnApplicationShutdown { return false; } - // Moved to CollapsedQueueService - /* - @bindThis - private collapseNotesCount(oldValue: number, newValue: number) { - return oldValue + newValue; - } - - @bindThis - private async performUpdateNotesCount(id: MiNote['id'], incrBy: number) { - await this.instancesRepository.increment({ id: id }, 'notesCount', incrBy); - } - */ + // collapseNotesCount moved to CollapsedQueueService @bindThis public async dispose(): Promise { this.#shutdownController.abort(); - // await this.updateNotesCountQueue.performAllNow(); } @bindThis diff --git a/packages/backend/src/core/NoteEditService.ts b/packages/backend/src/core/NoteEditService.ts index 3a0eeaaaf8..d10196b557 100644 --- a/packages/backend/src/core/NoteEditService.ts +++ b/packages/backend/src/core/NoteEditService.ts @@ -222,7 +222,8 @@ export class NoteEditService implements OnApplicationShutdown { private readonly timeService: TimeService, private readonly noteVisibilityService: NoteVisibilityService, private readonly collapsedQueueService: CollapsedQueueService, - ) {} + ) { + } @bindThis public async edit(user: MiUser, editid: MiNote['id'], data: Option, silent = false): Promise { diff --git a/packages/backend/src/core/ReactionService.ts b/packages/backend/src/core/ReactionService.ts index 8fe3b04180..b038acc0e4 100644 --- a/packages/backend/src/core/ReactionService.ts +++ b/packages/backend/src/core/ReactionService.ts @@ -8,8 +8,8 @@ import { ModuleRef } from '@nestjs/core'; import { DI } from '@/di-symbols.js'; import type { EmojisRepository, NoteReactionsRepository, UsersRepository, NotesRepository, MiMeta } from '@/models/_.js'; import { IdentifiableError } from '@/misc/identifiable-error.js'; -import { isLocalUser, isRemoteUser } from '@/models/User.js'; import type { MiRemoteUser, MiUser } from '@/models/User.js'; +import { isLocalUser, isRemoteUser } from '@/models/User.js'; import type { MiNote } from '@/models/Note.js'; import { IdService } from '@/core/IdService.js'; import { MiNoteReaction } from '@/models/NoteReaction.js'; @@ -19,7 +19,6 @@ import { NotificationService } from '@/core/NotificationService.js'; import PerUserReactionsChart from '@/core/chart/charts/per-user-reactions.js'; import { emojiRegex } from '@/misc/emoji-regex.js'; import { ApDeliverManagerService } from '@/core/activitypub/ApDeliverManagerService.js'; -import { NoteEntityService } from '@/core/entities/NoteEntityService.js'; import { ApRendererService } from '@/core/activitypub/ApRendererService.js'; import { bindThis } from '@/decorators.js'; import { UtilityService } from '@/core/UtilityService.js'; @@ -299,7 +298,7 @@ export class ReactionService implements OnModuleInit { if (['public', 'home', 'followers'].includes(note.visibility)) { dm.addFollowersRecipe(); } else if (note.visibility === 'specified') { - const visibleUsers = await this.cacheService.getUsers(note.visibleUserIds); + const visibleUsers = await this.cacheService.findUsersById(note.visibleUserIds); for (const u of visibleUsers.values()) { if (isRemoteUser(u)) { dm.addDirectRecipe(u as MiRemoteUser); diff --git a/packages/backend/src/core/activitypub/ApResolverService.ts b/packages/backend/src/core/activitypub/ApResolverService.ts index d29ad9ba31..2db7208967 100644 --- a/packages/backend/src/core/activitypub/ApResolverService.ts +++ b/packages/backend/src/core/activitypub/ApResolverService.ts @@ -22,8 +22,8 @@ import { IdentifiableError } from '@/misc/identifiable-error.js'; import { toArray } from '@/misc/prelude/array.js'; import { isPureRenote } from '@/misc/is-renote.js'; import { CacheService } from '@/core/CacheService.js'; -import { trackPromise } from '@/misc/promise-tracker.js'; import { promiseMap } from '@/misc/promise-map.js'; +import { trackPromise } from '@/misc/promise-tracker.js'; import { renderInlineError } from '@/misc/render-inline-error.js'; import { AnyCollection, getApId, getNullableApId, IObjectWithId, isCollection, isCollectionOrOrderedCollection, isCollectionPage, isOrderedCollection, isOrderedCollectionPage } from './type.js'; import { ApDbResolverService } from './ApDbResolverService.js'; diff --git a/packages/backend/src/core/activitypub/models/ApPersonService.ts b/packages/backend/src/core/activitypub/models/ApPersonService.ts index bce48ddd40..7a3f59fbd0 100644 --- a/packages/backend/src/core/activitypub/models/ApPersonService.ts +++ b/packages/backend/src/core/activitypub/models/ApPersonService.ts @@ -74,7 +74,6 @@ export class ApPersonService implements OnModuleInit { private readonly publicKeyByUserIdCache: ManagedQuantumKVCache; private driveFileEntityService: DriveFileEntityService; - private idService: IdService; private federatedInstanceService: FederatedInstanceService; private fetchInstanceMetadataService: FetchInstanceMetadataService; private cacheService: CacheService; @@ -88,6 +87,7 @@ export class ApPersonService implements OnModuleInit { private instanceChart: InstanceChart; private accountMoveService: AccountMoveService; private logger: Logger; + private idService: IdService; constructor( private moduleRef: ModuleRef, @@ -184,7 +184,6 @@ export class ApPersonService implements OnModuleInit { @bindThis onModuleInit(): void { this.driveFileEntityService = this.moduleRef.get('DriveFileEntityService'); - this.idService = this.moduleRef.get('IdService'); this.federatedInstanceService = this.moduleRef.get('FederatedInstanceService'); this.fetchInstanceMetadataService = this.moduleRef.get('FetchInstanceMetadataService'); this.cacheService = this.moduleRef.get('CacheService'); @@ -197,6 +196,7 @@ export class ApPersonService implements OnModuleInit { this.usersChart = this.moduleRef.get('UsersChart'); this.instanceChart = this.moduleRef.get('InstanceChart'); this.accountMoveService = this.moduleRef.get('AccountMoveService'); + this.idService = this.moduleRef.get('IdService'); } /** @@ -997,25 +997,6 @@ export class ApPersonService implements OnModuleInit { }); } - @bindThis - private async resolveUserForFeatured(userOrId: MiRemoteUser | MiUser['id']): Promise<(MiRemoteUser & { featured: string }) | null> { - const userId = typeof(userOrId) === 'object' ? userOrId.id : userOrId; - const user = typeof(userOrId) === 'object' ? userOrId : await this.cacheService.findRemoteUserById(userId); - - if (user.isDeleted || user.isSuspended) { - this.logger.debug(`Not updating featured for ${userId}: user is deleted`); - return null; - } - - if (!user.featured) { - this.logger.debug(`Not updating featured for ${userId}: no featured collection`); - return null; - } - - // For some reason TS doesn't recognize the type check above. - return user as MiRemoteUser & { featured: string }; - } - /** * リモート由来のアカウント移行処理を行います * @param src 移行元アカウント(リモートかつupdatePerson後である必要がある、というかこれ自体がupdatePersonで呼ばれる前提) diff --git a/packages/backend/src/queue/processors/BackgroundTaskProcessorService.ts b/packages/backend/src/queue/processors/BackgroundTaskProcessorService.ts index 53edd06a64..18706c7158 100644 --- a/packages/backend/src/queue/processors/BackgroundTaskProcessorService.ts +++ b/packages/backend/src/queue/processors/BackgroundTaskProcessorService.ts @@ -260,7 +260,7 @@ export class BackgroundTaskProcessorService { if (user.isSuspended) return `Skipping post-note task: note ${task.noteId}'s user ${note.userId} is suspended`; note.user = user; - const mentionedUsers = await this.cacheService.getUsers(note.mentions); + const mentionedUsers = await this.cacheService.findUsersById(note.mentions); const poll = await this.pollsRepository.findOneBy({ noteId: note.id }); if (task.edit) { diff --git a/packages/backend/src/queue/processors/InboxProcessorService.ts b/packages/backend/src/queue/processors/InboxProcessorService.ts index 0495501567..f8542945df 100644 --- a/packages/backend/src/queue/processors/InboxProcessorService.ts +++ b/packages/backend/src/queue/processors/InboxProcessorService.ts @@ -299,30 +299,8 @@ export class InboxProcessorService implements OnApplicationShutdown { return 'ok'; } - // Moved to CollapsedQueueService - /* - @bindThis - public collapseUpdateInstanceJobs(oldJob: UpdateInstanceJob, newJob: UpdateInstanceJob) { - const latestRequestReceivedAt = oldJob.latestRequestReceivedAt < newJob.latestRequestReceivedAt - ? newJob.latestRequestReceivedAt - : oldJob.latestRequestReceivedAt; - const shouldUnsuspend = oldJob.shouldUnsuspend || newJob.shouldUnsuspend; - return { - latestRequestReceivedAt, - shouldUnsuspend, - }; - } - - @bindThis - public async performUpdateInstance(id: string, job: UpdateInstanceJob) { - await this.federatedInstanceService.update(id, { - latestRequestReceivedAt: this.timeService.date, - isNotResponding: false, - // もしサーバーが死んでるために配信が止まっていた場合には自動的に復活させてあげる - suspensionState: job.shouldUnsuspend ? 'none' : undefined, - }); - } - */ + // collapseUpdateInstanceJobs moved to CollapsedQueueService + // performUpdateInstance moved to CollapsedQueueService @bindThis public async dispose(): Promise {} diff --git a/packages/backend/test/unit/activitypub.ts b/packages/backend/test/unit/activitypub.ts index 9413d715c8..e80beedeed 100644 --- a/packages/backend/test/unit/activitypub.ts +++ b/packages/backend/test/unit/activitypub.ts @@ -28,7 +28,7 @@ import { CacheManagementService } from '@/global/CacheManagementService.js'; import { ApResolverService } from '@/core/activitypub/ApResolverService.js'; import { FetchInstanceMetadataService } from '@/core/FetchInstanceMetadataService.js'; import type { IActor, IApDocument, ICollection, IObject, IPost } from '@/core/activitypub/type.js'; -import { MiMeta, MiNote, MiUser, MiUserKeypair, UserNotePiningsRepository, UserProfilesRepository, UserPublickeysRepository, UserKeypairsRepository, UsersRepository, NotesRepository } from '@/models/_.js'; +import { MiMeta, MiNote, MiUser, MiUserKeypair, UserProfilesRepository, UserPublickeysRepository, UserKeypairsRepository, UsersRepository, NotesRepository, UserNotePiningsRepository } from '@/models/_.js'; import { DI } from '@/di-symbols.js'; import { secureRndstr } from '@/misc/secure-rndstr.js'; import { DownloadService } from '@/core/DownloadService.js';