fix postNoteCreated and postNoteEdited not working properly due to missing Data options
This commit is contained in:
parent
cf138a148d
commit
2bca84048d
3 changed files with 13 additions and 18 deletions
|
|
@ -574,13 +574,7 @@ export class NoteCreateService implements OnApplicationShutdown {
|
|||
}
|
||||
|
||||
@bindThis
|
||||
public async postNoteCreated(note: MiNote, user: MiUser & {
|
||||
id: MiUser['id'];
|
||||
username: MiUser['username'];
|
||||
host: MiUser['host'];
|
||||
isBot: MiUser['isBot'];
|
||||
noindex: MiUser['noindex'];
|
||||
}, data: Option, silent: boolean, mentionedUsers: MinimumUser[]) {
|
||||
public async postNoteCreated(note: MiNote, user: MiUser, data: MiNote & { poll: MiPoll | null }, silent: boolean, mentionedUsers: MinimumUser[]) {
|
||||
this.notesChart.update(note, true);
|
||||
if (note.visibility !== 'specified' && (this.meta.enableChartsForRemoteUser || (user.host == null))) {
|
||||
this.perUserNotesChart.update(user, note, true);
|
||||
|
|
|
|||
|
|
@ -612,13 +612,7 @@ export class NoteEditService implements OnApplicationShutdown {
|
|||
}
|
||||
|
||||
@bindThis
|
||||
public async postNoteEdited(note: MiNote, user: MiUser & {
|
||||
id: MiUser['id'];
|
||||
username: MiUser['username'];
|
||||
host: MiUser['host'];
|
||||
isBot: MiUser['isBot'];
|
||||
noindex: MiUser['noindex'];
|
||||
}, data: Option, silent: boolean, mentionedUsers: MinimumUser[]) {
|
||||
public async postNoteEdited(note: MiNote, user: MiUser, data: MiNote & { poll: MiPoll | null }, silent: boolean, mentionedUsers: MinimumUser[]) {
|
||||
// Register host
|
||||
if (this.meta.enableStatsForFederatedInstances) {
|
||||
if (isRemoteUser(user)) {
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ import ApRequestChart from '@/core/chart/charts/ap-request.js';
|
|||
import FederationChart from '@/core/chart/charts/federation.js';
|
||||
import { UpdateInstanceQueue } from '@/core/UpdateInstanceQueue.js';
|
||||
import { NoteCreateService } from '@/core/NoteCreateService.js';
|
||||
import type { DriveFilesRepository, NoteEditsRepository, NotesRepository, UsersRepository } from '@/models/_.js';
|
||||
import type { DriveFilesRepository, NoteEditsRepository, NotesRepository, PollsRepository, UsersRepository } from '@/models/_.js';
|
||||
import { MiUser } from '@/models/_.js';
|
||||
import { NoteEditService } from '@/core/NoteEditService.js';
|
||||
import { HashtagService } from '@/core/HashtagService.js';
|
||||
|
|
@ -50,6 +50,9 @@ export class BackgroundTaskProcessorService {
|
|||
@Inject(DI.usersRepository)
|
||||
private readonly usersRepository: UsersRepository,
|
||||
|
||||
@Inject(DI.pollsRepository)
|
||||
private readonly pollsRepository: PollsRepository,
|
||||
|
||||
private readonly apPersonService: ApPersonService,
|
||||
private readonly cacheService: CacheService,
|
||||
private readonly federatedInstanceService: FederatedInstanceService,
|
||||
|
|
@ -246,17 +249,21 @@ export class BackgroundTaskProcessorService {
|
|||
}
|
||||
|
||||
private async processPostNote(task: PostNoteBackgroundTask): Promise<string> {
|
||||
const note = await this.notesRepository.findOneBy({ id: task.noteId });
|
||||
const note = await this.notesRepository.findOne({
|
||||
where: { id: task.noteId },
|
||||
relations: { user: true, renote: true, reply: true, channel: true },
|
||||
});
|
||||
if (!note) return `Skipping post-note task: note ${task.noteId} has been deleted`;
|
||||
const user = await this.cacheService.findUserById(note.userId);
|
||||
if (user.isSuspended) return `Skipping post-note task: note ${task.noteId}'s user ${note.userId} is suspended`;
|
||||
|
||||
const mentionedUsers = await this.cacheService.getUsers(note.mentions);
|
||||
const poll = await this.pollsRepository.findOneBy({ noteId: note.id });
|
||||
|
||||
if (task.edit) {
|
||||
await this.noteEditService.postNoteEdited(note, user, note, task.silent, Array.from(mentionedUsers.values()));
|
||||
await this.noteEditService.postNoteEdited(note, user, { ...note, poll }, task.silent, Array.from(mentionedUsers.values()));
|
||||
} else {
|
||||
await this.noteCreateService.postNoteCreated(note, user, note, task.silent, Array.from(mentionedUsers.values()));
|
||||
await this.noteCreateService.postNoteCreated(note, user, { ...note, poll }, task.silent, Array.from(mentionedUsers.values()));
|
||||
}
|
||||
|
||||
return 'ok';
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue