diff --git a/server/models/video/video-channel.ts b/server/models/video/video-channel.ts index 9e461b6ca..132c8f021 100644 --- a/server/models/video/video-channel.ts +++ b/server/models/video/video-channel.ts @@ -434,42 +434,41 @@ export class VideoChannelModel extends Model Now() - interval '${days}d')` + : '' + const query = ` -SELECT COUNT(DISTINCT("VideoChannelModel"."id")) AS "count" -FROM "videoChannel" AS "VideoChannelModel" -INNER JOIN "video" AS "Videos" -ON "VideoChannelModel"."id" = "Videos"."channelId" -AND ("Videos"."publishedAt" > Now() - interval '${days}d') -INNER JOIN "account" AS "Account" -ON "VideoChannelModel"."accountId" = "Account"."id" -INNER JOIN "actor" AS "Account->Actor" -ON "Account"."actorId" = "Account->Actor"."id" -AND "Account->Actor"."serverId" IS NULL -LEFT OUTER JOIN "server" AS "Account->Actor->Server" -ON "Account->Actor"."serverId" = "Account->Actor->Server"."id"` + SELECT COUNT(DISTINCT("VideoChannelModel"."id")) AS "count" + FROM "videoChannel" AS "VideoChannelModel" + ${videoJoin} + INNER JOIN "account" AS "Account" ON "VideoChannelModel"."accountId" = "Account"."id" + INNER JOIN "actor" AS "Account->Actor" ON "Account"."actorId" = "Account->Actor"."id" + AND "Account->Actor"."serverId" IS NULL` return VideoChannelModel.sequelize.query<{ count: string }>(query, options) .then(r => parseInt(r[0].count, 10)) } - const totalLocalVideoChannels = await VideoChannelModel.count() - const totalLocalDailyActiveVideoChannels = await getActiveVideoChannels(1) - const totalLocalWeeklyActiveVideoChannels = await getActiveVideoChannels(7) - const totalLocalMonthlyActiveVideoChannels = await getActiveVideoChannels(30) - const totalHalfYearActiveVideoChannels = await getActiveVideoChannels(180) + const totalLocalVideoChannels = await getLocalVideoChannelStats() + const totalLocalDailyActiveVideoChannels = await getLocalVideoChannelStats(1) + const totalLocalWeeklyActiveVideoChannels = await getLocalVideoChannelStats(7) + const totalLocalMonthlyActiveVideoChannels = await getLocalVideoChannelStats(30) + const totalLocalHalfYearActiveVideoChannels = await getLocalVideoChannelStats(180) return { totalLocalVideoChannels, totalLocalDailyActiveVideoChannels, totalLocalWeeklyActiveVideoChannels, totalLocalMonthlyActiveVideoChannels, - totalHalfYearActiveVideoChannels + totalLocalHalfYearActiveVideoChannels } } diff --git a/server/tests/api/server/stats.ts b/server/tests/api/server/stats.ts index 83b0e73d6..942cbeaa4 100644 --- a/server/tests/api/server/stats.ts +++ b/server/tests/api/server/stats.ts @@ -131,6 +131,7 @@ describe('Test stats (excluding redundancy)', function () { { const data = await server.stats.get() + expect(data.totalLocalVideoChannels).to.equal(2) expect(data.totalLocalDailyActiveVideoChannels).to.equal(1) expect(data.totalLocalWeeklyActiveVideoChannels).to.equal(1) expect(data.totalLocalMonthlyActiveVideoChannels).to.equal(1) @@ -146,6 +147,7 @@ describe('Test stats (excluding redundancy)', function () { const data = await server.stats.get() + expect(data.totalLocalVideoChannels).to.equal(3) expect(data.totalLocalDailyActiveVideoChannels).to.equal(1) expect(data.totalLocalWeeklyActiveVideoChannels).to.equal(1) expect(data.totalLocalMonthlyActiveVideoChannels).to.equal(1) @@ -156,6 +158,7 @@ describe('Test stats (excluding redundancy)', function () { const data = await server.stats.get() + expect(data.totalLocalVideoChannels).to.equal(3) expect(data.totalLocalDailyActiveVideoChannels).to.equal(2) expect(data.totalLocalWeeklyActiveVideoChannels).to.equal(2) expect(data.totalLocalMonthlyActiveVideoChannels).to.equal(2)