mirror of https://github.com/calzoneman/sync.git
better handling of comma-separated queues
This commit is contained in:
parent
4c38276f14
commit
d3079a2b07
48
channel.js
48
channel.js
|
@ -1123,10 +1123,13 @@ Channel.prototype.tryQueue = function(user, data) {
|
||||||
if(!this.hasPermission(user, "playlistadd")) {
|
if(!this.hasPermission(user, "playlistadd")) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(data.pos == undefined || data.id == undefined) {
|
if(typeof data.pos !== "string") {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(data.type == undefined && !(data.id in this.library)) {
|
if(typeof data.id !== "string" && data.id !== false) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(typeof data.type !== "string" && !(data.id in this.library)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1140,24 +1143,14 @@ Channel.prototype.tryQueue = function(user, data) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.enqueue(data, user);
|
if(data.list)
|
||||||
|
this.enqueueList(data, user);
|
||||||
|
else
|
||||||
|
this.enqueue(data, user);
|
||||||
}
|
}
|
||||||
|
|
||||||
Channel.prototype.tryQueuePlaylist = function(user, data) {
|
Channel.prototype.enqueueList = function(data, user) {
|
||||||
if(!this.hasPermission(user, "playlistaddlist")) {
|
var pl = data.list;
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(typeof data.name != "string" ||
|
|
||||||
typeof data.pos != "string") {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(data.pos == "next" && !this.hasPermission(user, "playlistnext")) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var pl = Database.loadUserPlaylist(user.name, data.name);
|
|
||||||
var chan = this;
|
var chan = this;
|
||||||
// Queue in reverse order for qnext
|
// Queue in reverse order for qnext
|
||||||
if(data.pos == "next") {
|
if(data.pos == "next") {
|
||||||
|
@ -1184,6 +1177,25 @@ Channel.prototype.tryQueuePlaylist = function(user, data) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Channel.prototype.tryQueuePlaylist = function(user, data) {
|
||||||
|
if(!this.hasPermission(user, "playlistaddlist")) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(typeof data.name != "string" ||
|
||||||
|
typeof data.pos != "string") {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(data.pos == "next" && !this.hasPermission(user, "playlistnext")) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var pl = Database.loadUserPlaylist(user.name, data.name);
|
||||||
|
data.list = pl;
|
||||||
|
this.enqueueList(data, user);
|
||||||
|
}
|
||||||
|
|
||||||
Channel.prototype.setTemp = function(idx, temp) {
|
Channel.prototype.setTemp = function(idx, temp) {
|
||||||
var med = this.queue[idx];
|
var med = this.queue[idx];
|
||||||
med.temp = temp;
|
med.temp = temp;
|
||||||
|
|
|
@ -190,6 +190,7 @@ function queue(pos) {
|
||||||
if(pos == "next") {
|
if(pos == "next") {
|
||||||
links = links.reverse();
|
links = links.reverse();
|
||||||
}
|
}
|
||||||
|
var parsed = [];
|
||||||
links.forEach(function(link) {
|
links.forEach(function(link) {
|
||||||
var data = parseMediaLink(link);
|
var data = parseMediaLink(link);
|
||||||
if(data.id === null || data.type === null) {
|
if(data.id === null || data.type === null) {
|
||||||
|
@ -200,12 +201,24 @@ function queue(pos) {
|
||||||
else {
|
else {
|
||||||
$("#mediaurl").val("");
|
$("#mediaurl").val("");
|
||||||
}
|
}
|
||||||
socket.emit("queue", {
|
parsed.push({
|
||||||
id: data.id,
|
id: data.id,
|
||||||
type: data.type,
|
type: data.type
|
||||||
pos: "end"
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if(parsed.length > 1) {
|
||||||
|
socket.emit("queue", {
|
||||||
|
id: false,
|
||||||
|
list: parsed,
|
||||||
|
type: "list",
|
||||||
|
pos: pos
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
parsed[0].pos = pos;
|
||||||
|
socket.emit("queue", parsed[0]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$("#queue_next").click(function() {
|
$("#queue_next").click(function() {
|
||||||
|
|
Loading…
Reference in New Issue