Compare commits

..

16 Commits

Author SHA1 Message Date
Kasper Rynning-Tønnesen
9ed72c0cc0 Added by on suggested songs 2019-08-07 16:12:56 +02:00
Kasper Rynning-Tønnesen
ad8bc0c05b Fixed remote issue 2019-08-05 12:24:59 +02:00
Kasper Rynning-Tønnesen
9993a377b8 Merge pull request #522 from zoff-music/fix/520
Other channel is the counter and deciding part
2019-07-31 13:18:39 +02:00
Kasper Rynning-Tønnesen
0213c5fe0a Other channel is the counter and deciding part 2019-07-31 13:18:17 +02:00
Kasper Rynning-Tønnesen
d820b2daba Merge pull request #521 from zoff-music/fix/520
Closes #520
2019-07-31 13:03:12 +02:00
Kasper Rynning-Tønnesen
3739a15049 Closes #520 2019-07-31 13:02:41 +02:00
Kasper Rynning-Tønnesen
cba874510b Merge pull request #517 from zoff-music/fix/404
Fix/404
2019-07-29 15:56:07 +02:00
Kasper Rynning-Tønnesen
b3a7b95fd6 Removed some commented code 2019-07-29 15:54:41 +02:00
Kasper Rynning-Tønnesen
f9b05c11e0 Fix for 404 not routing to 404 page 2019-07-29 15:52:27 +02:00
Kasper Rynning-Tønnesen
e8d49c77df Merge pull request #516 from zoff-music/fix/viewcount
Fix for view-count
2019-07-26 13:12:55 +02:00
Kasper Rynning-Tønnesen
bd9815927b Fix for view-count 2019-07-26 13:12:35 +02:00
Kasper Rynning-Tønnesen
07164153b0 Merge pull request #515 from zoff-music/refactor/prettifier
Styling-fixes
2019-07-26 10:46:00 +02:00
Kasper Rynning-Tønnesen
206321a46f Merge pull request #514 from zoff-music/refactor/prettifier
Refactor/prettifier
2019-07-26 10:27:18 +02:00
Kasper Rynning-Tønnesen
460d0138f0 Merge pull request #512 from zoff-music/refactor/prettifier
More prettier missing files
2019-07-26 08:51:06 +02:00
Kasper Rynning-Tønnesen
4d96763545 Merge pull request #511 from zoff-music/refactor/prettifier
Prettified som more files and fixed some logging of missing files so …
2019-07-26 08:46:42 +02:00
Kasper Rynning-Tønnesen
d3e72202ce Merge pull request #510 from zoff-music/fix/audit
Removed gulp-util and lodash-template
2019-07-25 16:54:42 +02:00
8 changed files with 200 additions and 251 deletions

View File

@@ -30,6 +30,7 @@ var project_object = {
duration: 1, duration: 1,
end: 1, end: 1,
type: 1, type: 1,
added_by: { $ifNull: ["$added_by", "Anonymous"] },
source: { $ifNull: ["$source", "youtube"] }, source: { $ifNull: ["$source", "youtube"] },
thumbnail: { thumbnail: {
$ifNull: [ $ifNull: [

View File

@@ -71,6 +71,16 @@ function getAndSendLogs(channel, all, socket, pass, query) {
}); });
} }
function getUserNameByGuid(guid, callback) {
db.collection("user_names").find({ guid: guid }, function(err, usernames) {
if (usernames.length == 1) {
callback(usernames[0].name);
return;
}
callback("Anonymous");
});
}
function chat(msg, guid, offline, socket) { function chat(msg, guid, offline, socket) {
if ( if (
typeof msg !== "object" || typeof msg !== "object" ||
@@ -909,6 +919,7 @@ function get_name_generate(guid, announce_payload, first, channel) {
}); });
} }
module.exports.getUserNameByGuid = getUserNameByGuid;
module.exports.get_history = get_history; module.exports.get_history = get_history;
module.exports.chat = chat; module.exports.chat = chat;
module.exports.all_chat = all_chat; module.exports.all_chat = all_chat;

View File

