aboutsummaryrefslogtreecommitdiff
path: root/source/client
diff options
context:
space:
mode:
authormetamuffin <metamuffin@yandex.com>2022-01-23 14:06:14 +0100
committermetamuffin <metamuffin@yandex.com>2022-01-23 14:06:14 +0100
commita383c334a2e4ccb246a4a1092b1d053ccad19bd7 (patch)
treec747e39e25b94944da077df0a3ea20a2465540a8 /source/client
parent16fa95ac191287fe7f82b9f37c31342fe3b4b65a (diff)
downloadkeks-meet-a383c334a2e4ccb246a4a1092b1d053ccad19bd7.tar
keks-meet-a383c334a2e4ccb246a4a1092b1d053ccad19bd7.tar.bz2
keks-meet-a383c334a2e4ccb246a4a1092b1d053ccad19bd7.tar.zst
ported everything to deno! yay
Diffstat (limited to 'source/client')
-rw-r--r--source/client/helper.ts6
-rw-r--r--source/client/index.ts15
-rw-r--r--source/client/local_user.ts18
-rw-r--r--source/client/logger.ts1
-rw-r--r--source/client/remote_user.ts10
-rw-r--r--source/client/rnnoise.ts11
-rw-r--r--source/client/room.ts13
-rw-r--r--source/client/types.ts16
-rw-r--r--source/client/user.ts9
9 files changed, 44 insertions, 55 deletions
diff --git a/source/client/helper.ts b/source/client/helper.ts
index 9fb4052..c46b169 100644
--- a/source/client/helper.ts
+++ b/source/client/helper.ts
@@ -1,4 +1,4 @@
-import { parameters } from "."
+import { parameters } from "./index.ts"
export function get_query_params(): { [key: string]: string } {
const q: { [key: string]: string } = {}
@@ -9,7 +9,7 @@ export function get_query_params(): { [key: string]: string } {
return q
}
-export function hex_id(len: number = 8): string {
+export function hex_id(len = 8): string {
if (len > 8) return hex_id() + hex_id(len - 8)
return Math.floor(Math.random() * 16 ** len).toString(16).padStart(len, "0")
}
@@ -21,7 +21,7 @@ export function parameter_bool(name: string, def: boolean): boolean {
if (v == "0" || v == "false" || v == "no") return false
if (v == "1" || v == "true" || v == "yes") return true
alert(`parameter ${name} is invalid`)
- return def
+ return def
}
export function parameter_number(name: string, def: number): number {
diff --git a/source/client/index.ts b/source/client/index.ts
index 313cd86..0c7e728 100644
--- a/source/client/index.ts
+++ b/source/client/index.ts
@@ -1,6 +1,8 @@
-import { get_query_params } from "./helper"
-import { log } from "./logger"
-import { Room } from "./room"
+/// <reference lib="dom" />
+
+import { get_query_params } from "./helper.ts"
+import { log } from "./logger.ts"
+import { Room } from "./room.ts"
export const servers = {
iceServers: [{ urls: ["stun:stun1.l.google.com:19302", "stun:stun2.l.google.com:19302"] }],
@@ -13,14 +15,15 @@ export interface User {
}
-export var parameters = get_query_params()
+export const parameters = get_query_params()
window.onload = () => main()
-export async function main() {
+export function main() {
+ log("*", "starting up")
if (window.location.pathname.startsWith("/room/")) {
const room_name = window.location.pathname.substr("/room/".length)
- let room = new Room(room_name)
+ const room = new Room(room_name)
document.body.append(room.el)
} else {
document.body.append(create_start_screen())
diff --git a/source/client/local_user.ts b/source/client/local_user.ts
index 7f2327e..540e311 100644
--- a/source/client/local_user.ts
+++ b/source/client/local_user.ts
@@ -1,9 +1,9 @@
-import { parameter_bool, parameter_number, parameter_string } from "./helper";
-import { log } from "./logger";
-import { RemoteUser } from "./remote_user";
-import { get_rnnoise_node } from "./rnnoise";
-import { Room } from "./room";
-import { User } from "./user";
+import { parameter_bool, parameter_number } from "./helper.ts";
+import { log } from "./logger.ts";
+import { RemoteUser } from "./remote_user.ts";
+import { get_rnnoise_node } from "./rnnoise.ts";
+import { Room } from "./room.ts";
+import { User } from "./user.ts";
export class LocalUser extends User {
@@ -74,7 +74,7 @@ export class LocalUser extends User {
else this.controls?.video.classList.remove("enabled")
}
- async add_initial_to_remote(ru: RemoteUser) {
+ add_initial_to_remote(ru: RemoteUser) {
if (this.audio_track) ru.peer.addTrack(this.audio_track)
if (this.video_track) ru.peer.addTrack(this.video_track)
}
@@ -133,7 +133,7 @@ export class LocalUser extends User {
this.update_view_w()
}
- async disable_video() {
+ disable_video() {
if (!this.video_track) return
this.room.remote_users.forEach(u => {
u.peer.getSenders().forEach(s => {
@@ -144,7 +144,7 @@ export class LocalUser extends User {
this.update_view_w()
this.video_track = undefined
}
- async disable_audio() {
+ disable_audio() {
if (!this.audio_track) return
if (this.audio_disable_cleanup) this.audio_disable_cleanup()
this.room.remote_users.forEach(u => {
diff --git a/source/client/logger.ts b/source/client/logger.ts
index 637f5c0..745ce88 100644
--- a/source/client/logger.ts
+++ b/source/client/logger.ts
@@ -9,6 +9,7 @@ const log_tag_color: { [key in LogTag]: string } = {
}
// TODO maybe log time aswell
+// deno-lint-ignore no-explicit-any
export function log(tag: LogTag, message: string, ...data: any[]) {
for (let i = 0; i < data.length; i++) {
const e = data[i];
diff --git a/source/client/remote_user.ts b/source/client/remote_user.ts
index 6986a11..9e33a09 100644
--- a/source/client/remote_user.ts
+++ b/source/client/remote_user.ts
@@ -1,13 +1,13 @@
-import { servers } from "."
-import { log } from "./logger"
-import { Room } from "./room"
-import { User } from "./user"
+import { servers } from "./index.ts"
+import { log } from "./logger.ts"
+import { Room } from "./room.ts"
+import { User } from "./user.ts"
export class RemoteUser extends User {
peer: RTCPeerConnection
- negotiation_busy: boolean = false
+ negotiation_busy = false
constructor(room: Room, name: string) {
super(room, name)
diff --git a/source/client/rnnoise.ts b/source/client/rnnoise.ts
index c9014ef..0d301c5 100644
--- a/source/client/rnnoise.ts
+++ b/source/client/rnnoise.ts
@@ -1,9 +1,10 @@
-import { log } from "./logger"
+import { log } from "./logger.ts"
declare global {
class RNNoiseNode extends AudioWorkletNode {
static register(context: AudioContext): Promise<void>
constructor(context: AudioContext)
+ // deno-lint-ignore no-explicit-any
onstatus: (data: any) => void
update(something: boolean): void
}
@@ -13,19 +14,19 @@ declare global {
// TODO fix leak
export async function get_rnnoise_node(context: AudioContext): Promise<RNNoiseNode> {
log("misc", "rnnoise enabled")
- //@ts-ignore
+ //@ts-ignore asfdasfd
let RNNoiseNode: typeof RNNoiseNode = window.RNNoiseNode;
let script: HTMLScriptElement;
if (!RNNoiseNode) {
log("misc", "loading rnnoise...")
script = document.createElement("script")
- script.src = "/static/rnnoise/rnnoise-runtime.js"
+ script.src = "/rnnoise/rnnoise-runtime.js"
script.defer = true
document.head.appendChild(script)
- //@ts-ignore
+ //@ts-ignore asdfsfad
while (!window.RNNoiseNode) await new Promise<void>(r => setTimeout(() => r(), 100))
- //@ts-ignore
+ //@ts-ignore asfdsadfsafd
RNNoiseNode = window.RNNoiseNode;
log("misc", "rnnoise loaded")
}
diff --git a/source/client/room.ts b/source/client/room.ts
index 6a53a45..de6bff7 100644
--- a/source/client/room.ts
+++ b/source/client/room.ts
@@ -1,10 +1,9 @@
-import { log } from "./logger";
-import { CSPacket, SCPacket } from "./types";
-import { RemoteUser } from "./remote_user";
-import { User } from "./user";
-import { LocalUser } from "./local_user";
-import { parameters } from ".";
-import { hex_id, parameter_string } from "./helper";
+import { log } from "./logger.ts";
+import { RemoteUser } from "./remote_user.ts";
+import { User } from "./user.ts";
+import { LocalUser } from "./local_user.ts";
+import { hex_id, parameter_string } from "./helper.ts";
+import { CSPacket, SCPacket } from "../packets.ts";
export class Room {
diff --git a/source/client/types.ts b/source/client/types.ts
deleted file mode 100644
index 7ce23ea..0000000
--- a/source/client/types.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-
-export interface SCPacket {
- sender: string,
- data?: CSPacket,
- join?: boolean, // user just joined
- leave?: boolean, // user left
- stable?: boolean // user "joined" because you joined aka. user was already there
-}
-export interface CSPacket {
- receiver?: string
- ice_candiate?: RTCIceCandidateInit
- offer?: RTCSessionDescriptionInit
- answer?: RTCSessionDescriptionInit
-}
-
-
diff --git a/source/client/user.ts b/source/client/user.ts
index f4f33e1..ef1449f 100644
--- a/source/client/user.ts
+++ b/source/client/user.ts
@@ -1,5 +1,6 @@
-import { log } from "./logger"
-import { Room } from "./room"
+
+import { log } from "./logger.ts"
+import { Room } from "./room.ts"
export abstract class User {
@@ -11,7 +12,7 @@ export abstract class User {
display?: { audio_status_el: HTMLElement, video_status_el: HTMLElement }
- local: boolean = false
+ local = false
stream: MediaStream = new MediaStream()
@@ -96,7 +97,7 @@ export abstract class User {
const pip_el = document.createElement("input")
pip_el.type = "button"
pip_el.addEventListener("click", () => {
- //@ts-ignore
+ // @ts-ignore firefox feature
media_el.requestPictureInPicture()
})
pip_el.value = "Picture-in-Picture"