mirror of
https://github.com/KevinMidboe/zoff.git
synced 2025-10-29 18:00:23 +00:00
107 lines
3.7 KiB
JavaScript
107 lines
3.7 KiB
JavaScript
var Functions = require(pathThumbnails + '/handlers/functions.js');
|
||
var db = require(pathThumbnails + '/handlers/db.js');
|
||
function frontpage_lists(msg, socket) {
|
||
if(msg == undefined || !msg.hasOwnProperty('version') || msg.version != VERSION || msg.version == undefined) {
|
||
var result = {
|
||
version: {
|
||
expected: VERSION,
|
||
got: msg.hasOwnProperty("version") ? msg.version : undefined,
|
||
}
|
||
};
|
||
socket.emit('update_required', result);
|
||
return;
|
||
}
|
||
|
||
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.length});
|
||
});
|
||
});
|
||
}
|
||
|
||
function get_frontpage_lists(callback) {
|
||
var project_object = {
|
||
"_id": 1,
|
||
"count": 1,
|
||
"frontpage": 1,
|
||
"id": 1,
|
||
"title": 1,
|
||
"viewers": 1,
|
||
"accessed": 1,
|
||
"pinned": { $ifNull: [ "$pinned", 0 ] },
|
||
"description": {
|
||
$ifNull: [ {$cond: {
|
||
"if": {
|
||
"$or": [
|
||
{ "$eq": [ "$description", ""] },
|
||
{ "$eq": [ "$description", null] },
|
||
{ "$eq": [ "$description", undefined] }
|
||
]
|
||
},
|
||
then: "This list has no description",
|
||
else: "$description"
|
||
}}, "This list has no description"]
|
||
|
||
},
|
||
"thumbnail": {
|
||
$ifNull: [ {$cond: {
|
||
"if": {
|
||
"$or": [
|
||
{ "$eq": [ "$thumbnail", ""] },
|
||
{ "$eq": [ "$thumbnail", null] },
|
||
{ "$eq": [ "$thumbnail", undefined] }
|
||
]
|
||
},
|
||
then: {
|
||
$concat : [ "https://img.youtube.com/vi/", "$id", "/mqdefault.jpg"]
|
||
},
|
||
else: "$thumbnail"
|
||
}}, { $concat : [ "https://img.youtube.com/vi/", "$id", "/mqdefault.jpg"]}]
|
||
|
||
}
|
||
};
|
||
db.collection("frontpage_lists").aggregate([
|
||
{
|
||
"$match": {
|
||
frontpage: true,
|
||
count: {$gt: 3},
|
||
}
|
||
},
|
||
{
|
||
"$project": project_object
|
||
},
|
||
{
|
||
"$sort" : {
|
||
"pinned": -1,
|
||
"viewers": -1,
|
||
"accessed": -1,
|
||
"count": -1,
|
||
"title": 1
|
||
}
|
||
},
|
||
], callback);
|
||
}
|
||
|
||
function update_frontpage(coll, id, title, thumbnail, source, callback) {
|
||
//coll = coll.replace(/ /g,'');
|
||
db.collection("frontpage_lists").find({_id: coll}, function(e, doc) {
|
||
var updateObject = {
|
||
id: id,
|
||
title: title,
|
||
accessed: Functions.get_time()
|
||
};
|
||
if(doc.length > 0 && ((doc[0].thumbnail != "" && doc[0].thumbnail != undefined && (doc[0].thumbnail.indexOf("https://i1.sndcdn.com") > -1 || doc[0].thumbnail.indexOf("https://w1.sndcdn.com") > -1 || doc[0].thumbnail.indexOf("https://img.youtube.com") > -1)) || (doc[0].thumbnail == "" || doc[0].thumbnail == undefined))) {
|
||
updateObject.thumbnail = thumbnail;
|
||
if(thumbnail == undefined) updateObject.thumbnail = "";
|
||
}
|
||
db.collection("frontpage_lists").update({_id: coll}, {$set: updateObject
|
||
},{upsert: true}, function(err, returnDocs){
|
||
if(typeof(callback) == "function") callback();
|
||
});
|
||
});
|
||
}
|
||
|
||
module.exports.get_frontpage_lists = get_frontpage_lists;
|
||
module.exports.frontpage_lists = frontpage_lists;
|
||
module.exports.update_frontpage = update_frontpage;
|