diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2019-02-07 15:00:44 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2019-02-07 15:00:44 +0900 |
| commit | 336912e4422394499cb47ea1b8d42cf2020ec93f (patch) | |
| tree | 0bd8c6ef58834a2640ae83b56cb7b70cd756790b /src/services | |
| parent | 10.82.3 (diff) | |
| download | sharkey-336912e4422394499cb47ea1b8d42cf2020ec93f.tar.gz sharkey-336912e4422394499cb47ea1b8d42cf2020ec93f.tar.bz2 sharkey-336912e4422394499cb47ea1b8d42cf2020ec93f.zip | |
Improve instance stats
Diffstat (limited to 'src/services')
| -rw-r--r-- | src/services/following/create.ts | 28 | ||||
| -rw-r--r-- | src/services/note/create.ts | 4 | ||||
| -rw-r--r-- | src/services/register-or-fetch-instance-doc.ts (renamed from src/services/register-instance.ts) | 2 |
3 files changed, 31 insertions, 3 deletions
diff --git a/src/services/following/create.ts b/src/services/following/create.ts index 936655d7d1..4df271a977 100644 --- a/src/services/following/create.ts +++ b/src/services/following/create.ts @@ -10,6 +10,8 @@ import renderReject from '../../remote/activitypub/renderer/reject'; import { deliver } from '../../queue'; import createFollowRequest from './requests/create'; import perUserFollowingChart from '../../chart/per-user-following'; +import { registerOrFetchInstanceDoc } from '../register-or-fetch-instance-doc'; +import Instance from '../../models/instance'; export default async function(follower: IUser, followee: IUser, requestId?: string) { // check blocking @@ -97,6 +99,32 @@ export default async function(follower: IUser, followee: IUser, requestId?: stri }); //#endregion + //#region Update instance stats + if (isRemoteUser(follower) && isLocalUser(followee)) { + registerOrFetchInstanceDoc(follower.host).then(i => { + Instance.update({ _id: i._id }, { + $inc: { + followingCount: 1 + } + }); + + // TODO + //perInstanceChart.newFollowing(); + }); + } else if (isLocalUser(follower) && isRemoteUser(followee)) { + registerOrFetchInstanceDoc(followee.host).then(i => { + Instance.update({ _id: i._id }, { + $inc: { + followersCount: 1 + } + }); + + // TODO + //perInstanceChart.newFollower(); + }); + } + //#endregion + perUserFollowingChart.update(follower, followee, true); // Publish follow event diff --git a/src/services/note/create.ts b/src/services/note/create.ts index 6afdcbbfbd..7b5975bace 100644 --- a/src/services/note/create.ts +++ b/src/services/note/create.ts @@ -27,7 +27,7 @@ import activeUsersChart from '../../chart/active-users'; import { erase, concat } from '../../prelude/array'; import insertNoteUnread from './unread'; -import registerInstance from '../register-instance'; +import { registerOrFetchInstanceDoc } from '../register-or-fetch-instance-doc'; import Instance from '../../models/instance'; import extractMentions from '../../misc/extract-mentions'; import extractEmojis from '../../misc/extract-emojis'; @@ -222,7 +222,7 @@ export default async (user: IUser, data: Option, silent = false) => new Promise< // Register host if (isRemoteUser(user)) { - registerInstance(user.host).then(i => { + registerOrFetchInstanceDoc(user.host).then(i => { Instance.update({ _id: i._id }, { $inc: { notesCount: 1 diff --git a/src/services/register-instance.ts b/src/services/register-or-fetch-instance-doc.ts index 6576a9ed06..3b338b48af 100644 --- a/src/services/register-instance.ts +++ b/src/services/register-or-fetch-instance-doc.ts @@ -1,7 +1,7 @@ import Instance, { IInstance } from '../models/instance'; import federationChart from '../chart/federation'; -export default async function(host: string): Promise<IInstance> { +export async function registerOrFetchInstanceDoc(host: string): Promise<IInstance> { if (host == null) return null; const index = await Instance.findOne({ host }); |