MCPcopy
hub / github.com/CodebuffAI/codebuff / calculateDAU

Function calculateDAU

scripts/calculate-dau.ts:6–34  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

4import { sql } from 'drizzle-orm'
5
6async function calculateDAU() {
7 console.log('Calculating DAU for the last 7 days...\n')
8
9 // Get daily active users for the last 7 complete days
10 const dailyStats = await db
11 .select({
12 date: sql<string>`DATE(${schema.message.finished_at})`,
13 uniqueUsers: sql<string>`COUNT(DISTINCT ${schema.message.user_id})`,
14 })
15 .from(schema.message)
16 .where(
17 sql`DATE(${schema.message.finished_at}) >= CURRENT_DATE - INTERVAL '7 days' AND DATE(${schema.message.finished_at}) < CURRENT_DATE`,
18 )
19 .groupBy(sql`DATE(${schema.message.finished_at})`)
20 .orderBy(sql`DATE(${schema.message.finished_at})`)
21
22 let totalUsers = 0
23
24 // Print daily stats
25 dailyStats.forEach((stat) => {
26 const users = parseInt(stat.uniqueUsers)
27 totalUsers += users
28 console.log(`${stat.date}: ${pluralize(users, 'user')}`)
29 })
30
31 // Calculate and print average
32 const avgUsers = Math.round(totalUsers / dailyStats.length)
33 console.log(`\nAverage DAU over last ${dailyStats.length} days: ${avgUsers}`)
34}
35
36// Run the script
37calculateDAU()

Callers 1

calculate-dau.tsFile · 0.85

Calls 2

pluralizeFunction · 0.90
fromMethod · 0.80

Tested by

no test coverage detected