1
0
mirror of https://github.com/spacebarchat/server.git synced 2024-11-10 12:42:44 +01:00

Fast connect but send identify

This commit is contained in:
Madeline 2022-10-31 19:37:46 +11:00
parent 5b849749d5
commit 3dfd864aff
2 changed files with 80 additions and 1 deletions

View File

@ -46,7 +46,80 @@
</script> </script>
<!-- fast connect --> <!-- fast connect -->
<script>!function () { if (null != window.WebSocket) { if (function (n) { try { var e = localStorage.getItem(n); return null == e ? null : JSON.parse(e); } catch (n) { return null; } }("token") && !window.__OVERLAY__) { var n = null != window.DiscordNative || null != window.require ? "etf" : "json", e = window.GLOBAL_ENV.GATEWAY_ENDPOINT + "/?encoding=" + n + "&v=" + window.GLOBAL_ENV.API_VERSION + "&compress=zlib-stream"; console.log("[FAST CONNECT] connecting to: " + e); var o = new WebSocket(e); o.binaryType = "arraybuffer"; var t = Date.now(), i = { open: !1, identify: !1, gateway: e, messages: [] }; o.onopen = function () { console.log("[FAST CONNECT] connected in " + (Date.now() - t) + "ms"), i.open = !0; }, o.onclose = o.onerror = function () { window._ws = null; }, o.onmessage = function (n) { i.messages.push(n); }, window._ws = { ws: o, state: i }; } } }();</script> <!-- <script>!function () { if (null != window.WebSocket) { if (function (n) { try { var e = localStorage.getItem(n); return null == e ? null : JSON.parse(e); } catch (n) { return null; } }("token") && !window.__OVERLAY__) { var n = null != window.DiscordNative || null != window.require ? "etf" : "json", e = window.GLOBAL_ENV.GATEWAY_ENDPOINT + "/?encoding=" + n + "&v=" + window.GLOBAL_ENV.API_VERSION + "&compress=zlib-stream"; console.log("[FAST CONNECT] connecting to: " + e); var o = new WebSocket(e); o.binaryType = "arraybuffer"; var t = Date.now(), i = { open: !1, identify: !1, gateway: e, messages: [] }; o.onopen = function () { console.log("[FAST CONNECT] connected in " + (Date.now() - t) + "ms"), i.open = !0; }, o.onclose = o.onerror = function () { window._ws = null; }, o.onmessage = function (n) { i.messages.push(n); }, window._ws = { ws: o, state: i }; } } }();</script> -->
<!-- fast identify -->
<script>
(() => {
if (window.WebSocket == null) return;
if (window.__OVERLAY__) return;
const getStorage = (key) => {
try {
return JSON.parse(localStorage.getItem(key));
}
catch (e) {
return undefined;
}
};
const token = getStorage("token");
if (!token) return;
const encoding = window.DiscordNative != null || window.require != null ? "etf" : "json";
const url = window.GLOBAL_ENV.GATEWAY_ENDPOINT +
"/?encoding=" +
encoding +
"&v=" +
window.GLOBAL_ENV.API_VERSION +
"&compress=zlib-stream";
console.log("[FAST IDENTIFY] connecting to:", url);
const socket = new WebSocket(url);
socket.binaryType = "arraybuffer";
const start = Date.now();
const state = { open: false, identity: false, gateway: url, messages: [] };
socket.onopen = function () {
console.log(`[FAST IDENTIFY] connected in ${Date.now() - start}ms`);
state.open = true;
console.log("[FAST IDENTIFY] Sending payload");
state.identity = true;
const payload = {
op: 2,
d: {
token: token,
capabilities: 509,
properties: {
...(getStorage("deviceProperties") || {}),
browser_user_agent: navigator.userAgent,
},
compress: false,
presence: {
status: getStorage("UserSettingsStore")?.status || "online",
since: 0,
activities: [],
afk: false,
},
}
};
socket.send(JSON.stringify(payload));
};
socket.onclose = socket.onerror = (e) => {
console.log("[FAST IDENTIFY] Failed", e);
window._ws = null;
};
socket.onmessage = (message) => {
state.messages.push(message);
};
window._ws = { ws: socket, state };
})();
</script>
<!-- preload plugin marker --> <!-- preload plugin marker -->
</head> </head>

View File

@ -119,6 +119,12 @@ const doPatch = (content) => {
"console.log('Prevented deletion of localStorage')" "console.log('Prevented deletion of localStorage')"
); );
// fast identify
content = content.replaceAll(
"e.isFastConnect=t;t?e._doFastConnectIdentify():e._doResumeOrIdentify()",
"e.isFastConnect=t; if (t !== undefined) e._doResumeOrIdentify();"
);
return content; return content;
}; };