summary refs log tree commit diff
path: root/api/client_test/index.html
blob: 20b431b8360babfa317a48c742286a9575623ed6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<title>Discord Test Client</title>
	</head>

	<body>
		<div id="app-mount"></div>
		<script>
			window.__OVERLAY__ = /overlay/.test(location.pathname);
			window.__BILLING_STANDALONE__ = /^\/billing/.test(location.pathname);
			window.GLOBAL_ENV = {
				API_ENDPOINT: "/api",
				API_VERSION: 9,
				GATEWAY_ENDPOINT: `${location.protocol === "https:" ? "wss://" : "ws://"}${location.hostname}:3002`,
				WEBAPP_ENDPOINT: "",
				CDN_HOST: `${location.hostname}:3003`,
				ASSET_ENDPOINT: "",
				MEDIA_PROXY_ENDPOINT: "https://media.discordapp.net",
				WIDGET_ENDPOINT: `//${location.host}/widget`,
				INVITE_HOST: `${location.host}/invite`,
				GUILD_TEMPLATE_HOST: "discord.new",
				GIFT_CODE_HOST: "discord.gift",
				RELEASE_CHANNEL: "stable",
				MARKETING_ENDPOINT: "//discord.com",
				BRAINTREE_KEY: "production_5st77rrc_49pp2rp4phym7387",
				STRIPE_KEY: "pk_live_CUQtlpQUF0vufWpnpUmQvcdi",
				NETWORKING_ENDPOINT: "//router.discordapp.net",
				RTC_LATENCY_ENDPOINT: "//latency.discord.media/rtc",
				PROJECT_ENV: "production",
				REMOTE_AUTH_ENDPOINT: "//localhost:3020",
				SENTRY_TAGS: { buildId: "75e36d9", buildType: "normal" },
				MIGRATION_SOURCE_ORIGIN: "https://discordapp.com",
				MIGRATION_DESTINATION_ORIGIN: "https://discord.com",
				HTML_TIMESTAMP: Date.now(),
				ALGOLIA_KEY: "aca0d7082e4e63af5ba5917d5e96bed0"
			};
			const localStorage = window.localStorage;
			// TODO: remote auth
			// window.GLOBAL_ENV.REMOTE_AUTH_ENDPOINT = window.GLOBAL_ENV.GATEWAY_ENDPOINT.replace(/wss?:/, "");
			localStorage.setItem("gatewayURL", window.GLOBAL_ENV.GATEWAY_ENDPOINT);
			localStorage.setItem(
				"DeveloperOptionsStore",
				`{"trace":false,"canary":false,"logGatewayEvents":true,"logOverlayEvents":true,"logAnalyticsEvents":true,"sourceMapsEnabled":false,"axeEnabled":false}`
			);

			// Auto register guest account:
			const prefix = [
				"mysterious",
				"adventurous",
				"courageous",
				"precious",
				"cynical",
				"despicable",
				"suspicious",
				"gorgeous",
				"lovely",
				"stunning",
				"based",
				"keyed",
				"ratioed",
				"twink",
				"phoned"
			];
			const suffix = [
				"Anonymous",
				"Lurker",
				"User",
				"Enjoyer",
				"Hunk",
				"Top",
				"Bottom",
				"Sub",
				"Coolstar",
				"Wrestling",
				"TylerTheCreator",
				"Ad"
			];

			Array.prototype.random = function () {
				return this[Math.floor(Math.random() * this.length)];
			};

			function _generateName() {
				return `${prefix.random()}${suffix.random()}`;
			}

			const token = JSON.parse(localStorage.getItem("token"));
			if (!token && location.pathname !== "/login" && location.pathname !== "/register") {
				fetch(`${window.GLOBAL_ENV.API_ENDPOINT}/auth/register`, {
					method: "POST",
					headers: { "content-type": "application/json" },
					body: JSON.stringify({ username: `${_generateName()}`, consent: true }) //${Date.now().toString().slice(-4)}
				})
					.then((x) => x.json())
					.then((x) => {
						localStorage.setItem("token", `"${x.token}"`);
						if (!window.localStorage) {
							// client already loaded -> need to reload to apply the newly registered user token
							location.reload();
						}
					});
			}

			const settings = JSON.parse(localStorage.getItem("UserSettingsStore"));
			if (settings && settings.locale === "en") {
				settings.locale = "en-US";
				localStorage.setItem("UserSettingsStore", JSON.stringify(settings));
			}
		</script>
		<script src="/assets/479a2f1e7d625dc134b9.js"></script>
		<script src="/assets/a15fd133a1d2d77a2424.js"></script>
		<script src="/assets/97e6fa22aa08ee4daa5e.js"></script>
		<script src="/assets/9b2b7f0632acd0c5e781.js"></script>
	</body>
</html>