@@ -2,6 +2,7 @@ var Functions = require(pathThumbnails + "/handlers/functions.js");
var List = require(pathThumbnails + "/handlers/list.js"); var List = require(pathThumbnails + "/handlers/list.js");
var Frontpage = require(pathThumbnails + "/handlers/frontpage.js"); var Frontpage = require(pathThumbnails + "/handlers/frontpage.js");
var Search = require(pathThumbnails + "/handlers/search.js"); var Search = require(pathThumbnails + "/handlers/search.js");
var Chat = require(pathThumbnails + "/handlers/chat.js");
var crypto = require("crypto"); var crypto = require("crypto");
var Filter = require("bad-words"); var Filter = require("bad-words");
var filter = new Filter({ placeHolder: "x" }); var filter = new Filter({ placeHolder: "x" });
@@ -201,7 +202,7 @@ function addFromOtherList(arr, guid, offline, socket) {
accessed: Functions.get_time() accessed: Functions.get_time()
}; };
db.collection( db.collection(
channel new_channel
).find( ).find(
{ {
now_playing: true now_playing: true
@@ -819,159 +820,167 @@ function add_function(arr, coll, guid, offline, socket) {
var source = arr.source; var source = arr.source;
var tags = arr.tags; var tags = arr.tags;
conf = docs; conf = docs;
if ( Chat.getUserNameByGuid(guid, function(username) {
docs !== null && if (
docs.length !== 0 && docs !== null &&
((docs[0].addsongs === true && docs.length !== 0 &&
(hash == docs[0].adminpass || docs[0].adminpass === "")) || ((docs[0].addsongs === true &&
docs[0].addsongs === false) (hash == docs[0].adminpass || docs[0].adminpass === "")) ||
) { docs[0].addsongs === false)
db.collection(coll).find( ) {
{ id: id, type: { $ne: "suggested" } }, db.collection(coll).find(
function(err, docs) { { id: id, type: { $ne: "suggested" } },
if (docs !== null && docs.length === 0) { function(err, docs) {
var guids = [guid]; if (docs !== null && docs.length === 0) {
var added = Functions.get_time(); var guids = [guid];
var votes = 1; var added = Functions.get_time();
db.collection(coll).find({ now_playing: true }, function( var votes = 1;
err, db.collection(coll).find({ now_playing: true }, function(
docs err,
) { docs
if (docs !== null && docs.length === 0) { ) {
np = true; if (docs !== null && docs.length === 0) {
} else { np = true;
np = false;
}
var new_song = {
added: added,
guids: guids,
id: id,
now_playing: np,
title: title,
tags: tags,
votes: votes,
duration: duration,
start: parseInt(start),
end: parseInt(end),
type: "video",
source: source
};
if (source == "soundcloud") {
if (
arr.thumbnail.indexOf("https://i1.sndcdn.com") > -1 ||
arr.thumbnail.indexOf("https://w1.sndcdn.com") > -1
) {
new_song.thumbnail = arr.thumbnail;
} else { } else {
new_song.thumbnail = np = false;
"https://img.youtube.com/vi/404_notfound/mqdefault.jpg";
} }
} else if (source == "youtube") var new_song = {
new_song.thumbnail = added: added,
"https://img.youtube.com/vi/" + guids: guids,
new_song.id + id: id,
"/mqdefault.jpg"; now_playing: np,
db.collection(coll).update( title: title,
{ id: id }, tags: tags,
new_song, votes: votes,
{ upsert: true }, duration: duration,
function(err, docs) { start: parseInt(start),
new_song._id = "asd"; end: parseInt(end),
if (np) { type: "video",
List.send_list(coll, undefined, false, true, false); source: source,
db.collection(coll + "_settings").update( added_by: username
{ id: "config" }, };
{ $set: { startTime: Functions.get_time() } } if (source == "soundcloud") {
); if (
List.send_play(coll, undefined); arr.thumbnail.indexOf("https://i1.sndcdn.com") > -1 ||
var thumbnail = arr.thumbnail.indexOf("https://w1.sndcdn.com") > -1
arr.thumbnail != undefined ) {
? arr.thumbnail new_song.thumbnail = arr.thumbnail;
: undefined;
Frontpage.update_frontpage(
coll,
id,
title,
thumbnail,
arr.source
);
if (source != "soundcloud")
Search.get_correct_info(new_song, coll, false);
else if (source == "soundcloud")
Search.get_genres_soundcloud(new_song, coll);
} else { } else {
io.to(coll).emit("channel", { new_song.thumbnail =
type: "added", "https://img.youtube.com/vi/404_notfound/mqdefault.jpg";
value: new_song
});
if (source != "soundcloud")
Search.get_correct_info(new_song, coll, true);
else if (source == "soundcloud")
Search.get_genres_soundcloud(new_song, coll);
} }
db.collection("frontpage_lists").update( } else if (source == "youtube")
{ _id: coll }, new_song.thumbnail =
{ "https://img.youtube.com/vi/" +
$inc: { count: 1 }, new_song.id +
$set: { accessed: Functions.get_time() } "/mqdefault.jpg";
}, db.collection(coll).update(
{ upsert: true }, { id: id },
function(err, docs) {} new_song,
); { upsert: true },
List.getNextSong(coll, undefined); function(err, docs) {
} new_song._id = "asd";
); if (np) {
socket.emit("toast", "addedsong"); List.send_list(coll, undefined, false, true, false);
}); db.collection(coll + "_settings").update(
} else { { id: "config" },
vote(coll, id, guid, socket); { $set: { startTime: Functions.get_time() } }
} );
} List.send_play(coll, undefined);
); var thumbnail =
} else { arr.thumbnail != undefined
db.collection(coll).find({ id: id }, function(err, docs) { ? arr.thumbnail
if (docs.length === 0) { : undefined;
var suggestedAdd = { Frontpage.update_frontpage(
added: Functions.get_time(), coll,
guids: [guid], id,
id: id, title,
now_playing: false, thumbnail,
title: title, arr.source
votes: 1, );
duration: duration, if (source != "soundcloud")
start: start, Search.get_correct_info(new_song, coll, false);
end: end, else if (source == "soundcloud")
type: "suggested", Search.get_genres_soundcloud(new_song, coll);
tags: tags } else {
}; io.to(coll).emit("channel", {
var source = arr.source; type: "added",
if (source == "soundcloud") { value: new_song
suggestedAdd.thumbnail = arr.thumbnail; });
suggestedAdd.source = source; if (source != "soundcloud")
} else { Search.get_correct_info(new_song, coll, true);
suggestedAdd.source = "youtube"; else if (source == "soundcloud")
} Search.get_genres_soundcloud(new_song, coll);
db.collection(coll).update( }
{ id: id }, db.collection("frontpage_lists").update(
{ $set: suggestedAdd }, { _id: coll },
{ upsert: true }, {
function(err, docs) { $inc: { count: 1 },
socket.emit("toast", "suggested"); $set: { accessed: Functions.get_time() }
var toSend = suggestedAdd; },
toSend.guids = []; { upsert: true },
if (source == "soundcloud") function(err, docs) {}
toSend.thumbnail = arr.thumbnail; );
io.to(coll).emit("suggested", toSend); List.getNextSong(coll, undefined);
}
);
socket.emit("toast", "addedsong");
});
} else {
vote(coll, id, guid, socket);
} }
); }
} else if (docs[0].now_playing === true) { );
socket.emit("toast", "alreadyplay"); } else {
} else { db.collection(coll).find({ id: id }, function(err, docs) {
if (conf[0].vote === false) vote(coll, id, guid, socket); if (docs.length === 0) {
else socket.emit("toast", "listhaspass"); var suggestedAdd = {
} added: Functions.get_time(),
}); guids: [guid],
} id: id,
now_playing: false,
title: title,
votes: 1,
duration: duration,
start: start,
end: end,
type: "suggested",
tags: tags,
added_by: username
};
var source = arr.source;
if (source == "soundcloud") {
suggestedAdd.thumbnail = arr.thumbnail;
suggestedAdd.source = source;
} else {
suggestedAdd.source = "youtube";
}
db.collection(coll).update(
{ id: id },
{ $set: suggestedAdd },
{ upsert: true },
function(err, docs) {
socket.emit("toast", "suggested");
var toSend = suggestedAdd;
toSend.guids = [];
if (source == "soundcloud")
toSend.thumbnail = arr.thumbnail;
io.to(coll).emit("suggested", toSend);
if (source != "soundcloud")
Search.get_correct_info(suggestedAdd, coll, false);
else if (source == "soundcloud")
Search.get_genres_soundcloud(suggestedAdd, coll);
}
);
} else if (docs[0].now_playing === true) {
socket.emit("toast", "alreadyplay");
} else {
if (conf[0].vote === false) vote(coll, id, guid, socket);
else socket.emit("toast", "listhaspass");
}
});
}
});
} else { } else {
if ( if (
(arr.hasOwnProperty("offsiteAdd") && !arr.offsiteAdd) || (arr.hasOwnProperty("offsiteAdd") && !arr.offsiteAdd) ||

View File

@@ -3,10 +3,6 @@ var Channel = {
if (window.location.hash == "#small" || inIframe()) { if (window.location.hash == "#small" || inIframe()) {
small_player = true; small_player = true;
document.querySelector("footer").style.display = "none"; document.querySelector("footer").style.display = "none";
//addJoinBox();
//hideAllExtra();
//document.querySelectorAll(".tab.col.s3")[1].remove();
//document.querySelectorAll(".tab.col.s3")[1].remove();
} }
if (client) { if (client) {
Helper.addClass(".tabs", "hide"); Helper.addClass(".tabs", "hide");
@@ -25,12 +21,7 @@ var Channel = {
Helper.addClass(".control-list", "client-control-list"); Helper.addClass(".control-list", "client-control-list");
} else { } else {
if (!api_key.hasOwnProperty("soundcloud")) soundcloud_enabled = false; if (!api_key.hasOwnProperty("soundcloud")) soundcloud_enabled = false;
else {
/*SC.initialize({
client_id: api_key.soundcloud
}, function() {
});*/
}
if (cast_ready_connect || chromecastAvailable || chromecastReady) { if (cast_ready_connect || chromecastAvailable || chromecastReady) {
Helper.addClass(".volume-container", "volume-container-cast"); Helper.addClass(".volume-container", "volume-container-cast");
} }
@@ -295,10 +286,13 @@ var Channel = {
if (!client) { if (!client) {
if (!Helper.mobilecheck()) { if (!Helper.mobilecheck()) {
var port = window.location.port;
if (port != "") port = ":" + port;
var shareCodeUrl = var shareCodeUrl =
window.location.protocol + window.location.protocol +
"//client." + "//client." +
window.location.hostname + window.location.hostname +
port +
"/r/" + "/r/" +
btoa(encodeURIComponent(chan.toLowerCase())); btoa(encodeURIComponent(chan.toLowerCase()));
document document
@@ -312,18 +306,11 @@ var Channel = {
"#channel-name-join", "#channel-name-join",
"client." + "client." +
window.location.hostname + window.location.hostname +
port +
"/" + "/" +
encodeURIComponent(chan.toLowerCase()) encodeURIComponent(chan.toLowerCase())
); );
} /*else if(small_player) { }
document.querySelector("#channel-share-modal .modal-content").innerHTML = "<p>To listen to this channel with more features, go to</p><p>https://zoff.me/" + encodeURIComponent(chan.toLowerCase()) + "</p><img src='/assets/images/favicon.png' height='100' width='100' alt='circle-logo-zoff'>";
//M.Modal.getInstance(document.getElementById("channel-share-modal")).open();
if(!Helper.mobilecheck()) {
setTimeout(function() {
M.Modal.getInstance(document.getElementById("channel-share-modal")).close();
}, 10000);
}
}*/
} else { } else {
Helper.removeElement(".video-container"); Helper.removeElement(".video-container");
Helper.removeElement(".offline-panel"); Helper.removeElement(".offline-panel");
@@ -435,24 +422,6 @@ var Channel = {
position: "top", position: "top",
html: "Cast Zoff to TV" html: "Cast Zoff to TV"
}); });
/*$("#color_embed").spectrum({
color: "#808080",
change: function(c) {
color = c.toHexString().substring(1); // #ff0000
document.getElementById("embed-area").value = embed_code(embed_autoplay, embed_width, embed_height, color);
},
appendTo: "#embed",
containerClassName: 'polyfill-color z-depth-4',
show: function(color) {
},
});*/
/*Helper.addClass(".sp-choose", "hide");
Helper.addClass(".sp-cancel", "btn-flat waves-effect waves-red");
Helper.removeClass(".sp-cancel", "sp-cancel");
document.getElementsByClassName("sp-button-container")[0].insertAdjacentHTML("beforeend", "<a href='#' class='btn-flat waves-effect waves-green sp-choose-link'>CHOOSE</a>");
*/
} }
addListener("click", ".sp-choose-link", function(e) { addListener("click", ".sp-choose-link", function(e) {
@@ -708,10 +677,6 @@ var Channel = {
channel: add + chan.toLowerCase() channel: add + chan.toLowerCase()
}); });
} else if (url_split[3] === "") { } else if (url_split[3] === "") {
/*if(client) {
var host = window.location.hostname.split(".");
window.location.hostname = host[host.length -1];
}*/
Admin.display_logged_out(); Admin.display_logged_out();
if (hostMode) { if (hostMode) {
Helper.removeClass("#main-row", "fullscreened"); Helper.removeClass("#main-row", "fullscreened");

View File

@@ -13,11 +13,7 @@ var Hostcontroller = {
Hostcontroller.old_id = id; Hostcontroller.old_id = id;
} }
var codeURL = var codeURL =
window.location.protocol + window.location.protocol + "//remote." + window.location.host + "/" + id;
"//remote." +
window.location.hostname +
"/" +
id;
if (embed) { if (embed) {
if (window.parentWindow && window.parentOrigin) { if (window.parentWindow && window.parentOrigin) {
window.parentWindow.postMessage( window.parentWindow.postMessage(

View File

@@ -32,11 +32,8 @@ window.addEventListener(
M.Modal.init(document.getElementById("about")); M.Modal.init(document.getElementById("about"));
M.Modal.init(document.getElementById("contact")); M.Modal.init(document.getElementById("contact"));
M.Modal.init(document.getElementById("help")); M.Modal.init(document.getElementById("help"));
if (window.location.hostname == "remote.zoff.me") add = "https://zoff.me";
else add = "localhost";
socket = io.connect( socket = io.connect(
add, window.location.protocol + "//" + window.location.host,
connection_options connection_options
); );
socket.on("update_required", function() { socket.on("update_required", function() {

View File

@@ -36,10 +36,6 @@ var Suggestions = {
var video_title = params.title; var video_title = params.title;
var date = new Date(params.added * 1000); var date = new Date(params.added * 1000);
var addedTime = var addedTime =
Helper.pad(date.getHours()) +
":" +
Helper.pad(date.getMinutes()) +
" - " +
Helper.pad(date.getDate()) + Helper.pad(date.getDate()) +
"." + "." +
Helper.pad(date.getMonth()) + Helper.pad(date.getMonth()) +
@@ -53,6 +49,9 @@ var Suggestions = {
votes: addedTime, votes: addedTime,
extra: "Added" extra: "Added"
}; };
if (params.added_by != undefined) {
toSend.extra += " by " + params.added_by;
}
if (params.source) toSend.source = params.source; if (params.source) toSend.source = params.source;
else { else {
toSend.source = "youtube"; toSend.source = "youtube";
@@ -89,7 +88,7 @@ var Suggestions = {
"&type=video&key=" + "&type=video&key=" +
api_key.youtube; api_key.youtube;
var video_urls = var video_urls =
"https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id,statistics&fields=pageInfo,items(id,contentDetails,snippet(categoryId,channelTitle,publishedAt,title,description,thumbnails))&key=" + "https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id,statistics&fields=pageInfo,items(id,contentDetails,statistics(viewCount),snippet(categoryId,channelTitle,publishedAt,title,description,thumbnails))&key=" +
api_key.youtube + api_key.youtube +
"&id="; "&id=";
@@ -125,29 +124,27 @@ var Suggestions = {
try { try {
viewCount = song.statistics.viewCount viewCount = song.statistics.viewCount
.toString() .toString()
.replace(/\B(?=(\d{3})+(?!\d))/g, ","); .replace(/\B(?=(\d{3})+(?!\d))/g, " ");
} catch (e) {} } catch (e) {}
try { try {
document document.getElementById("suggest-song-html").insertAdjacentHTML(
.getElementById("suggest-song-html") "beforeend",
.insertAdjacentHTML( List.generateSong(
"beforeend", {
List.generateSong( id: video_id,
{ title: video_title,
id: video_id, length: length,
title: video_title, duration: duration,
length: length, votes: viewCount,
duration: duration, extra: "Views",
votes: viewCount, source: "youtube"
extra: "Views", },
source: "youtube" false,
}, false,
false, false
false, )
false );
)
);
} catch (e) {} } catch (e) {}
} }
} }

View File

@@ -13,7 +13,6 @@ var Functions = require(pathThumbnails + "/handlers/functions.js");
var Frontpage = require(pathThumbnails + "/handlers/frontpage.js"); var Frontpage = require(pathThumbnails + "/handlers/frontpage.js");
var db = require(pathThumbnails + "/handlers/db.js"); var db = require(pathThumbnails + "/handlers/db.js");
//var db = require(pathThumbnails + '/handlers/db.js');
try { try {
google = require(path.join( google = require(path.join(
@@ -168,10 +167,6 @@ function root(req, res, next) {
var subdomain = req.headers["x-forwarded-host"] var subdomain = req.headers["x-forwarded-host"]
? req.headers["x-forwarded-host"].split(".") ? req.headers["x-forwarded-host"].split(".")
: req.headers.host.split(":")[0].split("."); : req.headers.host.split(":")[0].split(".");
/*if(url != "zoff.me" && url != "admin.localhost" && url != "admin.zoff.me" && url != "remote.zoff.me" && url != "fb.zoff.me" && url != "remote.localhost" && url != "localhost") {
res.redirect("https://zoff.me");
return;
}*/
if (subdomain[0] == "remote") { if (subdomain[0] == "remote") {
var data = { var data = {
year: year, year: year,
@@ -228,7 +223,6 @@ function root(req, res, next) {
} }
} catch (e) { } catch (e) {
console.log(e); console.log(e);
//res.redirect("https://zoff.me");
} }
} }
@@ -240,10 +234,6 @@ function channel(req, res, next) {
var subdomain = req.headers["x-forwarded-host"] var subdomain = req.headers["x-forwarded-host"]
? req.headers["x-forwarded-host"].split(".") ? req.headers["x-forwarded-host"].split(".")
: req.headers.host.split(":")[0].split("."); : req.headers.host.split(":")[0].split(".");
/*if(url != "zoff.me" && url != "admin.localhost" && url != "admin.zoff.me" && url != "remote.zoff.me" && url != "fb.zoff.me" && url != "remote.localhost" && url != "localhost") {
res.redirect("https://zoff.me");
return;
}*/
if (subdomain[0] == "remote") { if (subdomain[0] == "remote") {
var data = { var data = {
year: year, year: year,
@@ -264,22 +254,9 @@ function channel(req, res, next) {
} else { } else {
if (req.params.channel_name == "o_callback") { if (req.params.channel_name == "o_callback") {
res.redirect("/api/oauth"); res.redirect("/api/oauth");
//res.sendFile(path.join(pathThumbnails, '/public/assets/html/callback.html'));
} else { } else {
/*db.collection("frontpage_lists").find({"_id": Functions.encodeChannelName(req.params.channel_name)}, function(err, docs) {
console.log(docs);
var og_image = "https://zoff.me/assets/images/small-square.jpg";
if(docs.length == 1) {
if(docs[0].hasOwnProperty("thumbnail")) {
if(docs[0].thumbnail.indexOf("mqdefault.jpg") > -1) docs[0].thumbnail = docs[0].thumbnail.replace("mqdefault", "hqdefault");
og_image = docs[0].thumbnail;
} else {
og_image = "https://img.youtube.com/vi/" + docs[0].id + "/hqdefault.jpg";
}
}*/
var data = { var data = {
title: "404: File Not Found", title: "404: File Not Found",
//list_name: capitalizeFirstLetter(Functions.decodeChannelName(req.params.channel_name)),
list_name: capitalizeFirstLetter(req.params.channel_name), list_name: capitalizeFirstLetter(req.params.channel_name),
year: year, year: year,
javascript_file: "main.min.js", javascript_file: "main.min.js",
@@ -296,11 +273,7 @@ function channel(req, res, next) {
if (subdomain[0] == "client") { if (subdomain[0] == "client") {
data.client = true; data.client = true;
} }
if (req.params.channel_name == "404") {
res.status(404);
}
res.render("layouts/client/channel", data); res.render("layouts/client/channel", data);
//});
} }
} }
} catch (e) { } catch (e) {