diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2022-02-06 06:24:06 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2022-02-06 06:24:06 +0900 |
| commit | cc7a1808ecc6874af9cc96f8ed09e62b3f6b4e39 (patch) | |
| tree | 91f5c602751d096dff5ab32435b1fb8a26890489 /packages/backend/src/services/chart/charts/active-users.ts | |
| parent | fix: NodeInfo のユーザー数と投稿数の内容を見直す (#8255) (diff) | |
| download | misskey-cc7a1808ecc6874af9cc96f8ed09e62b3f6b4e39.tar.gz misskey-cc7a1808ecc6874af9cc96f8ed09e62b3f6b4e39.tar.bz2 misskey-cc7a1808ecc6874af9cc96f8ed09e62b3f6b4e39.zip | |
imprpve active users chart
Diffstat (limited to 'packages/backend/src/services/chart/charts/active-users.ts')
| -rw-r--r-- | packages/backend/src/services/chart/charts/active-users.ts | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/packages/backend/src/services/chart/charts/active-users.ts b/packages/backend/src/services/chart/charts/active-users.ts index 9e5c332d3b..7fef99d3a9 100644 --- a/packages/backend/src/services/chart/charts/active-users.ts +++ b/packages/backend/src/services/chart/charts/active-users.ts @@ -4,6 +4,10 @@ import { User } from '@/models/entities/user'; import { Users } from '@/models/index'; import { name, schema } from './entities/active-users'; +const week = 1000 * 60 * 60 * 24 * 7; +const month = 1000 * 60 * 60 * 24 * 30; +const year = 1000 * 60 * 60 * 24 * 365; + /** * アクティブユーザーに関するチャート */ @@ -19,10 +23,22 @@ export default class ActiveUsersChart extends Chart<typeof schema> { } @autobind - public async update(user: { id: User['id'], host: User['host'] }): Promise<void> { + public async update(user: { id: User['id'], host: null, createdAt: User['createdAt'] }): Promise<void> { + await this.commit({ + 'users': [user.id], + 'registeredWithinWeek': (Date.now() - user.createdAt.getTime() < week) ? [user.id] : [], + 'registeredWithinMonth': (Date.now() - user.createdAt.getTime() < month) ? [user.id] : [], + 'registeredWithinYear': (Date.now() - user.createdAt.getTime() < year) ? [user.id] : [], + 'registeredOutsideWeek': (Date.now() - user.createdAt.getTime() > week) ? [user.id] : [], + 'registeredOutsideMonth': (Date.now() - user.createdAt.getTime() > month) ? [user.id] : [], + 'registeredOutsideYear': (Date.now() - user.createdAt.getTime() > year) ? [user.id] : [], + }); + } + + @autobind + public async noted(user: { id: User['id'], host: null, createdAt: User['createdAt'] }): Promise<void> { await this.commit({ - 'local.users': Users.isLocalUser(user) ? [user.id] : [], - 'remote.users': Users.isLocalUser(user) ? [] : [user.id], + 'notedUsers': [user.id], }); } } |