aboutsummaryrefslogtreecommitdiff
path: root/src/tasks/stats/memberCount.ts
diff options
context:
space:
mode:
authorIRONM00N <64110067+IRONM00N@users.noreply.github.com>2022-08-06 21:07:39 -0400
committerIRONM00N <64110067+IRONM00N@users.noreply.github.com>2022-08-06 21:07:39 -0400
commit0aaa6166af6ff17f9b643997fccb44de1b57b1e5 (patch)
tree5635294e59183d93359393c94d826f99cc9b1063 /src/tasks/stats/memberCount.ts
parentc3e19b629b1d49b904782b3c21decb804ae7f1d1 (diff)
downloadtanzanite-0aaa6166af6ff17f9b643997fccb44de1b57b1e5.tar.gz
tanzanite-0aaa6166af6ff17f9b643997fccb44de1b57b1e5.tar.bz2
tanzanite-0aaa6166af6ff17f9b643997fccb44de1b57b1e5.zip
track the number of guilds the bot is in so I can make a graph
Diffstat (limited to 'src/tasks/stats/memberCount.ts')
-rw-r--r--src/tasks/stats/memberCount.ts28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/tasks/stats/memberCount.ts b/src/tasks/stats/memberCount.ts
new file mode 100644
index 0000000..9c31c5b
--- /dev/null
+++ b/src/tasks/stats/memberCount.ts
@@ -0,0 +1,28 @@
+import { BushTask, MemberCount, Time } from '#lib';
+import assert from 'assert/strict';
+
+export default class MemberCountTask extends BushTask {
+ public constructor() {
+ super('memberCount', {
+ delay: Time.Minute,
+ runOnStart: true
+ });
+ }
+
+ public override async exec() {
+ if (!this.client.config.isProduction) return;
+
+ const res = await Promise.allSettled(
+ this.client.guilds.cache
+ .filter((g) => g.memberCount >= 100)
+ .map((g) => MemberCount.create({ guildId: g.id, memberCount: g.memberCount }))
+ );
+
+ res
+ .filter((r) => r.status === 'rejected')
+ .forEach((r) => {
+ assert(r.status === 'rejected');
+ void this.client.console.error('memberCount', r.status);
+ });
+ }
+}