78 lines
2.7 KiB
TypeScript
78 lines
2.7 KiB
TypeScript
import * as loader from "tc-loader";
|
|
import {Stage} from "tc-loader";
|
|
import {config} from "tc-shared/i18n/localize";
|
|
import {getBackend} from "tc-shared/backend";
|
|
import {
|
|
ClientServiceConfig,
|
|
ClientServiceInvite,
|
|
ClientServices,
|
|
ClientSessionType,
|
|
initializeClientServices,
|
|
LocalAgent
|
|
} from "tc-services";
|
|
|
|
import translation_config = config.translation_config;
|
|
|
|
export let clientServices: ClientServices;
|
|
export let clientServiceInvite: ClientServiceInvite;
|
|
|
|
loader.register_task(Stage.JAVASCRIPT_INITIALIZING, {
|
|
priority: 30,
|
|
function: async () => {
|
|
initializeClientServices();
|
|
clientServices = new ClientServices(new class implements ClientServiceConfig {
|
|
getServiceHost(): string {
|
|
//return "localhost:1244";
|
|
return "client-services.teaspeak.de:27791";
|
|
}
|
|
|
|
getSessionType(): ClientSessionType {
|
|
return __build.target === "web" ? ClientSessionType.WebClient : ClientSessionType.TeaClient;
|
|
}
|
|
|
|
generateHostInfo(): LocalAgent {
|
|
if(__build.target === "client") {
|
|
const info = getBackend("native").getVersionInfo();
|
|
|
|
return {
|
|
clientVersion: info.version,
|
|
uiVersion: __build.version,
|
|
|
|
architecture: info.os_architecture,
|
|
platform: info.os_platform,
|
|
platformVersion: info.os_platform_version
|
|
};
|
|
} else {
|
|
const os = window.detectedBrowser.os;
|
|
const osParts = os.split(" ");
|
|
let platformVersion;
|
|
if(osParts.last().match(/^[0-9.]+$/)) {
|
|
platformVersion = osParts.last();
|
|
osParts.splice(osParts.length - 1, 1);
|
|
}
|
|
|
|
return {
|
|
uiVersion: __build.version,
|
|
|
|
platform: osParts.join(" "),
|
|
platformVersion: platformVersion,
|
|
architecture: window.detectedBrowser.name,
|
|
clientVersion: window.detectedBrowser.version,
|
|
}
|
|
}
|
|
}
|
|
|
|
getSelectedLocaleUrl(): string | null {
|
|
const trConfig = translation_config();
|
|
return trConfig?.current_translation_url || null;
|
|
}
|
|
});
|
|
|
|
clientServices.start();
|
|
(window as any).clientServices = clientServices;
|
|
|
|
clientServiceInvite = new ClientServiceInvite(clientServices);
|
|
(window as any).clientServiceInvite = clientServiceInvite;
|
|
},
|
|
name: "client services"
|
|
}); |