2020-11-28 19:31:04 +01:00
|
|
|
<!DOCTYPE html>
|
|
|
|
<html lang="en">
|
2021-10-09 22:49:29 +02:00
|
|
|
|
2022-10-24 09:59:53 +02:00
|
|
|
<head>
|
|
|
|
<meta charset="UTF-8" />
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
2022-12-17 07:14:49 +01:00
|
|
|
<title>Fosscord Test Client</title>
|
2022-10-24 09:59:53 +02:00
|
|
|
<link rel="stylesheet" href="/assets/fosscord.css" />
|
|
|
|
<link id="logincss" rel="stylesheet" href="/assets/fosscord-login.css" />
|
|
|
|
<link id="customcss" rel="stylesheet" href="/assets/user.css" />
|
2021-10-20 17:54:54 +02:00
|
|
|
|
2022-10-24 09:59:53 +02:00
|
|
|
<script>
|
|
|
|
window.__OVERLAY__ = /overlay/.test(location.pathname);
|
|
|
|
window.__BILLING_STANDALONE__ = /^\/billing/.test(location.pathname);
|
|
|
|
window.GLOBAL_ENV = {
|
|
|
|
API_ENDPOINT: "/api",
|
|
|
|
API_VERSION: 9,
|
2022-12-17 09:34:13 +01:00
|
|
|
GATEWAY_ENDPOINT: `${location.protocol === "https:" ? "wss://" : "ws://"}${location.host}`,
|
2022-10-24 09:59:53 +02:00
|
|
|
WEBAPP_ENDPOINT: "",
|
2022-10-28 12:42:52 +02:00
|
|
|
CDN_HOST: `${location.hostname}`,
|
2022-10-24 09:59:53 +02:00
|
|
|
ASSET_ENDPOINT: "",
|
2022-12-17 09:34:13 +01:00
|
|
|
MEDIA_PROXY_ENDPOINT: "https://media.discordapp.net",
|
2022-10-24 09:59:53 +02:00
|
|
|
WIDGET_ENDPOINT: `//${location.host}/widget`,
|
|
|
|
INVITE_HOST: `${location.hostname}/invite`,
|
2022-12-17 09:34:13 +01:00
|
|
|
GUILD_TEMPLATE_HOST: "${location.host}/template",
|
|
|
|
GIFT_CODE_HOST: "${location.hostname}/gift",
|
|
|
|
RELEASE_CHANNEL: "stable",
|
|
|
|
MARKETING_ENDPOINT: "//discord.com",
|
2022-10-24 09:59:53 +02:00
|
|
|
BRAINTREE_KEY: "production_5st77rrc_49pp2rp4phym7387",
|
|
|
|
STRIPE_KEY: "pk_live_CUQtlpQUF0vufWpnpUmQvcdi",
|
2022-12-17 09:34:13 +01:00
|
|
|
NETWORKING_ENDPOINT: "//router.discordapp.net",
|
|
|
|
RTC_LATENCY_ENDPOINT: "//${location.hostname}/rtc",
|
|
|
|
ACTIVITY_APPLICATION_HOST: "discordsays.com",
|
|
|
|
PROJECT_ENV: "production",
|
|
|
|
REMOTE_AUTH_ENDPOINT: "//localhost:3020",
|
2022-10-24 09:59:53 +02:00
|
|
|
SENTRY_TAGS: { buildId: "75e36d9", buildType: "normal" },
|
2022-12-17 09:34:13 +01:00
|
|
|
MIGRATION_SOURCE_ORIGIN: "https://${location.hostname}",
|
|
|
|
MIGRATION_DESTINATION_ORIGIN: "https://${location.hostname}",
|
2022-10-24 09:59:53 +02:00
|
|
|
HTML_TIMESTAMP: Date.now(),
|
|
|
|
ALGOLIA_KEY: "aca0d7082e4e63af5ba5917d5e96bed0"
|
|
|
|
};
|
2022-10-26 07:36:54 +02:00
|
|
|
window.localStorage.setItem("gatewayURL", window.GLOBAL_ENV.GATEWAY_ENDPOINT);
|
|
|
|
window.localStorage.setItem(
|
2022-10-24 09:59:53 +02:00
|
|
|
"DeveloperOptionsStore",
|
|
|
|
`{"trace":false,"canary":false,"logGatewayEvents":true,"logOverlayEvents":true,"logAnalyticsEvents":true,"sourceMapsEnabled":false,"axeEnabled":false}`
|
|
|
|
);
|
|
|
|
</script>
|
|
|
|
|
2022-10-30 01:57:03 +02:00
|
|
|
<!-- fast connect -->
|
2022-10-31 09:37:46 +01:00
|
|
|
<!-- <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>
|
2022-10-30 01:57:03 +02:00
|
|
|
|
2022-12-18 07:37:32 +01:00
|
|
|
<!-- inline plugin marker -->
|
2022-10-24 09:59:53 +02:00
|
|
|
<!-- preload plugin marker -->
|
|
|
|
</head>
|
|
|
|
|
|
|
|
<body>
|
|
|
|
<div id="app-mount"></div>
|
|
|
|
<script src="/assets/83ace7450e110d16319e.js"></script>
|
|
|
|
<script src="/assets/e02290aaa8dac5d195c2.js"></script>
|
|
|
|
<script src="/assets/4f3b3c576b879a5f75d1.js"></script>
|
|
|
|
<script src="/assets/699456246fdfe7589855.js"></script>
|
|
|
|
<!-- plugin marker -->
|
|
|
|
</body>
|
|
|
|
|
|
|
|
</html>
|