summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--assets/openapi.json8
-rw-r--r--assets/schemas.json8
-rw-r--r--src/api/routes/applications/index.ts21
-rw-r--r--src/util/config/types/GeneralConfiguration.ts1
4 files changed, 38 insertions, 0 deletions
diff --git a/assets/openapi.json b/assets/openapi.json
index 2dc78741..14bfb70a 100644
--- a/assets/openapi.json
+++ b/assets/openapi.json
@@ -5994,6 +5994,9 @@
                     },
                     "suppress": {
                         "type": "boolean"
+                    },
+                    "flags": {
+                        "type": "integer"
                     }
                 },
                 "required": [
@@ -7190,9 +7193,14 @@
                     },
                     "instanceId": {
                         "type": "string"
+                    },
+                    "autoCreateBotUsers": {
+                        "type": "boolean",
+                        "default": false
                     }
                 },
                 "required": [
+                    "autoCreateBotUsers",
                     "correspondenceEmail",
                     "correspondenceUserID",
                     "frontPage",
diff --git a/assets/schemas.json b/assets/schemas.json
index dc25cacd..68ef8187 100644
--- a/assets/schemas.json
+++ b/assets/schemas.json
@@ -197032,6 +197032,9 @@
             },
             "suppress": {
                 "type": "boolean"
+            },
+            "flags": {
+                "type": "integer"
             }
         },
         "additionalProperties": false,
@@ -422581,10 +422584,15 @@
             },
             "instanceId": {
                 "type": "string"
+            },
+            "autoCreateBotUsers": {
+                "type": "boolean",
+                "default": false
             }
         },
         "additionalProperties": false,
         "required": [
+            "autoCreateBotUsers",
             "correspondenceEmail",
             "correspondenceUserID",
             "frontPage",
diff --git a/src/api/routes/applications/index.ts b/src/api/routes/applications/index.ts
index 1e536a06..27300c4a 100644
--- a/src/api/routes/applications/index.ts
+++ b/src/api/routes/applications/index.ts
@@ -20,6 +20,7 @@ import { route } from "@spacebar/api";
 import {
 	Application,
 	ApplicationCreateSchema,
+	Config,
 	User,
 	trimSpecial,
 } from "@spacebar/util";
@@ -68,6 +69,26 @@ router.post(
 			flags: 0,
 		});
 
+		// april 14, 2023: discord made bot users be automatically added to all new apps
+		const { autoCreateBotUsers } = Config.get().general;
+		if (autoCreateBotUsers) {
+			const user = await User.register({
+				username: app.name,
+				password: undefined,
+				id: app.id,
+				req,
+			});
+
+			user.id = app.id;
+			user.premium_since = new Date();
+			user.bot = true;
+
+			await user.save();
+
+			// flags is NaN here?
+			app.assign({ bot: user, flags: app.flags || 0 });
+		}
+
 		await app.save();
 
 		res.json(app);
diff --git a/src/util/config/types/GeneralConfiguration.ts b/src/util/config/types/GeneralConfiguration.ts
index c20fe9a7..cff8c527 100644
--- a/src/util/config/types/GeneralConfiguration.ts
+++ b/src/util/config/types/GeneralConfiguration.ts
@@ -28,4 +28,5 @@ export class GeneralConfiguration {
 	correspondenceUserID: string | null = null;
 	image: string | null = null;
 	instanceId: string = Snowflake.generate();
+	autoCreateBotUsers: boolean = false;
 }