From 56275bcfcbd1366b0e96b79915e810baed0548bb Mon Sep 17 00:00:00 2001 From: syuilo Date: Fri, 8 Feb 2019 16:58:57 +0900 Subject: Introduce per-instance chart (#4183) * Introduce per-instance chart * Implement chart view in client * Handle note deleting * More chart srcs * Add drive stats * Improve drive stats * Fix bug * Add icon --- src/services/note/create.ts | 4 ++-- src/services/note/delete.ts | 17 ++++++++++++++++- 2 files changed, 18 insertions(+), 3 deletions(-) (limited to 'src/services/note') diff --git a/src/services/note/create.ts b/src/services/note/create.ts index 0b71a9670c..126d698b08 100644 --- a/src/services/note/create.ts +++ b/src/services/note/create.ts @@ -24,6 +24,7 @@ import isQuote from '../../misc/is-quote'; import notesChart from '../../services/chart/notes'; import perUserNotesChart from '../../services/chart/per-user-notes'; import activeUsersChart from '../../services/chart/active-users'; +import instanceChart from '../../services/chart/instance'; import { erase, concat } from '../../prelude/array'; import insertNoteUnread from './unread'; @@ -229,8 +230,7 @@ export default async (user: IUser, data: Option, silent = false) => new Promise< } }); - // TODO - //perInstanceChart.newNote(); + instanceChart.updateNote(i.host, true); }); } diff --git a/src/services/note/delete.ts b/src/services/note/delete.ts index 8e8c20bfce..2b797545ed 100644 --- a/src/services/note/delete.ts +++ b/src/services/note/delete.ts @@ -1,5 +1,5 @@ import Note, { INote } from '../../models/note'; -import { IUser, isLocalUser } from '../../models/user'; +import { IUser, isLocalUser, isRemoteUser } from '../../models/user'; import { publishNoteStream } from '../stream'; import renderDelete from '../../remote/activitypub/renderer/delete'; import { renderActivity } from '../../remote/activitypub/renderer'; @@ -12,6 +12,9 @@ import config from '../../config'; import NoteUnread from '../../models/note-unread'; import read from './read'; import DriveFile from '../../models/drive-file'; +import { registerOrFetchInstanceDoc } from '../register-or-fetch-instance-doc'; +import Instance from '../../models/instance'; +import instanceChart from '../../services/chart/instance'; /** * 投稿を削除します。 @@ -91,4 +94,16 @@ export default async function(user: IUser, note: INote) { // 統計を更新 notesChart.update(note, false); perUserNotesChart.update(user, note, false); + + if (isRemoteUser(user)) { + registerOrFetchInstanceDoc(user.host).then(i => { + Instance.update({ _id: i._id }, { + $inc: { + notesCount: -1 + } + }); + + instanceChart.updateNote(i.host, false); + }); + } } -- cgit v1.2.3-freya