aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--build/server.js30
-rw-r--r--res/client.js12
-rw-r--r--res/langs/en.json3
-rw-r--r--res/langs/ru.json3
-rw-r--r--src/client/Main.hx9
-rw-r--r--src/server/Main.hx33
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;
}
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage