From 1435f58d8474609f176e68eaef7c9161b935720e Mon Sep 17 00:00:00 2001 From: TheArcaneBrony Date: Sat, 27 Aug 2022 09:47:26 +0200 Subject: [PATCH] This is for later --- assets/popout.html | 30 +++++++++++++++++++++++++ assets/schemas.json | Bin 24161 -> 45368 bytes fosscord-server.code-workspace | 10 ++++++++- src/api/middlewares/TestClient.ts | 9 ++++++++ src/gateway/events/Message.ts | 1 + src/gateway/opcodes/VoiceServerPing.ts | 9 ++++++++ src/gateway/opcodes/index.ts | 5 ++++- 7 files changed, 62 insertions(+), 2 deletions(-) create mode 100644 assets/popout.html create mode 100644 src/gateway/opcodes/VoiceServerPing.ts diff --git a/assets/popout.html b/assets/popout.html new file mode 100644 index 000000000..4c012869f --- /dev/null +++ b/assets/popout.html @@ -0,0 +1,30 @@ + + + + + + + Discord Popout + + + + + + +
+ + diff --git a/assets/schemas.json b/assets/schemas.json index 05650a4ef7b33fd8f6dfd83cd151e8cde01a39dc..d4b4aaaa2d02f40cf16408e9e9bab842e69fc5f2 100644 GIT binary patch literal 45368 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 CT2w;- diff --git a/fosscord-server.code-workspace b/fosscord-server.code-workspace index 56450f858..8b7268a5d 100644 --- a/fosscord-server.code-workspace +++ b/fosscord-server.code-workspace @@ -16,6 +16,8 @@ "settings": { "files.exclude": { "*.ansi": true, + "**/cache": true, + "**/cache_src": true } }, "launch": { @@ -28,10 +30,16 @@ "type": "node-terminal" }, { - "command": "kitty npm run start:bundle:vscode-dbg", + "command": "[ \"$(basename $PWD)\" != \"fosscord-server\" ] && cd ..; node scripts/build_new.js && kitty node --enable-source-maps --inspect dist/start.js", "name": "Run Fosscord with debugger (kitty)", "request": "launch", "type": "node-terminal" + }, + { + "command": "[ \"$(basename $PWD)\" != \"fosscord-server\" ] && cd ..; $(ps -o comm= $PPID) assets/cache", + "name": "Open testclient patch workspace", + "request": "launch", + "type": "node-terminal" } ] } diff --git a/src/api/middlewares/TestClient.ts b/src/api/middlewares/TestClient.ts index 3afd03398..480d7f0b5 100644 --- a/src/api/middlewares/TestClient.ts +++ b/src/api/middlewares/TestClient.ts @@ -82,6 +82,15 @@ export default function TestClient(app: Application) { res.send(fs.readFileSync(path.join(__dirname, "..", "..", "..", "assets", "developers.html"), { encoding: "utf8" })); }); + app.get("/popout", (_req: Request, res: Response) => { + const { useTestClient } = Config.get().client; + res.set("Cache-Control", "public, max-age=" + 60 * 60 * 24); + res.set("content-type", "text/html"); + + if (!useTestClient) return res.send("Test client is disabled on this instance. Use a stand-alone client to connect this instance."); + + res.send(fs.readFileSync(path.join(__dirname, "..", "..", "..", "assets", "popout.html"), { encoding: "utf8" })); + }); app.get("*", (req: Request, res: Response) => { const { useTestClient } = Config.get().client; res.set("Cache-Control", "public, max-age=" + 60 * 60 * 24); diff --git a/src/gateway/events/Message.ts b/src/gateway/events/Message.ts index e5ee58283..d58db1c37 100644 --- a/src/gateway/events/Message.ts +++ b/src/gateway/events/Message.ts @@ -43,6 +43,7 @@ export async function Message(this: WebSocket, buffer: Buffer) { const OPCodeHandler = OPCodeHandlers[data.op]; if (!OPCodeHandler) { console.error("[Gateway] Unkown opcode " + data.op); + if(process.env.WS_VERBOSE_UNKNOWN) console.log(data); // TODO: if all opcodes are implemented comment this out: // this.close(CloseCodes.Unknown_opcode); return; diff --git a/src/gateway/opcodes/VoiceServerPing.ts b/src/gateway/opcodes/VoiceServerPing.ts new file mode 100644 index 000000000..f684cb33c --- /dev/null +++ b/src/gateway/opcodes/VoiceServerPing.ts @@ -0,0 +1,9 @@ +import { Payload, WebSocket } from "@fosscord/gateway"; +import { Send } from "../util/Send"; + +export async function onVoiceServerPing(this: WebSocket, data: Payload) { + console.log("Got voice server ping: ", data, "Doing a noop!"); + + + // return this.close(CloseCodes.Invalid_session); +} diff --git a/src/gateway/opcodes/index.ts b/src/gateway/opcodes/index.ts index d5dc7de14..818d15971 100644 --- a/src/gateway/opcodes/index.ts +++ b/src/gateway/opcodes/index.ts @@ -6,6 +6,7 @@ import { onPresenceUpdate } from "./PresenceUpdate"; import { onRequestGuildMembers } from "./RequestGuildMembers"; import { onResume } from "./Resume"; import { onVoiceStateUpdate } from "./VoiceStateUpdate"; +import { onVoiceServerPing } from "./VoiceServerPing"; export type OPCodeHandler = (this: WebSocket, data: Payload) => any; @@ -14,12 +15,14 @@ export default { 2: onIdentify, 3: onPresenceUpdate, 4: onVoiceStateUpdate, - // 5: Voice Server Ping + 5: onVoiceServerPing, //Voice Server Ping 6: onResume, // 7: Reconnect: You should attempt to reconnect and resume immediately. 8: onRequestGuildMembers, // 9: Invalid Session // 10: Hello + // 11: Heartbeat ACK + // 13: Dm_update 14: onLazyRequest };