diff options
Diffstat (limited to 'packages/backend/src/services/chart')
| -rw-r--r-- | packages/backend/src/services/chart/charts/entities/federation.ts | 1 | ||||
| -rw-r--r-- | packages/backend/src/services/chart/charts/federation.ts | 9 |
2 files changed, 9 insertions, 1 deletions
diff --git a/packages/backend/src/services/chart/charts/entities/federation.ts b/packages/backend/src/services/chart/charts/entities/federation.ts index 9d2b860b10..c6d59b67f6 100644 --- a/packages/backend/src/services/chart/charts/entities/federation.ts +++ b/packages/backend/src/services/chart/charts/entities/federation.ts @@ -9,6 +9,7 @@ export const schema = { 'sub': { accumulate: true, range: 'small' }, 'pub': { accumulate: true, range: 'small' }, 'pubsub': { accumulate: true, range: 'small' }, + 'active': { accumulate: true, range: 'small' }, } as const; export const entity = Chart.schemaToEntity(name, schema); diff --git a/packages/backend/src/services/chart/charts/federation.ts b/packages/backend/src/services/chart/charts/federation.ts index 89670194de..2a28500ace 100644 --- a/packages/backend/src/services/chart/charts/federation.ts +++ b/packages/backend/src/services/chart/charts/federation.ts @@ -2,6 +2,7 @@ import Chart, { KVs } from '../core.js'; import { Followings, Instances } from '@/models/index.js'; import { name, schema } from './entities/federation.js'; import { fetchMeta } from '@/misc/fetch-meta.js'; +import { In, MoreThan, Not } from 'typeorm'; /** * フェデレーションに関するチャート @@ -28,7 +29,7 @@ export default class FederationChart extends Chart<typeof schema> { .select('f.followerHost') .where('f.followerHost IS NOT NULL'); - const [sub, pub, pubsub] = await Promise.all([ + const [sub, pub, pubsub, active] = await Promise.all([ Followings.createQueryBuilder('following') .select('COUNT(DISTINCT following.followeeHost)') .where('following.followeeHost IS NOT NULL') @@ -52,12 +53,18 @@ export default class FederationChart extends Chart<typeof schema> { .setParameters(pubsubSubQuery.getParameters()) .getRawOne() .then(x => parseInt(x.count, 10)), + Instances.count({ + host: Not(In(meta.blockedHosts)), + isSuspended: false, + lastCommunicatedAt: MoreThan(new Date(Date.now() - (1000 * 60 * 60 * 24 * 30))), + }), ]); return { 'sub': sub, 'pub': pub, 'pubsub': pubsub, + 'active': active, }; } |