mirror of
https://github.com/KevinMidboe/zoff.git
synced 2025-10-29 18:00:23 +00:00
Fix for offline-listeners overflooding total viewers
This commit is contained in:
@@ -5,7 +5,7 @@ function frontpage_lists(msg, socket) {
|
||||
|
||||
db.collection("frontpage_lists").find({frontpage:true}, function(err, docs){
|
||||
db.collection("connected_users").find({"_id": "total_users"}, function(err, tot){
|
||||
socket.compress(true).emit("playlists", {channels: docs, viewers: tot[0].total_users});
|
||||
socket.compress(true).emit("playlists", {channels: docs, viewers: tot[0].total_users.length});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
@@ -41,15 +41,20 @@ function check_inlist(coll, guid, socket, offline)
|
||||
socket.broadcast.to(coll).emit('chat', {from: docs[0].name, msg: " joined"});
|
||||
}
|
||||
});
|
||||
db.collection("connected_users").update({"_id": "total_users"}, {$inc: {total_users: 1}}, function(err, docs){});
|
||||
db.collection("connected_users").update({"_id": "total_users"}, {$addToSet: {total_users: guid + coll}}, function(err, docs){});
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
} else {
|
||||
db.collection("connected_users").update({"_id": coll}, {$addToSet: {users: guid}}, function(err, docs){});
|
||||
db.collection("connected_users").update({"_id": "total_users"}, {$inc: {total_users: 1}}, function(err, docs) {});
|
||||
if(offline) {
|
||||
db.collection("connected_users").update({"_id": "offline_users"}, {$addToSet: {users: guid}}, function(err, docs){});
|
||||
} else {
|
||||
db.collection("connected_users").update({"_id": coll}, {$addToSet: {users: guid}}, function(err, docs){});
|
||||
}
|
||||
//
|
||||
db.collection("connected_users").update({"_id": "total_users"}, {$addToSet: {total_users: guid + coll}}, function(err, docs) {});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ module.exports = function() {
|
||||
});
|
||||
}
|
||||
|
||||
db.collection("connected_users").update({"_id": "total_users"}, {$inc: {total_users: 1}}, {upsert: true}, function(err, docs){});
|
||||
db.collection("connected_users").update({"_id": "total_users"}, {$addToSet: {total_users: guid + channel}}, {upsert: true}, function(err, docs){});
|
||||
});
|
||||
|
||||
socket.on('chromecast', function(msg) {
|
||||
@@ -76,9 +76,9 @@ module.exports = function() {
|
||||
db.collection("connected_users").find({"_id": "offline_users"}, function(err, off) {
|
||||
db.collection("connected_users").find({"_id": {$ne: "total_users"}, "_id": {$ne: "offline_users"}}, function(err, users_list) {
|
||||
if(tot.length > 0 && off.length == 0) {
|
||||
socket.emit("spread_listeners", {offline: 0, total: tot[0].total_users, online_users: users_list});
|
||||
socket.emit("spread_listeners", {offline: 0, total: tot[0].total_users.length, online_users: users_list});
|
||||
} else if(tot.length > 0 && off.length > 0){
|
||||
socket.emit("spread_listeners", {offline: off[0].users.length, total: tot[0].total_users, online_users: users_list});
|
||||
socket.emit("spread_listeners", {offline: off[0].users.length, total: tot[0].total_users.length, online_users: users_list});
|
||||
}
|
||||
});
|
||||
});
|
||||
@@ -117,6 +117,7 @@ module.exports = function() {
|
||||
offline = true;
|
||||
if(channel != "") coll = channel;
|
||||
if(coll !== undefined) {
|
||||
|
||||
db.collection("connected_users").findAndModify({
|
||||
query: {"_id": coll},
|
||||
update: {$pull: {users: guid}},
|
||||
@@ -129,10 +130,10 @@ module.exports = function() {
|
||||
}
|
||||
io.to(coll).emit("viewers", num);
|
||||
db.collection("frontpage_lists").update({"_id": coll, "viewers": {$gt: 0}}, {$inc: {viewers: -1}}, function(err, docs) { });
|
||||
db.collection("connected_users").update({"_id": "total_users", total_users: {$gt: 0}}, {$inc: {total_users: -1}}, function(err, docs){
|
||||
db.collection("connected_users").update({"_id": "total_users"}, {$pull: {total_users: guid + coll}}, function(err, docs){
|
||||
db.collection("connected_users").update({"_id": "offline_users"}, {$addToSet: {users: guid}}, function(err, docs) {
|
||||
if(docs.nModified == 1) {
|
||||
db.collection("connected_users").update({"_id": "total_users"}, {$inc: {total_users: 1}}, function(err, docs) {});
|
||||
db.collection("connected_users").update({"_id": "total_users"}, {$addToSet: {total_users: guid + coll}}, function(err, docs) {});
|
||||
}
|
||||
});
|
||||
});
|
||||
@@ -146,7 +147,7 @@ module.exports = function() {
|
||||
offline = false;
|
||||
db.collection("connected_users").update({"_id": "offline_users"}, {$pull: {users: guid}}, function(err, docs) {
|
||||
if(docs.n && docs.n == 1) {
|
||||
db.collection("connected_users").update({"_id": "total_users", "total_users": {$gt: 0}}, {$inc: {total_users: -1}}, function(err, docs){});
|
||||
db.collection("connected_users").update({"_id": "total_users"}, {$addToSet: {total_users: guid + channel}}, function(err, docs){});
|
||||
}
|
||||
Functions.check_inlist(coll, guid, socket, offline);
|
||||
});
|
||||
@@ -194,6 +195,10 @@ module.exports = function() {
|
||||
} catch(e) {
|
||||
return;
|
||||
}
|
||||
|
||||
if(msg.hasOwnProperty("offline") && msg.offline) {
|
||||
offline = true;
|
||||
}
|
||||
List.list(msg, guid, coll, offline, socket);
|
||||
Functions.get_short_id(socket);
|
||||
});
|
||||
|
||||
@@ -500,7 +500,7 @@ function left_channel(coll, guid, short_id, in_list, socket, change)
|
||||
io.to(coll).emit("viewers", new_doc[0].users.length);
|
||||
socket.leave(coll);
|
||||
});
|
||||
db.collection("connected_users").update({"_id": "total_users", total_users: {$gt: 0}}, {$inc: {total_users: -1}}, function(err, updated){});
|
||||
db.collection("connected_users").update({"_id": "total_users"}, {$pull: {total_users: guid + coll}}, function(err, updated){});
|
||||
|
||||
if(!change) {
|
||||
Functions.remove_name_from_db(guid, name);
|
||||
|
||||
Reference in New Issue
Block a user