summaryrefslogtreecommitdiff
path: root/src/services
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2019-02-07 15:00:44 +0900
committersyuilo <syuilotan@yahoo.co.jp>2019-02-07 15:00:44 +0900
commit336912e4422394499cb47ea1b8d42cf2020ec93f (patch)
tree0bd8c6ef58834a2640ae83b56cb7b70cd756790b /src/services
parent10.82.3 (diff)
downloadsharkey-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.ts28
-rw-r--r--src/services/note/create.ts4
-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 });