diff options
| -rw-r--r-- | build/server.js | 30 | ||||
| -rw-r--r-- | res/client.js | 12 | ||||
| -rw-r--r-- | res/langs/en.json | 3 | ||||
| -rw-r--r-- | res/langs/ru.json | 3 | ||||
| -rw-r--r-- | src/client/Main.hx | 9 | ||||
| -rw-r--r-- | src/server/Main.hx | 33 |
6 files changed, 61 insertions, 29 deletions
diff --git a/build/server.js b/build/server.js index 9adcb91..dcbb2bc 100644 --- a/build/server.js +++ b/build/server.js @@ -5209,18 +5209,30 @@ server_Main.prototype = { _gthis.restartWaitTimer(); } } else { - this.cache.cacheYoutubeVideo(client,item.url,function(name) { - item = _$Types_VideoItemTools.withUrl(item,_gthis.cache.getFileUrl(name)); - if(item.duration > 1) { - item.duration -= 1; - } + var _g = item.playerType; + if(_g == "YoutubeType") { + this.cache.cacheYoutubeVideo(client,item.url,function(name) { + item = _$Types_VideoItemTools.withUrl(item,_gthis.cache.getFileUrl(name)); + if(item.duration > 1) { + item.duration -= 1; + } + data.addVideo.item = item; + _gthis.videoList.addItem(item,data.addVideo.atEnd); + _gthis.broadcast(data); + if(_gthis.videoList.items.length == 1) { + _gthis.restartWaitTimer(); + } + }); + } else { + var name = StringTools.replace("" + _g,"Type",""); + this.serverMessage(client,"No cache support for " + name + " player."); data.addVideo.item = item; _gthis.videoList.addItem(item,data.addVideo.atEnd); _gthis.broadcast(data); if(_gthis.videoList.items.length == 1) { _gthis.restartWaitTimer(); } - }); + } } break; case "BanClient": @@ -5352,7 +5364,7 @@ server_Main.prototype = { result[i] = { name : client1.name, id : client1.id, ip : _gthis.clientIp(client1.req), isBanned : (client1.group & 1) != 0, isAdmin : (client1.group & 8) != 0, isLeader : (client1.group & 4) != 0, isUser : (client1.group & 2) != 0}; } var json = server_Main.jsonStringify({ state : data1, clients : result, logs : this.logger.getLogs()},"\t"); - this.send(client,{ type : "ServerMessage", serverMessage : { textId : "Free space: " + tools_MathTools.toFixed(this.cache.getFreeSpace() / 1024) + "KiB"}}); + this.serverMessage(client,"Free space: " + tools_MathTools.toFixed(this.cache.getFreeSpace() / 1024) + "KiB"); this.send(client,{ type : "Dump", dump : { data : json}}); break; case "Flashback": @@ -5763,7 +5775,7 @@ server_Main.prototype = { } var state = client.hasPermission(perm,this.config.permissions); if(!state) { - this.send(client,{ type : "ServerMessage", serverMessage : { textId : "accessError"}}); + this.serverMessage(client,"accessError|" + perm); } return state; } @@ -5785,7 +5797,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 : 1063, className : "server.Main", methodName : "checkBan"}); + haxe_Log.trace("" + client.name + " ban removed",{ fileName : "src/server/Main.hx", lineNumber : 1062, className : "server.Main", methodName : "checkBan"}); this.sendClientList(); } break; diff --git a/res/client.js b/res/client.js index b320491..6cee82b 100644 --- a/res/client.js +++ b/res/client.js @@ -1847,7 +1847,17 @@ client_Main.prototype = { break; case "ServerMessage": var id = data.serverMessage.textId; - this.serverMessage(id == "usernameError" ? StringTools.replace(Lang.get(id),"$MAX","" + this.config.maxLoginLength) : Lang.get(id)); + var text; + if(id == "usernameError") { + text = StringTools.replace(Lang.get(id),"$MAX","" + this.config.maxLoginLength); + } else if(StringTools.startsWith(id,"accessError")) { + var args = id.split("|"); + var err = Lang.get(args[0]); + text = args[1] == null ? "" + err + "." : "" + err + ": " + StringTools.replace(Lang.get("noPermission"),"$PERMISSION",args[1]); + } else { + text = Lang.get(id); + } + this.serverMessage(text); break; case "SetLeader": ClientTools.setLeader(this.clients,data.setLeader.clientName); diff --git a/res/langs/en.json b/res/langs/en.json index 36ff556..b7f8246 100644 --- a/res/langs/en.json +++ b/res/langs/en.json @@ -18,7 +18,8 @@ "hideThisMessage": "Hide this message", "usernameError": "Username length must be from 1 to $MAX characters and don't repeat another's. Characters &^<>'\" are not allowed.", "passwordMatchError": "Wrong password.", - "accessError": "Access Error.", + "accessError": "Access error", + "noPermission": "No '$PERMISSION' permission.", "totalVideoLimitError": "Playlist video limit has been reached.", "userVideoLimitError": "Playlist video limit per user has been reached.", "videoAlreadyExistsError": "The video already exists in playlist.", diff --git a/res/langs/ru.json b/res/langs/ru.json index ec0a642..b98237d 100644 --- a/res/langs/ru.json +++ b/res/langs/ru.json @@ -18,7 +18,8 @@ "hideThisMessage": "Скрыть это сообщение", "usernameError": "Ник должен быть от 1 до $MAX символов и не повторять чужие. Символы &^<>'\" запрещены.", "passwordMatchError": "Неправильный пароль.", - "accessError": "Ошибка доступа.", + "accessError": "Ошибка доступа", + "noPermission": "Нет '$PERMISSION' разрешения.", "totalVideoLimitError": "Был достингут лимит видео в плейлисте.", "userVideoLimitError": "Был достингут лимит видео на пользователя.", "videoAlreadyExistsError": "Видео уже имеется в плейлисте.", diff --git a/src/client/Main.hx b/src/client/Main.hx index 8ed519b..e7f8f30 100644 --- a/src/client/Main.hx +++ b/src/client/Main.hx @@ -506,6 +506,15 @@ class Main { final text = switch (id) { case "usernameError": Lang.get(id).replace("$MAX", '${config.maxLoginLength}'); + case id if (id.startsWith("accessError")): + final args = id.split("|"); + final err = Lang.get(args[0]); + if (args[1] == null) { + '$err.'; + } else { + final permErr = Lang.get("noPermission").replace("$PERMISSION", args[1]); + '$err: $permErr'; + } default: Lang.get(id); } diff --git a/src/server/Main.hx b/src/server/Main.hx index 7c9041f..f5f247e 100644 --- a/src/server/Main.hx +++ b/src/server/Main.hx @@ -691,11 +691,18 @@ class Main { if (!item.doCache) { addVideo(); } else { - cache.cacheYoutubeVideo(client, item.url, (name) -> { - item = item.withUrl(cache.getFileUrl(name)); - if (item.duration > 1) item.duration -= 1; - addVideo(); - }); + switch item.playerType { + case YoutubeType: + cache.cacheYoutubeVideo(client, item.url, (name) -> { + item = item.withUrl(cache.getFileUrl(name)); + if (item.duration > 1) item.duration -= 1; + addVideo(); + }); + case type: + final name = '$type'.replace("Type", ""); + serverMessage(client, 'No cache support for $name player.'); + addVideo(); + } } case VideoLoaded: @@ -942,12 +949,9 @@ class Main { logs: logger.getLogs() } final json = jsonStringify(data, "\t"); - send(client, { - type: ServerMessage, - serverMessage: { - textId: "Free space: " + (cache.getFreeSpace() / 1024).toFixed() + "KiB" - } - }); + serverMessage(client, "Free space: " + + (cache.getFreeSpace() / 1024).toFixed() + + "KiB"); send(client, { type: Dump, dump: { @@ -1037,12 +1041,7 @@ class Main { if (client.isBanned) checkBan(client); final state = client.hasPermission(perm, config.permissions); if (!state) { - send(client, { - type: ServerMessage, - serverMessage: { - textId: "accessError" - } - }); + serverMessage(client, 'accessError|$perm'); } return state; } |
