mirror of https://github.com/calzoneman/sync.git
Playlist seems to be working
This commit is contained in:
parent
0611a6b0a6
commit
562a58abda
125
channel.js
125
channel.js
|
@ -142,7 +142,7 @@ Channel.prototype.loadDump = function() {
|
||||||
fs.readFile("chandump/" + this.name, function(err, data) {
|
fs.readFile("chandump/" + this.name, function(err, data) {
|
||||||
if(err) {
|
if(err) {
|
||||||
if(err.code == "ENOENT") {
|
if(err.code == "ENOENT") {
|
||||||
Logger.errlog.log("WARN: missing dump for " + this.name);
|
Logger.errlog.log("WARN: missing dump for.Media " + this.name);
|
||||||
this.initialized = true;
|
this.initialized = true;
|
||||||
this.saveDump();
|
this.saveDump();
|
||||||
}
|
}
|
||||||
|
@ -155,7 +155,6 @@ Channel.prototype.loadDump = function() {
|
||||||
try {
|
try {
|
||||||
this.logger.log("*** Loading channel dump from disk");
|
this.logger.log("*** Loading channel dump from disk");
|
||||||
data = JSON.parse(data);
|
data = JSON.parse(data);
|
||||||
// TODO fix loading
|
|
||||||
if(data.queue) {
|
if(data.queue) {
|
||||||
for(var i = 0; i < data.queue.length; i++) {
|
for(var i = 0; i < data.queue.length; i++) {
|
||||||
var e = data.queue[i];
|
var e = data.queue[i];
|
||||||
|
@ -166,24 +165,22 @@ Channel.prototype.loadDump = function() {
|
||||||
if(e.temp !== undefined) {
|
if(e.temp !== undefined) {
|
||||||
p.temp = e.temp;
|
p.temp = e.temp;
|
||||||
}
|
}
|
||||||
//this.playlist.append(p);
|
this.playlist.append(p);
|
||||||
}
|
|
||||||
}
|
|
||||||
else if(data.playlist) {
|
|
||||||
//TODO fix
|
|
||||||
this.playlist.current = this.playlist.find(data.currentUID) || null;
|
|
||||||
}
|
}
|
||||||
this.sendAll("playlist", this.playlist.toArray());
|
this.sendAll("playlist", this.playlist.toArray());
|
||||||
|
if(this.playlist.current)
|
||||||
|
this.sendAll("setCurrent", this.playlist.current.uid);
|
||||||
this.broadcastPlaylistMeta();
|
this.broadcastPlaylistMeta();
|
||||||
// Backwards compatibility
|
|
||||||
if(data.currentPosition != undefined) {
|
|
||||||
this.position = data.currentPosition - 1;
|
|
||||||
}
|
}
|
||||||
else {
|
else if(data.playlist) {
|
||||||
this.position = data.position - 1;
|
var chan = this;
|
||||||
|
this.playlist.load(data.playlist, function() {
|
||||||
|
chan.sendAll("playlist", chan.playlist.toArray());
|
||||||
|
if(chan.playlist.current)
|
||||||
|
chan.sendAll("setCurrent", chan.playlist.current.uid);
|
||||||
|
chan.broadcastPlaylistMeta();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
if(this.position < -1)
|
|
||||||
this.position = -1;
|
|
||||||
for(var key in data.opts) {
|
for(var key in data.opts) {
|
||||||
// Gotta love backwards compatibility
|
// Gotta love backwards compatibility
|
||||||
if(key == "customcss" || key == "customjs") {
|
if(key == "customcss" || key == "customjs") {
|
||||||
|
@ -234,7 +231,7 @@ Channel.prototype.loadDump = function() {
|
||||||
}
|
}
|
||||||
catch(e) {
|
catch(e) {
|
||||||
Logger.errlog.log("Channel dump load failed: ");
|
Logger.errlog.log("Channel dump load failed: ");
|
||||||
Logger.errlog.log(e);
|
Logger.errlog.log(e.stack);
|
||||||
}
|
}
|
||||||
}.bind(this));
|
}.bind(this));
|
||||||
}
|
}
|
||||||
|
@ -249,7 +246,7 @@ Channel.prototype.saveDump = function() {
|
||||||
var dump = {
|
var dump = {
|
||||||
position: this.position,
|
position: this.position,
|
||||||
currentTime: this.media ? this.media.currentTime : 0,
|
currentTime: this.media ? this.media.currentTime : 0,
|
||||||
playlist: this.playlist.toArray(),
|
playlist: this.playlist.dump(),
|
||||||
opts: this.opts,
|
opts: this.opts,
|
||||||
permissions: this.permissions,
|
permissions: this.permissions,
|
||||||
filters: filts,
|
filters: filts,
|
||||||
|
@ -731,6 +728,8 @@ Channel.prototype.sendChannelRanks = function(user) {
|
||||||
|
|
||||||
Channel.prototype.sendPlaylist = function(user) {
|
Channel.prototype.sendPlaylist = function(user) {
|
||||||
user.socket.emit("playlist", this.playlist.toArray());
|
user.socket.emit("playlist", this.playlist.toArray());
|
||||||
|
if(this.playlist.current)
|
||||||
|
user.socket.emit("setCurrent", this.playlist.current.uid);
|
||||||
user.socket.emit("setPlaylistMeta", this.plmeta);
|
user.socket.emit("setPlaylistMeta", this.plmeta);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1007,21 +1006,20 @@ function isLive(type) {
|
||||||
}
|
}
|
||||||
|
|
||||||
Channel.prototype.queueAdd = function(item, after) {
|
Channel.prototype.queueAdd = function(item, after) {
|
||||||
if(after === "prepend")
|
var chan = this;
|
||||||
this.playlist.prepend(item);
|
function afterAdd() {
|
||||||
else if(after === "append")
|
chan.sendAll("queue", {
|
||||||
this.playlist.append(item);
|
|
||||||
else
|
|
||||||
this.playlist.insertAfter(item, after);
|
|
||||||
|
|
||||||
this.sendAll("queue", {
|
|
||||||
item: item.pack(),
|
item: item.pack(),
|
||||||
after: after
|
after: after
|
||||||
});
|
});
|
||||||
|
chan.broadcastPlaylistMeta();
|
||||||
this.broadcastPlaylistMeta();
|
}
|
||||||
if(this.playlist.length == 1)
|
if(after === "prepend")
|
||||||
this.sendAll("changeMedia", this.playlist.current.media.fullupdate());
|
this.playlist.prepend(item, afterAdd);
|
||||||
|
else if(after === "append")
|
||||||
|
this.playlist.append(item, afterAdd);
|
||||||
|
else
|
||||||
|
this.playlist.insertAfter(item, after, afterAdd);
|
||||||
}
|
}
|
||||||
|
|
||||||
Channel.prototype.autoTemp = function(item, user) {
|
Channel.prototype.autoTemp = function(item, user) {
|
||||||
|
@ -1075,7 +1073,7 @@ Channel.prototype.enqueue = function(data, user, callback) {
|
||||||
user.socket.emit("queueFail", err);
|
user.socket.emit("queueFail", err);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var item = this.playlist.makeItem(item);
|
var item = this.playlist.makeItem(media);
|
||||||
item.queueby = user ? user.name : "";
|
item.queueby = user ? user.name : "";
|
||||||
this.autoTemp(item, user);
|
this.autoTemp(item, user);
|
||||||
this.queueAdd(item, after);
|
this.queueAdd(item, after);
|
||||||
|
@ -1245,7 +1243,7 @@ Channel.prototype.setTemp = function(uid, temp) {
|
||||||
});
|
});
|
||||||
|
|
||||||
if(!temp) {
|
if(!temp) {
|
||||||
this.cacheMedia(m);
|
this.cacheMedia(item.media);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1261,10 +1259,13 @@ Channel.prototype.trySetTemp = function(user, data) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Channel.prototype.dequeue = function(uid, removeonly) {
|
Channel.prototype.dequeue = function(uid) {
|
||||||
if(!this.playlist.remove(uid, true))
|
var chan = this;
|
||||||
|
function afterDelete() {
|
||||||
|
chan.broadcastPlaylistMeta();
|
||||||
|
}
|
||||||
|
if(!this.playlist.remove(uid, true, afterDelete))
|
||||||
return;
|
return;
|
||||||
this.broadcastPlaylistMeta();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Channel.prototype.tryDequeue = function(user, data) {
|
Channel.prototype.tryDequeue = function(user, data) {
|
||||||
|
@ -1290,22 +1291,8 @@ Channel.prototype.tryUncache = function(user, data) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Channel.prototype.resetVideoMeta = function() {
|
|
||||||
this.voteskip = false;
|
|
||||||
this.broadcastVoteskipUpdate();
|
|
||||||
this.drinks = 0;
|
|
||||||
this.broadcastDrinks();
|
|
||||||
if(this.playlist.current) {
|
|
||||||
this.playlist.current.media["currentTime"];
|
|
||||||
this.playlist.current.media["paused"];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Channel.prototype.playNext = function() {
|
Channel.prototype.playNext = function() {
|
||||||
this.resetVideoMeta();
|
|
||||||
this.playlist.next();
|
this.playlist.next();
|
||||||
if(this.playlist.current)
|
|
||||||
this.sendAll("changeMedia", this.playlist.current.media.fullupdate());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Channel.prototype.tryPlayNext = function(user) {
|
Channel.prototype.tryPlayNext = function(user) {
|
||||||
|
@ -1317,20 +1304,7 @@ Channel.prototype.tryPlayNext = function(user) {
|
||||||
}
|
}
|
||||||
|
|
||||||
Channel.prototype.jumpTo = function(uid) {
|
Channel.prototype.jumpTo = function(uid) {
|
||||||
this.resetVideoMeta();
|
return this.playlist.jump(uid);
|
||||||
var oid = this.playlist.current ? this.playlist.current.uid : -1;
|
|
||||||
if(!this.playlist.jump(uid))
|
|
||||||
return;
|
|
||||||
|
|
||||||
this.sendAll("changeMedia", this.playlist.current.media.fullupdate());
|
|
||||||
|
|
||||||
// If it's not a livestream, enable autolead
|
|
||||||
if(this.leader == null && !isLive(this.playlist.current.media.type)) {
|
|
||||||
this.time = new Date().getTime();
|
|
||||||
if(this.playlist.current.media.uid != oid) {
|
|
||||||
//mediaUpdate(this, this.playlist.current.media);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Channel.prototype.tryJumpTo = function(user, data) {
|
Channel.prototype.tryJumpTo = function(user, data) {
|
||||||
|
@ -1408,35 +1382,20 @@ Channel.prototype.tryUpdate = function(user, data) {
|
||||||
}
|
}
|
||||||
|
|
||||||
Channel.prototype.move = function(data, user) {
|
Channel.prototype.move = function(data, user) {
|
||||||
var item = this.playlist.find(data.from);
|
var chan = this;
|
||||||
if(!this.playlist.remove(data.from)) {
|
function afterMove() {
|
||||||
console.log("remove failed");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(data.after === "prepend") {
|
|
||||||
if(!this.playlist.prepend(item)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if(data.after === "append") {
|
|
||||||
if(!this.playlist.append(item)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if(!this.playlist.insertAfter(item, data.after)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var moveby = user && user.name ? user.name : null;
|
var moveby = user && user.name ? user.name : null;
|
||||||
if(typeof data.moveby !== "undefined")
|
if(typeof data.moveby !== "undefined")
|
||||||
moveby = data.moveby;
|
moveby = data.moveby;
|
||||||
|
|
||||||
this.sendAll("moveVideo", {
|
chan.sendAll("moveVideo", {
|
||||||
from: data.from,
|
from: data.from,
|
||||||
after: data.after,
|
after: data.after,
|
||||||
moveby: moveby
|
moveby: moveby
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
this.playlist.move(data.from, data.after, afterMove);
|
||||||
}
|
}
|
||||||
|
|
||||||
Channel.prototype.tryMove = function(user, data) {
|
Channel.prototype.tryMove = function(user, data) {
|
||||||
|
|
|
@ -867,10 +867,10 @@ function saveUserPlaylist(pl, user, name) {
|
||||||
var time = 0;
|
var time = 0;
|
||||||
for(var i = 0; i < pl.length; i++) {
|
for(var i = 0; i < pl.length; i++) {
|
||||||
var e = {
|
var e = {
|
||||||
id: pl[i].id,
|
id: pl[i].media.id,
|
||||||
type: pl[i].type
|
type: pl[i].media.type
|
||||||
};
|
};
|
||||||
time += pl[i].seconds;
|
time += pl[i].media.seconds;
|
||||||
pl2.push(e);
|
pl2.push(e);
|
||||||
}
|
}
|
||||||
var count = pl2.length;
|
var count = pl2.length;
|
||||||
|
|
|
@ -254,7 +254,7 @@ exports.getMedia = function(id, type, callback) {
|
||||||
}
|
}
|
||||||
catch(e) {
|
catch(e) {
|
||||||
Logger.errlog.log("getMedia failed: ");
|
Logger.errlog.log("getMedia failed: ");
|
||||||
Logger.errlog.log(e);
|
Logger.errlog.log(e.stack);
|
||||||
callback(true, null);
|
callback(true, null);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
111
playlist.js
111
playlist.js
|
@ -1,3 +1,5 @@
|
||||||
|
var Media = require("./media").Media;
|
||||||
|
|
||||||
function PlaylistItem(media, uid) {
|
function PlaylistItem(media, uid) {
|
||||||
this.media = media;
|
this.media = media;
|
||||||
this.uid = uid;
|
this.uid = uid;
|
||||||
|
@ -9,7 +11,7 @@ function PlaylistItem(media, uid) {
|
||||||
|
|
||||||
PlaylistItem.prototype.pack = function() {
|
PlaylistItem.prototype.pack = function() {
|
||||||
return {
|
return {
|
||||||
media: this.media,
|
media: this.media.pack(),
|
||||||
uid: this.uid,
|
uid: this.uid,
|
||||||
temp: this.temp,
|
temp: this.temp,
|
||||||
queueby: this.queueby
|
queueby: this.queueby
|
||||||
|
@ -49,6 +51,49 @@ function Playlist(chan) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Playlist.prototype.dump = function() {
|
||||||
|
var arr = [];
|
||||||
|
var item = this.first;
|
||||||
|
var i = 0;
|
||||||
|
var pos = 0;
|
||||||
|
while(item != null) {
|
||||||
|
arr.push(item.pack());
|
||||||
|
if(item == this.current)
|
||||||
|
pos = i;
|
||||||
|
i++;
|
||||||
|
item = item.next;
|
||||||
|
}
|
||||||
|
|
||||||
|
var time = 0;
|
||||||
|
if(this.current)
|
||||||
|
time = this.current.media.currentTime;
|
||||||
|
|
||||||
|
return {
|
||||||
|
pl: arr,
|
||||||
|
pos: pos,
|
||||||
|
time: time
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
Playlist.prototype.load = function(data, callback) {
|
||||||
|
this.clear();
|
||||||
|
for(var i in data.pl) {
|
||||||
|
var e = data.pl[i].media;
|
||||||
|
var m = new Media(e.id, e.title, e.seconds, e.type);
|
||||||
|
var it = this.makeItem(m);
|
||||||
|
it.temp = data.pl[i].temp;
|
||||||
|
it.queueby = data.pl[i].queueby;
|
||||||
|
this._append(it);
|
||||||
|
if(i == parseInt(data.pos)) {
|
||||||
|
this.current = it;
|
||||||
|
this.startPlayback(data.time);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(callback)
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
|
||||||
Playlist.prototype.on = function(ev, fn) {
|
Playlist.prototype.on = function(ev, fn) {
|
||||||
if(typeof fn === "undefined") {
|
if(typeof fn === "undefined") {
|
||||||
var pl = this;
|
var pl = this;
|
||||||
|
@ -83,7 +128,13 @@ Playlist.prototype.find = function(uid) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Playlist.prototype.prepend = function(plitem) {
|
Playlist.prototype.prepend = function(plitem, callback) {
|
||||||
|
this._prepend(plitem, callback);
|
||||||
|
if(this.length == 1)
|
||||||
|
this.startPlayback();
|
||||||
|
}
|
||||||
|
|
||||||
|
Playlist.prototype._prepend = function(plitem, callback) {
|
||||||
if(this.first !== null) {
|
if(this.first !== null) {
|
||||||
plitem.next = this.first;
|
plitem.next = this.first;
|
||||||
this.first.prev = plitem;
|
this.first.prev = plitem;
|
||||||
|
@ -92,15 +143,22 @@ Playlist.prototype.prepend = function(plitem) {
|
||||||
else {
|
else {
|
||||||
this.current = plitem;
|
this.current = plitem;
|
||||||
this.last = plitem;
|
this.last = plitem;
|
||||||
this.startPlayback();
|
|
||||||
}
|
}
|
||||||
this.first = plitem;
|
this.first = plitem;
|
||||||
this.first.prev = null;
|
this.first.prev = null;
|
||||||
this.length++;
|
this.length++;
|
||||||
|
if(callback)
|
||||||
|
callback();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
Playlist.prototype.append = function(plitem) {
|
Playlist.prototype.append = function(plitem, callback) {
|
||||||
|
this._append(plitem, callback);
|
||||||
|
if(this.length == 1)
|
||||||
|
this.startPlayback();
|
||||||
|
}
|
||||||
|
|
||||||
|
Playlist.prototype._append = function(plitem, callback) {
|
||||||
if(this.last != null) {
|
if(this.last != null) {
|
||||||
plitem.prev = this.last;
|
plitem.prev = this.last;
|
||||||
this.last.next = plitem;
|
this.last.next = plitem;
|
||||||
|
@ -109,15 +167,20 @@ Playlist.prototype.append = function(plitem) {
|
||||||
else {
|
else {
|
||||||
this.first = plitem;
|
this.first = plitem;
|
||||||
this.current = plitem;
|
this.current = plitem;
|
||||||
this.startPlayback();
|
|
||||||
}
|
}
|
||||||
this.last = plitem;
|
this.last = plitem;
|
||||||
this.last.next = null;
|
this.last.next = null;
|
||||||
this.length++;
|
this.length++;
|
||||||
|
if(callback)
|
||||||
|
callback();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
Playlist.prototype.insertAfter = function(plitem, uid) {
|
Playlist.prototype.insertAfter = function(plitem, uid, callback) {
|
||||||
|
this._insertAfter(plitem, uid, callback);
|
||||||
|
}
|
||||||
|
|
||||||
|
Playlist.prototype._insertAfter = function(plitem, uid, callback) {
|
||||||
var item = this.find(uid);
|
var item = this.find(uid);
|
||||||
|
|
||||||
if(item) {
|
if(item) {
|
||||||
|
@ -128,6 +191,8 @@ Playlist.prototype.insertAfter = function(plitem, uid) {
|
||||||
this.last = plitem;
|
this.last = plitem;
|
||||||
}
|
}
|
||||||
this.length++;
|
this.length++;
|
||||||
|
if(callback)
|
||||||
|
callback();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -135,6 +200,11 @@ Playlist.prototype.insertAfter = function(plitem, uid) {
|
||||||
}
|
}
|
||||||
|
|
||||||
Playlist.prototype.remove = function(uid, next) {
|
Playlist.prototype.remove = function(uid, next) {
|
||||||
|
this._remove(uid, next);
|
||||||
|
this.on("remove")(item);
|
||||||
|
}
|
||||||
|
|
||||||
|
Playlist.prototype._remove = function(uid, next) {
|
||||||
var item = this.find(uid);
|
var item = this.find(uid);
|
||||||
if(!item)
|
if(!item)
|
||||||
return false;
|
return false;
|
||||||
|
@ -149,8 +219,6 @@ Playlist.prototype.remove = function(uid, next) {
|
||||||
if(item.next)
|
if(item.next)
|
||||||
item.next.prev = item.prev;
|
item.next.prev = item.prev;
|
||||||
|
|
||||||
this.on("remove")(item);
|
|
||||||
|
|
||||||
if(this.current == item && next)
|
if(this.current == item && next)
|
||||||
this._next();
|
this._next();
|
||||||
|
|
||||||
|
@ -158,6 +226,27 @@ Playlist.prototype.remove = function(uid, next) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Playlist.prototype.move = function(from, after, callback) {
|
||||||
|
var it = this.find(from);
|
||||||
|
if(!this._remove(from))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if(after === "prepend") {
|
||||||
|
if(!this._prepend(it))
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
else if(after === "append") {
|
||||||
|
if(!this._append(it))
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
else if(!this._insertAfter(it, after))
|
||||||
|
return;
|
||||||
|
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
|
||||||
Playlist.prototype.next = function() {
|
Playlist.prototype.next = function() {
|
||||||
if(!this.current)
|
if(!this.current)
|
||||||
return;
|
return;
|
||||||
|
@ -240,9 +329,9 @@ Playlist.prototype.lead = function(lead) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Playlist.prototype.startPlayback = function() {
|
Playlist.prototype.startPlayback = function(time) {
|
||||||
this.current.media.paused = true;
|
this.current.media.paused = true;
|
||||||
this.current.media.currentTime = -2;
|
this.current.media.currentTime = time || -2;
|
||||||
var pl = this;
|
var pl = this;
|
||||||
setTimeout(function() {
|
setTimeout(function() {
|
||||||
if(!pl.current)
|
if(!pl.current)
|
||||||
|
@ -251,6 +340,7 @@ Playlist.prototype.startPlayback = function() {
|
||||||
pl.on("mediaUpdate")(pl.current.media);
|
pl.on("mediaUpdate")(pl.current.media);
|
||||||
}, 2000);
|
}, 2000);
|
||||||
if(this.leading && !this._leadInterval && !isLive(this.current.media.type)) {
|
if(this.leading && !this._leadInterval && !isLive(this.current.media.type)) {
|
||||||
|
this._lastUpdate = Date.now();
|
||||||
this._leadInterval = setInterval(function() {
|
this._leadInterval = setInterval(function() {
|
||||||
pl._leadLoop();
|
pl._leadLoop();
|
||||||
}, 1000);
|
}, 1000);
|
||||||
|
@ -281,7 +371,6 @@ Playlist.prototype._leadLoop = function() {
|
||||||
this.current.media.currentTime += (Date.now() - this._lastUpdate) / 1000.0;
|
this.current.media.currentTime += (Date.now() - this._lastUpdate) / 1000.0;
|
||||||
this._lastUpdate = Date.now();
|
this._lastUpdate = Date.now();
|
||||||
this._counter++;
|
this._counter++;
|
||||||
console.log("lead", this._counter);
|
|
||||||
|
|
||||||
if(this.current.media.currentTime >= this.current.media.seconds + 2) {
|
if(this.current.media.currentTime >= this.current.media.seconds + 2) {
|
||||||
this.next();
|
this.next();
|
||||||
|
|
2
user.js
2
user.js
|
@ -484,7 +484,7 @@ User.prototype.initCallbacks = function() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var pl = this.channel.queue;
|
var pl = this.channel.playlist.toArray();
|
||||||
var result = Database.saveUserPlaylist(pl, this.name, data.name);
|
var result = Database.saveUserPlaylist(pl, this.name, data.name);
|
||||||
this.socket.emit("savePlaylist", {
|
this.socket.emit("savePlaylist", {
|
||||||
success: result,
|
success: result,
|
||||||
|
|
Loading…
Reference in New Issue