diff --git a/.env.example b/.env.example index ca7796b..08a307e 100644 --- a/.env.example +++ b/.env.example @@ -9,6 +9,7 @@ MATRIX_DB_SCHEMA=matrix MASTODON_DB_SCHEMA=mastodon_production MOBILIZON_DB_SCHEMA=mobilizon_prod PEERTUBE_DB_SCHEMA=peertube_prod +BOOKWYRM_DB_SCHEMA=bookwyrm MATRIX_WEBHOOK_URL="" MATRIX_WEBHOOK_API_KEY="" diff --git a/cmd/gomastodonstats/main.go b/cmd/gomastodonstats/main.go index a1e63b1..c0efdbc 100644 --- a/cmd/gomastodonstats/main.go +++ b/cmd/gomastodonstats/main.go @@ -77,6 +77,7 @@ func main() { gms.MASTODON_DB_SCHEMA = os.Getenv("MASTODON_DB_SCHEMA") gms.MOBILIZON_DB_SCHEMA = os.Getenv("MOBILIZON_DB_SCHEMA") gms.PEERTUBE_DB_SCHEMA = os.Getenv("PEERTUBE_DB_SCHEMA") + gms.BOOKWYRM_DB_SCHEMA = os.Getenv("BOOKWYRM_DB_SCHEMA") gms.Run() } diff --git a/internal/gomastodonstats/consts.go b/internal/gomastodonstats/consts.go index 76f4f4b..934b6c5 100644 --- a/internal/gomastodonstats/consts.go +++ b/internal/gomastodonstats/consts.go @@ -32,6 +32,7 @@ var ( MASTODON_IDENTIFIER: "https://mastodon.nz", MOBILIZON_IDENTIFIER: "https://openevents.nz", PEERTUBE_IDENTIFIER: "https://peertube.nz", + BOOKWYRM_IDENTIFIER: "https://bookworm.nz", } // Pixelfed @@ -59,4 +60,9 @@ var ( PEERTUBE_DB_SCHEMA string PEERTUBE_USER_QUERY = "SELECT count(*) FROM \"user\" WHERE blocked = False;" PEERTUBE_IDENTIFIER = "peertube" + + // BookWyrm + BOOKWYRM_DB_SCHEMA string + BOOKWYRM_USER_QUERY = "SELECT count(*) FROM bookwyrm_user WHERE local = True AND is_active = True;" + BOOKWYRM_IDENTIFIER = "bookwyrm" ) diff --git a/internal/gomastodonstats/metrics.go b/internal/gomastodonstats/metrics.go index cb1f054..a49443b 100644 --- a/internal/gomastodonstats/metrics.go +++ b/internal/gomastodonstats/metrics.go @@ -138,6 +138,23 @@ func getUserCounts() ([]metric, error) { } } + if BOOKWYRM_DB_SCHEMA != "" { + userCount, err := runIntQuery(BOOKWYRM_DB_SCHEMA, BOOKWYRM_USER_QUERY) + if err != nil { + log.Println(err) + } else { + m := metric{ + Service: BOOKWYRM_IDENTIFIER, + MetricName: METRICNAME_USERCOUNT, + MetricValue: userCount, + PreviousDayMetricValue: getLastMetric(BOOKWYRM_IDENTIFIER), + PreviousWeekMetricValue: getLastWeekMetric(BOOKWYRM_IDENTIFIER), + } + log.Printf("%s user count: %d", BOOKWYRM_IDENTIFIER, userCount) + metrics = append(metrics, m) + } + } + return metrics, nil }