From 341ec5ce86d1220060f63d2681b6e8eae11ec488 Mon Sep 17 00:00:00 2001 From: RblSb Date: Sun, 23 Apr 2023 12:34:38 +0300 Subject: Use null coalescing op --- build/server.js | 57 +++++++++++++++++-------------------- res/client.js | 66 ++++++++++++++++--------------------------- src/Lang.hx | 4 +-- src/client/JsApi.hx | 2 +- src/client/Main.hx | 23 +++++++-------- src/client/Player.hx | 8 ++---- src/client/players/Youtube.hx | 2 +- src/server/HttpServer.hx | 4 +-- src/server/Main.hx | 8 ++---- 9 files changed, 71 insertions(+), 103 deletions(-) diff --git a/build/server.js b/build/server.js index e29026e..f8e4d0e 100644 --- a/build/server.js +++ b/build/server.js @@ -2126,10 +2126,10 @@ Lang.get = function(lang,key) { lang = "en"; } var text = Lang.langs.h[lang].h[key]; - if(text == null) { - return key; - } else { + if(text != null) { return text; + } else { + return key; } }; Math.__name__ = true; @@ -3859,11 +3859,12 @@ server_HttpServer.isChildOf = function(parent,child) { } }; server_HttpServer.getMimeType = function(ext) { - var contentType = server_HttpServer.mimeTypes.h[ext]; - if(contentType == null) { + var tmp = server_HttpServer.mimeTypes.h[ext]; + if(tmp != null) { + return tmp; + } else { return "application/octet-stream"; } - return contentType; }; server_HttpServer.safeDecodeURI = function(data) { try { @@ -4083,10 +4084,8 @@ server_Main.prototype = { process.exit(); } ,generateConfigSalt: function() { - if(this.userList.salt == null) { - var tmp = "" + Math.random(); - this.userList.salt = haxe_crypto_Sha256.encode(tmp); - } + var tmp = this.userList.salt != null ? this.userList.salt : haxe_crypto_Sha256.encode("" + Math.random()); + this.userList.salt = tmp; return this.userList.salt; } ,loadUserConfig: function() { @@ -4131,7 +4130,7 @@ server_Main.prototype = { var field = _g1[_g]; ++_g; if(Reflect.field(config,field) == null) { - haxe_Log.trace("Warning: config field \"" + field + "\" is unknown",{ fileName : "src/server/Main.hx", lineNumber : 201, className : "server.Main", methodName : "getUserConfig"}); + haxe_Log.trace("Warning: config field \"" + field + "\" is unknown",{ fileName : "src/server/Main.hx", lineNumber : 199, className : "server.Main", methodName : "getUserConfig"}); } config[field] = Reflect.field(customConfig,field); } @@ -4142,14 +4141,14 @@ server_Main.prototype = { var emote = _g1[_g]; ++_g; if(emoteCopies_h[emote.name]) { - haxe_Log.trace("Warning: emote name \"" + emote.name + "\" has copy",{ fileName : "src/server/Main.hx", lineNumber : 207, className : "server.Main", methodName : "getUserConfig"}); + haxe_Log.trace("Warning: emote name \"" + emote.name + "\" has copy",{ fileName : "src/server/Main.hx", lineNumber : 205, className : "server.Main", methodName : "getUserConfig"}); } emoteCopies_h[emote.name] = true; if(!this.verbose) { continue; } if(emoteCopies_h[emote.image]) { - haxe_Log.trace("Warning: emote url of name \"" + emote.name + "\" has copy",{ fileName : "src/server/Main.hx", lineNumber : 211, className : "server.Main", methodName : "getUserConfig"}); + haxe_Log.trace("Warning: emote url of name \"" + emote.name + "\" has copy",{ fileName : "src/server/Main.hx", lineNumber : 209, className : "server.Main", methodName : "getUserConfig"}); } emoteCopies_h[emote.image] = true; } @@ -4161,12 +4160,8 @@ server_Main.prototype = { return { admins : [], bans : []}; } var users = JSON.parse(js_node_Fs.readFileSync(customPath,{ encoding : "utf8"})); - if(users.admins == null) { - users.admins = []; - } - if(users.bans == null) { - users.bans = []; - } + users.admins = users.admins != null ? users.admins : []; + users.bans = users.bans != null ? users.bans : []; var _g = 0; var _g1 = users.bans; while(_g < _g1.length) { @@ -4191,7 +4186,7 @@ server_Main.prototype = { js_node_Fs.writeFileSync("" + folder + "/users.json",JSON.stringify({ admins : users1, bans : _g, salt : users.salt},null,"\t")); } ,saveState: function() { - haxe_Log.trace("Saving state...",{ fileName : "src/server/Main.hx", lineNumber : 250, className : "server.Main", methodName : "saveState"}); + haxe_Log.trace("Saving state...",{ fileName : "src/server/Main.hx", lineNumber : 248, className : "server.Main", methodName : "saveState"}); var json = JSON.stringify(this.getCurrentState(),null,"\t"); js_node_Fs.writeFileSync(this.statePath,json); this.writeUsers(this.userList); @@ -4206,7 +4201,7 @@ server_Main.prototype = { if(!sys_FileSystem.exists(this.statePath)) { return; } - haxe_Log.trace("Loading state...",{ fileName : "src/server/Main.hx", lineNumber : 272, className : "server.Main", methodName : "loadState"}); + haxe_Log.trace("Loading state...",{ fileName : "src/server/Main.hx", lineNumber : 270, className : "server.Main", methodName : "loadState"}); var data = JSON.parse(js_node_Fs.readFileSync(this.statePath,{ encoding : "utf8"})); this.videoList.setItems(data.videoList); this.messages.length = 0; @@ -4220,7 +4215,7 @@ server_Main.prototype = { this.videoTimer.pause(); } ,logError: function(type,data) { - haxe_Log.trace(type,{ fileName : "src/server/Main.hx", lineNumber : 287, className : "server.Main", methodName : "logError", customParams : [data]}); + haxe_Log.trace(type,{ fileName : "src/server/Main.hx", lineNumber : 285, className : "server.Main", methodName : "logError", customParams : [data]}); var crashesFolder = "" + this.rootDir + "/user/crashes"; server_Utils.ensureDir(crashesFolder); var name = DateTools.format(new Date(),"%Y-%m-%d_%H_%M_%S") + "-" + type; @@ -4238,7 +4233,7 @@ server_Main.prototype = { if(_gthis.clients.length == 0) { return; } - haxe_Log.trace("Ping " + url,{ fileName : "src/server/Main.hx", lineNumber : 304, className : "server.Main", methodName : "initIntergationHandlers"}); + haxe_Log.trace("Ping " + url,{ fileName : "src/server/Main.hx", lineNumber : 302, className : "server.Main", methodName : "initIntergationHandlers"}); js_node_Http.get(url,null,function(r) { }); }; @@ -4258,13 +4253,13 @@ server_Main.prototype = { password += this.config.salt; var hash = haxe_crypto_Sha256.encode(password); this.userList.admins.push({ name : name, hash : hash}); - haxe_Log.trace("Admin " + name + " added.",{ fileName : "src/server/Main.hx", lineNumber : 327, className : "server.Main", methodName : "addAdmin"}); + haxe_Log.trace("Admin " + name + " added.",{ fileName : "src/server/Main.hx", lineNumber : 325, className : "server.Main", methodName : "addAdmin"}); } ,removeAdmin: function(name) { HxOverrides.remove(this.userList.admins,Lambda.find(this.userList.admins,function(item) { return item.name == name; })); - haxe_Log.trace("Admin " + name + " removed.",{ fileName : "src/server/Main.hx", lineNumber : 334, className : "server.Main", methodName : "removeAdmin"}); + haxe_Log.trace("Admin " + name + " removed.",{ fileName : "src/server/Main.hx", lineNumber : 332, className : "server.Main", methodName : "removeAdmin"}); } ,replayLog: function(events) { var _gthis = this; @@ -4308,7 +4303,7 @@ server_Main.prototype = { var ip = this.clientIp(req); var id = this.freeIds.length > 0 ? this.freeIds.shift() : this.clients.length; var name = "Guest " + (id + 1); - haxe_Log.trace(HxOverrides.dateStr(new Date()),{ fileName : "src/server/Main.hx", lineNumber : 372, className : "server.Main", methodName : "onConnect", customParams : ["" + name + " connected (" + ip + ")"]}); + haxe_Log.trace(HxOverrides.dateStr(new Date()),{ fileName : "src/server/Main.hx", lineNumber : 370, className : "server.Main", methodName : "onConnect", customParams : ["" + name + " connected (" + ip + ")"]}); var isAdmin = this.config.localAdmins && req.socket.localAddress == ip; var client = new Client(ws,req,id,name,0); client.setGroupFlag(ClientGroup.Admin,isAdmin); @@ -4321,7 +4316,7 @@ server_Main.prototype = { var obj = _gthis.wsEventParser.fromJson(data.toString()); if(_gthis.wsEventParser.errors.length > 0 || _gthis.noTypeObj(obj)) { var errors = "" + ("Wrong request for type \"" + obj.type + "\":") + "\n" + json2object_ErrorUtils.convertErrorArray(_gthis.wsEventParser.errors); - haxe_Log.trace(errors,{ fileName : "src/server/Main.hx", lineNumber : 388, className : "server.Main", methodName : "onConnect"}); + haxe_Log.trace(errors,{ fileName : "src/server/Main.hx", lineNumber : 386, className : "server.Main", methodName : "onConnect"}); _gthis.serverMessage(client,errors); return; } @@ -4462,7 +4457,7 @@ server_Main.prototype = { if(!internal) { return; } - haxe_Log.trace(HxOverrides.dateStr(new Date()),{ fileName : "src/server/Main.hx", lineNumber : 448, className : "server.Main", methodName : "onMessage", customParams : ["Client " + client.name + " disconnected"]}); + haxe_Log.trace(HxOverrides.dateStr(new Date()),{ fileName : "src/server/Main.hx", lineNumber : 446, className : "server.Main", methodName : "onMessage", customParams : ["Client " + client.name + " disconnected"]}); server_Utils.sortedPush(this.freeIds,client.id); HxOverrides.remove(this.clients,client); this.sendClientList(); @@ -4586,7 +4581,7 @@ server_Main.prototype = { this.send(client,{ type : "LoginError"}); return; } - haxe_Log.trace(HxOverrides.dateStr(new Date()),{ fileName : "src/server/Main.hx", lineNumber : 535, className : "server.Main", methodName : "onMessage", customParams : ["Client " + client.name + " logged as " + name]}); + haxe_Log.trace(HxOverrides.dateStr(new Date()),{ fileName : "src/server/Main.hx", lineNumber : 533, className : "server.Main", methodName : "onMessage", customParams : ["Client " + client.name + " logged as " + name]}); client.name = name; client.setGroupFlag(ClientGroup.User,true); this.checkBan(client); @@ -4599,7 +4594,7 @@ server_Main.prototype = { var oldName = client.name; client.name = "Guest " + (this.clients.indexOf(client) + 1); client.setGroupFlag(ClientGroup.User,false); - haxe_Log.trace(HxOverrides.dateStr(new Date()),{ fileName : "src/server/Main.hx", lineNumber : 556, className : "server.Main", methodName : "onMessage", customParams : ["Client " + oldName + " logout to " + client.name]}); + haxe_Log.trace(HxOverrides.dateStr(new Date()),{ fileName : "src/server/Main.hx", lineNumber : 554, className : "server.Main", methodName : "onMessage", customParams : ["Client " + oldName + " logout to " + client.name]}); this.send(client,{ type : data.type, logout : { oldClientName : oldName, clientName : client.name, clients : this.clientList()}}); this.sendClientListExcept(client); break; @@ -4896,7 +4891,7 @@ server_Main.prototype = { client.setGroupFlag(ClientGroup.Banned,!isOutdated); if(isOutdated) { HxOverrides.remove(this.userList.bans,ban); - haxe_Log.trace("" + client.name + " ban removed",{ fileName : "src/server/Main.hx", lineNumber : 941, className : "server.Main", methodName : "checkBan"}); + haxe_Log.trace("" + client.name + " ban removed",{ fileName : "src/server/Main.hx", lineNumber : 939, className : "server.Main", methodName : "checkBan"}); this.sendClientList(); } break; diff --git a/res/client.js b/res/client.js index 29774b5..fbde10d 100644 --- a/res/client.js +++ b/res/client.js @@ -242,10 +242,10 @@ Lang.get = function(key) { Lang.lang = "en"; } var text = Lang.langs.h[Lang.lang].h[key]; - if(text == null) { - return key; - } else { + if(text != null) { return text; + } else { + return key; } }; Math.__name__ = true; @@ -1049,9 +1049,7 @@ client_JsApi.init = function(main,player) { }; client_JsApi.initPluginsSpace = function() { var w = window; - if(w.synctube == null) { - w.synctube = { }; - } + w.synctube = w.synctube != null ? w.synctube : { }; }; client_JsApi.addPlugin = $hx_exports["client"]["JsApi"]["addPlugin"] = function(id,onLoaded) { client_JsApi.addScriptToHead("/plugins/" + id + "/index.js",function() { @@ -1451,12 +1449,8 @@ client_Main.prototype = { client_Main.serverMessage(Lang.get("addVideoError")); return; } - if(data.title == null) { - data.title = Lang.get("rawVideo"); - } - if(data.url == null) { - data.url = url; - } + data.title = data.title != null ? data.title : Lang.get("rawVideo"); + data.url = data.url != null ? data.url : url; _gthis.send({ type : "AddVideo", addVideo : { item : { url : data.url, title : data.title, author : _gthis.personal.name, duration : data.duration, isTemp : isTemp, subs : data.subs, isIframe : data.isIframe == true}, atEnd : atEnd}}); if(callback != null) { callback(); @@ -1483,12 +1477,8 @@ client_Main.prototype = { if(title.length > 0) { data.title = title; } - if(data.title == null) { - data.title = "Custom Media"; - } - if(data.url == null) { - data.url = iframe; - } + data.title = data.title != null ? data.title : "Custom Media"; + data.url = data.url != null ? data.url : iframe; _gthis.send({ type : "AddVideo", addVideo : { item : { url : data.url, title : data.title, author : _gthis.personal.name, duration : data.duration, isTemp : isTemp, isIframe : true}, atEnd : atEnd}}); }); } @@ -1559,12 +1549,8 @@ client_Main.prototype = { case "Flashback": break; case "GetTime": - if(data.getTime.paused == null) { - data.getTime.paused = false; - } - if(data.getTime.rate == null) { - data.getTime.rate = 1; - } + data.getTime.paused = data.getTime.paused != null && data.getTime.paused; + data.getTime.rate = data.getTime.rate != null ? data.getTime.rate : 1; if(this.player.getPlaybackRate() != data.getTime.rate) { this.player.setPlaybackRate(data.getTime.rate); } @@ -1924,11 +1910,11 @@ client_Main.prototype = { } ,onLogin: function(data,clientName) { this.updateClients(data); - var newPersonal = ClientTools.getByName(this.clients,clientName); - if(newPersonal == null) { + var tmp = ClientTools.getByName(this.clients,clientName); + if(tmp == null) { return; } - this.personal = newPersonal; + this.personal = tmp; this.onUserGroupChanged(); this.hideGuestLoginPanel(); } @@ -2008,7 +1994,7 @@ client_Main.prototype = { date = this.getLocalDateFromUtc(date); } var time = date.split(" ")[1]; - tstamp.textContent = time == null ? date : time; + tstamp.textContent = time != null ? time : date; tstamp.title = date; var nameDiv = window.document.createElement("strong"); nameDiv.className = "username"; @@ -2055,9 +2041,7 @@ client_Main.prototype = { } ,onChatVideoLoaded: function(e) { var el = e.target; - if(this.emoteMaxSize == null) { - this.emoteMaxSize = Std.parseInt(window.getComputedStyle(el).getPropertyValue("max-width")); - } + this.emoteMaxSize = this.emoteMaxSize != null ? this.emoteMaxSize : Std.parseInt(window.getComputedStyle(el).getPropertyValue("max-width")); var max = this.emoteMaxSize; var ratio = Math.min(max / el.videoWidth,max / el.videoHeight); el.style.width = "" + el.videoWidth * ratio + "px"; @@ -2348,11 +2332,11 @@ client_Player.prototype = { return; } var _this = this.videoList; - var item = _this.items[_this.pos]; - if(item == null) { + var tmp = _this.items[_this.pos]; + if(tmp == null) { return; } - this.player.loadVideo({ url : src, title : item.title, author : item.author, duration : item.duration, subs : item.subs, isTemp : item.isTemp, isIframe : item.isIframe}); + this.player.loadVideo({ url : src, title : tmp.title, author : tmp.author, duration : tmp.duration, subs : tmp.subs, isTemp : tmp.isTemp, isIframe : tmp.isIframe}); } ,removeVideo: function() { var _this = this.videoList; @@ -2688,14 +2672,14 @@ client_Player.prototype = { ,skipAd: function() { var _gthis = this; var _this = this.videoList; - var item = _this.items[_this.pos]; - if(item == null) { + var tmp = _this.items[_this.pos]; + if(tmp == null) { return; } - if(!this.youtube.isSupportedLink(item.url)) { + if(!this.youtube.isSupportedLink(tmp.url)) { return; } - var http = new haxe_http_HttpJs("https://sponsor.ajay.app/api/skipSegments?videoID=" + this.youtube.extractVideoId(item.url)); + var http = new haxe_http_HttpJs("https://sponsor.ajay.app/api/skipSegments?videoID=" + this.youtube.extractVideoId(tmp.url)); http.onData = function(text) { var json; try { @@ -2716,7 +2700,7 @@ client_Player.prototype = { } }; http.onError = function(msg) { - haxe_Log.trace(msg,{ fileName : "src/client/Player.hx", lineNumber : 476, className : "client.Player", methodName : "skipAd"}); + haxe_Log.trace(msg,{ fileName : "src/client/Player.hx", lineNumber : 474, className : "client.Player", methodName : "skipAd"}); }; http.request(); } @@ -3395,9 +3379,7 @@ client_players_Youtube.prototype = { ,getVideoData: function(data,callback) { var _gthis = this; var url = data.url; - if(this.apiKey == null) { - this.apiKey = this.main.getYoutubeApiKey(); - } + this.apiKey = this.apiKey != null ? this.apiKey : this.main.getYoutubeApiKey(); var id = this.extractVideoId(url); if(id == "") { this.getPlaylistVideoData(data,callback); diff --git a/src/Lang.hx b/src/Lang.hx index 3bd6963..a146e3d 100644 --- a/src/Lang.hx +++ b/src/Lang.hx @@ -56,13 +56,13 @@ class Lang { public static function get(lang:String, ?key:String):String { if (langs[lang] == null) lang = "en"; final text = langs[lang][key]; - return text == null ? key : text; + return text ?? key; } #else public static function get(key:String):String { if (langs[lang] == null) lang = "en"; final text = langs[lang][key]; - return text == null ? key : text; + return text ?? key; } #end } diff --git a/src/client/JsApi.hx b/src/client/JsApi.hx index 63b98c5..637878d 100644 --- a/src/client/JsApi.hx +++ b/src/client/JsApi.hx @@ -28,7 +28,7 @@ class JsApi { static function initPluginsSpace():Void { final w:Dynamic = window; - if (w.synctube == null) w.synctube = {}; + w.synctube ??= {}; } @:expose diff --git a/src/client/Main.hx b/src/client/Main.hx index c8688b4..7b8228e 100644 --- a/src/client/Main.hx +++ b/src/client/Main.hx @@ -289,8 +289,8 @@ class Main { serverMessage(Lang.get("addVideoError")); return; } - if (data.title == null) data.title = Lang.get("rawVideo"); - if (data.url == null) data.url = url; + data.title ??= Lang.get("rawVideo"); + data.url ??= url; send({ type: AddVideo, addVideo: { @@ -330,8 +330,8 @@ class Main { return; } if (title.length > 0) data.title = title; - if (data.title == null) data.title = "Custom Media"; - if (data.url == null) data.url = iframe; + data.title ??= "Custom Media"; + data.url ??= iframe; send({ type: AddVideo, addVideo: { @@ -480,8 +480,8 @@ class Main { player.play(); case GetTime: - if (data.getTime.paused == null) data.getTime.paused = false; - if (data.getTime.rate == null) data.getTime.rate = 1; + data.getTime.paused ??= false; + data.getTime.rate ??= 1; if (player.getPlaybackRate() != data.getTime.rate) { player.setPlaybackRate(data.getTime.rate); @@ -746,8 +746,7 @@ class Main { function onLogin(data:Array, clientName:String):Void { updateClients(data); - final newPersonal = clients.getByName(clientName); - if (newPersonal == null) return; + final newPersonal = clients.getByName(clientName) ?? return; personal = newPersonal; onUserGroupChanged(); hideGuestLoginPanel(); @@ -880,7 +879,7 @@ class Main { if (date == null) date = Date.now().toString(); else date = getLocalDateFromUtc(date); final time = date.split(" ")[1]; - tstamp.textContent = time == null ? date : time; + tstamp.textContent = time ?? date; tstamp.title = date; final nameDiv = document.createElement("strong"); @@ -932,10 +931,8 @@ class Main { function onChatVideoLoaded(e:Event):Void { final el:VideoElement = cast e.target; - if (emoteMaxSize == null) { - emoteMaxSize = Std.parseInt(window.getComputedStyle(el) - .getPropertyValue("max-width")); - } + emoteMaxSize ??= Std.parseInt(window.getComputedStyle(el) + .getPropertyValue("max-width")); // fixes default video tag size in chat when tab unloads videos in background // (some browsers optimization i guess) final max = emoteMaxSize; diff --git a/src/client/Player.hx b/src/client/Player.hx index 207f93a..0407ab2 100644 --- a/src/client/Player.hx +++ b/src/client/Player.hx @@ -102,7 +102,7 @@ class Player { public function getVideoData(data:VideoDataRequest, callback:(data:VideoData) -> Void):Void { var player = players.find(player -> player.isSupportedLink(data.url)); - if (player == null) player = rawPlayer; + player ??= rawPlayer; player.getVideoData(data, callback); } @@ -134,8 +134,7 @@ class Player { public function changeVideoSrc(src:String):Void { if (player == null) return; - final item = videoList.getCurrentItem(); - if (item == null) return; + final item = videoList.getCurrentItem() ?? return; player.loadVideo({ url: src, title: item.title, @@ -447,8 +446,7 @@ class Player { } public function skipAd():Void { - final item = videoList.getCurrentItem(); - if (item == null) return; + final item = videoList.getCurrentItem() ?? return; if (!youtube.isSupportedLink(item.url)) return; final id = youtube.extractVideoId(item.url); final url = 'https://sponsor.ajay.app/api/skipSegments?videoID=$id'; diff --git a/src/client/players/Youtube.hx b/src/client/players/Youtube.hx index b370f24..a728012 100644 --- a/src/client/players/Youtube.hx +++ b/src/client/players/Youtube.hx @@ -79,7 +79,7 @@ class Youtube implements IPlayer { public function getVideoData(data:VideoDataRequest, callback:(data:VideoData) -> Void):Void { final url = data.url; - if (apiKey == null) apiKey = main.getYoutubeApiKey(); + apiKey ??= main.getYoutubeApiKey(); final id = extractVideoId(url); if (id == "") { getPlaylistVideoData(data, callback); diff --git a/src/server/HttpServer.hx b/src/server/HttpServer.hx index 8e4cf75..4bf16c4 100644 --- a/src/server/HttpServer.hx +++ b/src/server/HttpServer.hx @@ -220,9 +220,7 @@ class HttpServer { } static function getMimeType(ext:String):String { - final contentType = mimeTypes[ext]; - if (contentType == null) return "application/octet-stream"; - return contentType; + return mimeTypes[ext] ?? return "application/octet-stream"; } static final ctrlCharacters = ~/[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/g; diff --git a/src/server/Main.hx b/src/server/Main.hx index a525f65..2547761 100644 --- a/src/server/Main.hx +++ b/src/server/Main.hx @@ -164,9 +164,7 @@ class Main { } function generateConfigSalt():String { - if (userList.salt == null) { - userList.salt = Sha256.encode('${Math.random()}'); - } + userList.salt ??= Sha256.encode('${Math.random()}'); return userList.salt; } @@ -222,8 +220,8 @@ class Main { bans: [] }; final users:UserList = Json.parse(File.getContent(customPath)); - if (users.admins == null) users.admins = []; - if (users.bans == null) users.bans = []; + users.admins ??= []; + users.bans ??= []; for (field in users.bans) { field.toDate = Date.fromString(cast field.toDate); } -- cgit v1.2.3