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 | |
| parent | fix: NodeInfo のユーザー数と投稿数の内容を見直す (#8255) (diff) | |
| download | sharkey-cc7a1808ecc6874af9cc96f8ed09e62b3f6b4e39.tar.gz sharkey-cc7a1808ecc6874af9cc96f8ed09e62b3f6b4e39.tar.bz2 sharkey-cc7a1808ecc6874af9cc96f8ed09e62b3f6b4e39.zip | |
imprpve active users chart
Diffstat (limited to 'packages/backend/src/services/chart')
| -rw-r--r-- | packages/backend/src/services/chart/charts/active-users.ts | 22 | ||||
| -rw-r--r-- | packages/backend/src/services/chart/charts/entities/active-users.ts | 10 |
2 files changed, 27 insertions, 5 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], }); } } diff --git a/packages/backend/src/services/chart/charts/entities/active-users.ts b/packages/backend/src/services/chart/charts/entities/active-users.ts index 3caa938d35..ee16ef1278 100644 --- a/packages/backend/src/services/chart/charts/entities/active-users.ts +++ b/packages/backend/src/services/chart/charts/entities/active-users.ts @@ -3,8 +3,14 @@ import Chart from '../../core'; export const name = 'activeUsers'; export const schema = { - 'local.users': { uniqueIncrement: true }, - 'remote.users': { uniqueIncrement: true }, + 'users': { uniqueIncrement: true }, + 'notedUsers': { uniqueIncrement: true, range: 'small' }, + 'registeredWithinWeek': { uniqueIncrement: true, range: 'small' }, + 'registeredWithinMonth': { uniqueIncrement: true, range: 'small' }, + 'registeredWithinYear': { uniqueIncrement: true, range: 'small' }, + 'registeredOutsideWeek': { uniqueIncrement: true, range: 'small' }, + 'registeredOutsideMonth': { uniqueIncrement: true, range: 'small' }, + 'registeredOutsideYear': { uniqueIncrement: true, range: 'small' }, } as const; export const entity = Chart.schemaToEntity(name, schema); |