mirror of
https://github.com/KevinMidboe/zoff.git
synced 2025-10-29 18:00:23 +00:00
Modal and filter somewhat working
This commit is contained in:
@@ -459,9 +459,11 @@ function add_function(arr, coll, guid, offline, socket) {
|
|||||||
var thumbnail = arr.thumbnail != undefined ? arr.thumbnail : undefined;
|
var thumbnail = arr.thumbnail != undefined ? arr.thumbnail : undefined;
|
||||||
Frontpage.update_frontpage(coll, id, title, thumbnail, arr.source);
|
Frontpage.update_frontpage(coll, id, title, thumbnail, arr.source);
|
||||||
if(source != "soundcloud") Search.get_correct_info(new_song, coll, false);
|
if(source != "soundcloud") Search.get_correct_info(new_song, coll, false);
|
||||||
|
else if(source == "soundcloud") Search.get_genres(new_song, coll);
|
||||||
} else {
|
} else {
|
||||||
io.to(coll).emit("channel", {type: "added", value: new_song});
|
io.to(coll).emit("channel", {type: "added", value: new_song});
|
||||||
if(source != "soundcloud") Search.get_correct_info(new_song, coll, true);
|
if(source != "soundcloud") Search.get_correct_info(new_song, coll, true);
|
||||||
|
else if(source == "soundcloud") Search.get_genres(new_song, coll);
|
||||||
}
|
}
|
||||||
db.collection("frontpage_lists").update({_id:coll}, {$inc:{count:1}, $set:{accessed: Functions.get_time()}}, {upsert:true}, function(err, docs){});
|
db.collection("frontpage_lists").update({_id:coll}, {$inc:{count:1}, $set:{accessed: Functions.get_time()}}, {upsert:true}, function(err, docs){});
|
||||||
List.getNextSong(coll, undefined);
|
List.getNextSong(coll, undefined);
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ var time_regex = /P((([0-9]*\.?[0-9]*)Y)?(([0-9]*\.?[0-9]*)M)?(([0-9]*\.?[0-9]*)
|
|||||||
try {
|
try {
|
||||||
var keys = require(path.join(__dirname, '../config/api_key.js'));
|
var keys = require(path.join(__dirname, '../config/api_key.js'));
|
||||||
var key = keys.youtube;
|
var key = keys.youtube;
|
||||||
|
var soundcloudKey = keys.soundcloud;
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
console.log("Error - missing file");
|
console.log("Error - missing file");
|
||||||
console.log("Seems you forgot to create the file api_key.js in /server/config/. Have a look at api_key.example.js.");
|
console.log("Seems you forgot to create the file api_key.js in /server/config/. Have a look at api_key.example.js.");
|
||||||
@@ -11,11 +12,30 @@ try {
|
|||||||
var request = require('request');
|
var request = require('request');
|
||||||
var db = require(pathThumbnails + '/handlers/db.js');
|
var db = require(pathThumbnails + '/handlers/db.js');
|
||||||
|
|
||||||
|
function get_genres(song, channel) {
|
||||||
|
console.log(song);
|
||||||
|
request("http://api.soundcloud.com/tracks/" + song.id + "?client_id=" + soundcloudKey, function(err, response, body) {
|
||||||
|
var object = JSON.parse(body);
|
||||||
|
var genres = object.genre + "," + object.tag_list.replace(/"/g, "");
|
||||||
|
genres = genres.toLowerCase().split(",");
|
||||||
|
genres = genres.filter(function (el) {
|
||||||
|
return el != null;
|
||||||
|
});
|
||||||
|
db.collection(channel).update({"id": song.id}, {
|
||||||
|
$set: {
|
||||||
|
"tags": genres
|
||||||
|
}
|
||||||
|
}, function(e,d) {
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
function get_correct_info(song_generated, channel, broadcast, callback) {
|
function get_correct_info(song_generated, channel, broadcast, callback) {
|
||||||
//channel = channel.replace(/ /g,'');
|
//channel = channel.replace(/ /g,'');
|
||||||
request({
|
request({
|
||||||
type: "GET",
|
type: "GET",
|
||||||
url: "https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id&key="+key+"&id=" + song_generated.id,
|
url: "https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id,topicDetails&key="+key+"&id=" + song_generated.id,
|
||||||
|
|
||||||
}, function(error, response, body) {
|
}, function(error, response, body) {
|
||||||
try {
|
try {
|
||||||
@@ -23,6 +43,13 @@ function get_correct_info(song_generated, channel, broadcast, callback) {
|
|||||||
if(resp.items.length == 1) {
|
if(resp.items.length == 1) {
|
||||||
var duration = parseInt(durationToSeconds(resp.items[0].contentDetails.duration));
|
var duration = parseInt(durationToSeconds(resp.items[0].contentDetails.duration));
|
||||||
var title = resp.items[0].snippet.localized.title;
|
var title = resp.items[0].snippet.localized.title;
|
||||||
|
var genre = resp.items[0].topicDetails.topicCategories;
|
||||||
|
genre = genre.join(",");
|
||||||
|
genre = genre.replace(new RegExp("https://en.wikipedia.org/wiki/", "g"), "");
|
||||||
|
genre = genre.replace(/_/g, " ").toLowerCase().split(",");
|
||||||
|
genre = genre.filter(function (el) {
|
||||||
|
return el != null;
|
||||||
|
});
|
||||||
if(title != song_generated.title || duration < parseInt(song_generated.duration)) {
|
if(title != song_generated.title || duration < parseInt(song_generated.duration)) {
|
||||||
if(title != song_generated.title) {
|
if(title != song_generated.title) {
|
||||||
song_generated.title = title;
|
song_generated.title = title;
|
||||||
@@ -38,6 +65,7 @@ function get_correct_info(song_generated, channel, broadcast, callback) {
|
|||||||
"start": song_generated.start,
|
"start": song_generated.start,
|
||||||
"end": song_generated.end,
|
"end": song_generated.end,
|
||||||
"title": song_generated.title,
|
"title": song_generated.title,
|
||||||
|
"tags": genre
|
||||||
}
|
}
|
||||||
}, function(err, docs) {
|
}, function(err, docs) {
|
||||||
if(broadcast && docs.nModified == 1) {
|
if(broadcast && docs.nModified == 1) {
|
||||||
@@ -55,9 +83,15 @@ function get_correct_info(song_generated, channel, broadcast, callback) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
if(typeof(callback) == "function") {
|
db.collection(channel).update({"id": song_generated.id}, {
|
||||||
callback(song_generated, true);
|
$set: {
|
||||||
}
|
"tags": genre
|
||||||
|
}
|
||||||
|
}, function(e,d) {
|
||||||
|
if(typeof(callback) == "function") {
|
||||||
|
callback(song_generated, true);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
findSimilar(song_generated, channel, broadcast, callback)
|
findSimilar(song_generated, channel, broadcast, callback)
|
||||||
@@ -213,5 +247,6 @@ function durationToSeconds(duration) {
|
|||||||
return hours*60*60+minutes*60+seconds;
|
return hours*60*60+minutes*60+seconds;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
module.exports.get_genres = get_genres;
|
||||||
module.exports.check_error_video = check_error_video;
|
module.exports.check_error_video = check_error_video;
|
||||||
module.exports.get_correct_info = get_correct_info;
|
module.exports.get_correct_info = get_correct_info;
|
||||||
|
|||||||
@@ -1180,7 +1180,7 @@ margin:-1px;
|
|||||||
padding-left: 8px;
|
padding-left: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#close_find_form_button {
|
#close_find_form_button, #open_advanced_filter {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-self: center;
|
align-self: center;
|
||||||
padding-left: 10px;
|
padding-left: 10px;
|
||||||
@@ -2109,6 +2109,10 @@ nav ul li:hover, nav ul li.active {
|
|||||||
height:66px;
|
height:66px;
|
||||||
margin: 2.5px 0 2.5px -1px !important;
|
margin: 2.5px 0 2.5px -1px !important;
|
||||||
}
|
}
|
||||||
|
.filtered-search-element {
|
||||||
|
background-color: #2d2d2d;
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
.card:hover{
|
.card:hover{
|
||||||
box-shadow: 0 5px 5px 0 rgba(0,0,0,0.16), 0 5px 10px 0 rgba(0,0,0,0.12);
|
box-shadow: 0 5px 5px 0 rgba(0,0,0,0.16), 0 5px 10px 0 rgba(0,0,0,0.12);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -143,6 +143,11 @@ var Channel = {
|
|||||||
Helper.removeElement(".embed-button-footer");
|
Helper.removeElement(".embed-button-footer");
|
||||||
Helper.removeElement(".tabs");
|
Helper.removeElement(".tabs");
|
||||||
}
|
}
|
||||||
|
M.Modal.init(document.getElementById("advanced_filter"), {
|
||||||
|
onCloseEnd: function() {
|
||||||
|
document.querySelector(".filter-results").innerHTML = "";
|
||||||
|
}
|
||||||
|
});
|
||||||
M.Modal.init(document.getElementById("help"));
|
M.Modal.init(document.getElementById("help"));
|
||||||
M.Modal.init(document.getElementById("contact"));
|
M.Modal.init(document.getElementById("contact"));
|
||||||
M.Modal.init(document.getElementById("channel-share-modal"));
|
M.Modal.init(document.getElementById("channel-share-modal"));
|
||||||
|
|||||||
@@ -21,6 +21,37 @@ function removeAllListeners() {
|
|||||||
socket.removeEventListener(id);
|
socket.removeEventListener(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function filterPlaylistElements() {
|
||||||
|
Helper.ajax({
|
||||||
|
type: "POST",
|
||||||
|
headers: {
|
||||||
|
"Content-Type": "application/json"
|
||||||
|
},
|
||||||
|
url: "/api/search/" + chan.toLowerCase(),
|
||||||
|
data: {
|
||||||
|
searchQuery: document.getElementById("filtersearch_input").value,
|
||||||
|
token: zoff_api_token
|
||||||
|
},
|
||||||
|
success: function(data){
|
||||||
|
var json = JSON.parse(data);
|
||||||
|
document.querySelector(".filter-results").innerHTML = "";
|
||||||
|
if(json.results.length > 0) {
|
||||||
|
for(var i = 0; i < json.results.length; i++) {
|
||||||
|
document.querySelector(".filter-results").innerHTML += List.generateSong(json.results[i], false, false, true, false, "block", false, true);;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
toast("Couldn't find any items with those tags..", "red");
|
||||||
|
document.querySelector(".filter-results").innerHTML = "Couldn't find any items with those tags..";
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function() {
|
||||||
|
toast("Couldn't find any items with those tags..", "red");
|
||||||
|
|
||||||
|
document.querySelector(".filter-results").innerHTML = "Couldn't find any items with those tags..";
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
function say_updated() {
|
function say_updated() {
|
||||||
setTimeout(function() {
|
setTimeout(function() {
|
||||||
before_toast();
|
before_toast();
|
||||||
|
|||||||
@@ -1242,13 +1242,11 @@ var List = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
generateSong: function(_song_info, transition, lazy, list, user, display, initial) {
|
generateSong: function(_song_info, transition, lazy, list, user, display, initial, filtered) {
|
||||||
if(list_html === undefined) list_html = Helper.html("#list-song-html");
|
if(list_html === undefined) list_html = Helper.html("#list-song-html");
|
||||||
var video_id = _song_info.id;
|
var video_id = _song_info.id;
|
||||||
var video_title = _song_info.title;
|
var video_title = _song_info.title;
|
||||||
var video_votes = _song_info.votes;
|
var video_votes = _song_info.votes;
|
||||||
var tags = "";
|
|
||||||
if(_song_info.tags != undefined) _song_info.tags.join(",").toLowerCase();
|
|
||||||
var video_thumb_url = "//img.youtube.com/vi/"+video_id+"/mqdefault.jpg";
|
var video_thumb_url = "//img.youtube.com/vi/"+video_id+"/mqdefault.jpg";
|
||||||
if(_song_info.source == "soundcloud") {
|
if(_song_info.source == "soundcloud") {
|
||||||
video_thumb_url = _song_info.thumbnail;
|
video_thumb_url = _song_info.thumbnail;
|
||||||
@@ -1277,8 +1275,8 @@ var List = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
song.querySelector(".list-image").setAttribute(image_attr,video_thumb);
|
song.querySelector(".list-image").setAttribute(image_attr,video_thumb);
|
||||||
if(list){
|
if(list && !filtered){
|
||||||
song.querySelector("#list-song")
|
//song.querySelector("#list-song")
|
||||||
song.querySelector(".list-votes").innerText = video_votes;
|
song.querySelector(".list-votes").innerText = video_votes;
|
||||||
song.querySelector("#list-song").setAttribute("data-video-id", video_id);
|
song.querySelector("#list-song").setAttribute("data-video-id", video_id);
|
||||||
song.querySelector("#list-song").setAttribute("data-video-type", "song");
|
song.querySelector("#list-song").setAttribute("data-video-type", "song");
|
||||||
@@ -1294,7 +1292,7 @@ var List = {
|
|||||||
|
|
||||||
var _temp_duration = Helper.secondsToOther(_song_info.duration);
|
var _temp_duration = Helper.secondsToOther(_song_info.duration);
|
||||||
song.querySelector(".card-duration").innerText = Helper.pad(_temp_duration[0]) + ":" + Helper.pad(_temp_duration[1]);
|
song.querySelector(".card-duration").innerText = Helper.pad(_temp_duration[0]) + ":" + Helper.pad(_temp_duration[1]);
|
||||||
}else if(!list){
|
}else if(!list && !filtered){
|
||||||
|
|
||||||
//song.querySelector(".card-duration").remove();
|
//song.querySelector(".card-duration").remove();
|
||||||
//song.querySelector(".list-song").removeClass("playlist-element");
|
//song.querySelector(".list-song").removeClass("playlist-element");
|
||||||
@@ -1318,7 +1316,6 @@ var List = {
|
|||||||
song.querySelector(attr).setAttribute("data-video-title", video_title);
|
song.querySelector(attr).setAttribute("data-video-title", video_title);
|
||||||
song.querySelector(attr).setAttribute("data-video-length", _song_info.length);
|
song.querySelector(attr).setAttribute("data-video-length", _song_info.length);
|
||||||
song.querySelector(attr).setAttribute("data-added-by", added_by);
|
song.querySelector(attr).setAttribute("data-added-by", added_by);
|
||||||
song.querySelector(attr).setAttribute("data-tags", tags);
|
|
||||||
song.querySelector(attr).setAttribute("data-video-type", "suggested");
|
song.querySelector(attr).setAttribute("data-video-type", "suggested");
|
||||||
if(_song_info.source == "soundcloud") {
|
if(_song_info.source == "soundcloud") {
|
||||||
song.querySelector(attr).setAttribute("data-type-thumbnail", _song_info.thumbnail);
|
song.querySelector(attr).setAttribute("data-type-thumbnail", _song_info.thumbnail);
|
||||||
@@ -1332,6 +1329,21 @@ var List = {
|
|||||||
list_image.classList.remove("list-image");
|
list_image.classList.remove("list-image");
|
||||||
list_image.className += " list-suggested-image";
|
list_image.className += " list-suggested-image";
|
||||||
//song.querySelector(".list-image").setAttribute("class", song.querySelector(".list-image").getAttribute("class").replace("list-image", "list-suggested-image"));
|
//song.querySelector(".list-image").setAttribute("class", song.querySelector(".list-image").getAttribute("class").replace("list-image", "list-suggested-image"));
|
||||||
|
} else if(filtered) {
|
||||||
|
song.querySelector("#list-song").className += " filtered-search-element";
|
||||||
|
song.querySelector(".list-votes").innerText = video_votes;
|
||||||
|
song.querySelector("#list-song").setAttribute("data-video-id", video_id);
|
||||||
|
song.querySelector("#list-song").setAttribute("data-video-type", "song");
|
||||||
|
song.querySelector("#list-song").setAttribute("data-video-source", _song_info.source);
|
||||||
|
song.querySelector("#list-song").setAttribute("id", "filtered-" + video_id);
|
||||||
|
song.classList.remove("hide");
|
||||||
|
song.className += " filtered-search-element";
|
||||||
|
song.querySelector(".vote-container").setAttribute("title", video_title);
|
||||||
|
attr = ".vote-container";
|
||||||
|
del_attr = "delete_button";
|
||||||
|
|
||||||
|
var _temp_duration = Helper.secondsToOther(_song_info.duration);
|
||||||
|
song.querySelector(".card-duration").innerText = Helper.pad(_temp_duration[0]) + ":" + Helper.pad(_temp_duration[1]);
|
||||||
}
|
}
|
||||||
if(!embed) {
|
if(!embed) {
|
||||||
song.querySelector(".mobile-delete").remove();
|
song.querySelector(".mobile-delete").remove();
|
||||||
|
|||||||
@@ -682,13 +682,28 @@ function addDynamicListeners() {
|
|||||||
this.preventDefault();
|
this.preventDefault();
|
||||||
Helper.toggleClass("#find_div", "hide");
|
Helper.toggleClass("#find_div", "hide");
|
||||||
document.getElementById("find_input").value = "";
|
document.getElementById("find_input").value = "";
|
||||||
document.getElementById("find_input").blur();
|
document.getElementById("find_input").focus();
|
||||||
Helper.removeClass(".highlight", "highlight");
|
Helper.removeClass(".highlight", "highlight");
|
||||||
found_array = [];
|
found_array = [];
|
||||||
found_array_index = 0;
|
found_array_index = 0;
|
||||||
find_word = "";
|
find_word = "";
|
||||||
});
|
});
|
||||||
|
|
||||||
|
addListener("click", "#open_advanced_filter", function(e) {
|
||||||
|
this.preventDefault();
|
||||||
|
M.Modal.getInstance(document.getElementById("advanced_filter")).open();
|
||||||
|
});
|
||||||
|
|
||||||
|
addListener("submit", "#filter-form", function(e) {
|
||||||
|
this.preventDefault();
|
||||||
|
filterPlaylistElements();
|
||||||
|
});
|
||||||
|
|
||||||
|
addListener("click", ".submit-filter-search", function(e) {
|
||||||
|
this.preventDefault();
|
||||||
|
filterPlaylistElements();
|
||||||
|
});
|
||||||
|
|
||||||
addListener("click", ".delete-context-menu", function(e) {
|
addListener("click", ".delete-context-menu", function(e) {
|
||||||
var that = e;
|
var that = e;
|
||||||
if(that.classList.contains("context-menu-disabled")) {
|
if(that.classList.contains("context-menu-disabled")) {
|
||||||
@@ -1461,7 +1476,6 @@ function addDynamicListeners() {
|
|||||||
if(substr != "<i c" && !html.classList.contains("waves-effect") && !html.classList.contains("result-start") && !html.classList.contains("result-end") && !html.classList.contains("result-get-more-info")){
|
if(substr != "<i c" && !html.classList.contains("waves-effect") && !html.classList.contains("result-start") && !html.classList.contains("result-end") && !html.classList.contains("result-get-more-info")){
|
||||||
var id = e.getAttribute("data-video-id");
|
var id = e.getAttribute("data-video-id");
|
||||||
var title = e.getAttribute("data-video-title");
|
var title = e.getAttribute("data-video-title");
|
||||||
var tags = e.getAttribute("data-tags").split(",");
|
|
||||||
var original_length = e.getAttribute("data-video-length");
|
var original_length = e.getAttribute("data-video-length");
|
||||||
var start = parseInt(e.querySelector(".result-start").value);
|
var start = parseInt(e.querySelector(".result-start").value);
|
||||||
var end = parseInt(e.querySelector(".result-end").value);
|
var end = parseInt(e.querySelector(".result-end").value);
|
||||||
@@ -1481,7 +1495,7 @@ function addDynamicListeners() {
|
|||||||
} else {
|
} else {
|
||||||
try {
|
try {
|
||||||
var length = parseInt(end) - parseInt(start);
|
var length = parseInt(end) - parseInt(start);
|
||||||
Search.submitAndClose(id, title, length, start, end, source, thumbnail, tags);
|
Search.submitAndClose(id, title, length, start, end, source, thumbnail);
|
||||||
} catch(err) {
|
} catch(err) {
|
||||||
M.toast({html: "Only numbers are accepted as song start and end parameters..", displayLength: 3000, classes: "red lighten"});
|
M.toast({html: "Only numbers are accepted as song start and end parameters..", displayLength: 3000, classes: "red lighten"});
|
||||||
}
|
}
|
||||||
@@ -1604,7 +1618,6 @@ function addDynamicListeners() {
|
|||||||
|
|
||||||
var original_length = e.getAttribute("data-video-length");
|
var original_length = e.getAttribute("data-video-length");
|
||||||
var parent = e.parentElement.parentElement;
|
var parent = e.parentElement.parentElement;
|
||||||
var tags = parent.parentElement.getAttribute("data-tags").split(",");
|
|
||||||
var start = parseInt(parent.querySelectorAll(".result-start")[0].value);
|
var start = parseInt(parent.querySelectorAll(".result-start")[0].value);
|
||||||
var end = parseInt(parent.querySelectorAll(".result-end")[0].value);
|
var end = parseInt(parent.querySelectorAll(".result-end")[0].value);
|
||||||
if(end > original_length) {
|
if(end > original_length) {
|
||||||
@@ -1626,7 +1639,7 @@ function addDynamicListeners() {
|
|||||||
var length = parseInt(end) - parseInt(start);
|
var length = parseInt(end) - parseInt(start);
|
||||||
|
|
||||||
e.parentElement.parentElement.parentElement.remove();
|
e.parentElement.parentElement.parentElement.remove();
|
||||||
Search.submit(id, title, length, false, 0, 1, start, end, source, thumbnail, tags);
|
Search.submit(id, title, length, false, 0, 1, start, end, source, thumbnail);
|
||||||
} catch(event) {
|
} catch(event) {
|
||||||
M.toast({html: "Only numbers are accepted as song start and end parameters..", displayLength: 3000, classes: "red lighten"});
|
M.toast({html: "Only numbers are accepted as song start and end parameters..", displayLength: 3000, classes: "red lighten"});
|
||||||
}
|
}
|
||||||
@@ -1654,14 +1667,13 @@ function addDynamicListeners() {
|
|||||||
var title = e.getAttribute("data-video-title");
|
var title = e.getAttribute("data-video-title");
|
||||||
var length = e.getAttribute("data-video-length");
|
var length = e.getAttribute("data-video-length");
|
||||||
var added_by = e.getAttribute("data-added-by");
|
var added_by = e.getAttribute("data-added-by");
|
||||||
var tags = e.getAttribute("data-tags");
|
|
||||||
var source = "youtube";
|
var source = "youtube";
|
||||||
var thumbnail;
|
var thumbnail;
|
||||||
if(e.getAttribute("data-video-source") != undefined) {
|
if(e.getAttribute("data-video-source") != undefined) {
|
||||||
source = "soundcloud";
|
source = "soundcloud";
|
||||||
thumbnail = e.getAttribute("data-type-thumbnail");
|
thumbnail = e.getAttribute("data-type-thumbnail");
|
||||||
}
|
}
|
||||||
Search.submit(id, title, parseInt(length), false, 0, 1, 0, parseInt(length), source, thumbnail, tags);
|
Search.submit(id, title, parseInt(length), false, 0, 1, 0, parseInt(length), source, thumbnail);
|
||||||
if(added_by == "user") {
|
if(added_by == "user") {
|
||||||
number_suggested = number_suggested - 1;
|
number_suggested = number_suggested - 1;
|
||||||
if(number_suggested < 0) number_suggested = 0;
|
if(number_suggested < 0) number_suggested = 0;
|
||||||
|
|||||||
@@ -48,12 +48,12 @@ var Search = {
|
|||||||
yt_url+="&q="+keyword;
|
yt_url+="&q="+keyword;
|
||||||
if(music)yt_url+="&videoCategoryId=10";
|
if(music)yt_url+="&videoCategoryId=10";
|
||||||
if(pagination) yt_url += "&pageToken=" + pagination;
|
if(pagination) yt_url += "&pageToken=" + pagination;
|
||||||
var vid_url = "https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id&fields=pageInfo,items(id,contentDetails,snippet(categoryId,channelTitle,publishedAt,title,description,tags,thumbnails))&key="+api_key.youtube+"&id=";
|
var vid_url = "https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id&fields=pageInfo,items(id,contentDetails,snippet(categoryId,channelTitle,publishedAt,title,description,thumbnails))&key="+api_key.youtube+"&id=";
|
||||||
if(related) {
|
if(related) {
|
||||||
var yt_url = "https://www.googleapis.com/youtube/v3/search?part=snippet&maxResults=25&relatedToVideoId="+keyword+"&type=video&key="+api_key.youtube;
|
var yt_url = "https://www.googleapis.com/youtube/v3/search?part=snippet&maxResults=25&relatedToVideoId="+keyword+"&type=video&key="+api_key.youtube;
|
||||||
var vid_url = "https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id&key="+api_key.youtube+"&id=";
|
var vid_url = "https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id&key="+api_key.youtube+"&id=";
|
||||||
}
|
}
|
||||||
//https://www.googleapis.com/youtube/v3/videos?key={API-key}&fields=items(snippet(title,description,tags))&part=snippet&id={video_id}
|
//https://www.googleapis.com/youtube/v3/videos?key={API-key}&fields=items(snippet(title,description))&part=snippet&id={video_id}
|
||||||
|
|
||||||
Helper.addClass(document.querySelector("#search-btn .material-icons"), "hide");
|
Helper.addClass(document.querySelector("#search-btn .material-icons"), "hide");
|
||||||
Helper.removeClass("#search_loader", "hide");
|
Helper.removeClass("#search_loader", "hide");
|
||||||
@@ -108,8 +108,6 @@ var Search = {
|
|||||||
var id=song.id;
|
var id=song.id;
|
||||||
duration = duration.replace("PT","").replace("H","h ").replace("M","m ").replace("S","s");
|
duration = duration.replace("PT","").replace("H","h ").replace("M","m ").replace("S","s");
|
||||||
var thumb=song.snippet.thumbnails.medium.url;
|
var thumb=song.snippet.thumbnails.medium.url;
|
||||||
var tags = "";
|
|
||||||
if(song.snippet.tags != undefined) tags = song.snippet.tags.join(",");
|
|
||||||
//$("#results").append(result_html);
|
//$("#results").append(result_html);
|
||||||
var songs = pre_result.cloneNode(true);
|
var songs = pre_result.cloneNode(true);
|
||||||
songs.querySelector(".search-title").innerText = title;
|
songs.querySelector(".search-title").innerText = title;
|
||||||
@@ -121,7 +119,6 @@ var Search = {
|
|||||||
songs.querySelector("#add-many").setAttribute("data-video-length", secs);
|
songs.querySelector("#add-many").setAttribute("data-video-length", secs);
|
||||||
//$($(songs).querySelector("div")[0]).setAttribute("onclick", "submitAndClose('"+id+"','"+enc_title+"',"+secs+");");
|
//$($(songs).querySelector("div")[0]).setAttribute("onclick", "submitAndClose('"+id+"','"+enc_title+"',"+secs+");");
|
||||||
songs.querySelector("#temp-results").setAttribute("data-video-id", id);
|
songs.querySelector("#temp-results").setAttribute("data-video-id", id);
|
||||||
songs.querySelector("#temp-results").setAttribute("data-tags", tags.toLowerCase());
|
|
||||||
songs.querySelector("#temp-results").setAttribute("data-video-title", enc_title);
|
songs.querySelector("#temp-results").setAttribute("data-video-title", enc_title);
|
||||||
songs.querySelector("#temp-results").setAttribute("data-video-length", secs);
|
songs.querySelector("#temp-results").setAttribute("data-video-length", secs);
|
||||||
songs.querySelector(".open-externally").setAttribute("href", "https://www.youtube.com/watch?v=" + id);
|
songs.querySelector(".open-externally").setAttribute("href", "https://www.youtube.com/watch?v=" + id);
|
||||||
@@ -248,7 +245,6 @@ var Search = {
|
|||||||
songs.querySelector("#add-many").setAttribute("data-video-title", enc_title);
|
songs.querySelector("#add-many").setAttribute("data-video-title", enc_title);
|
||||||
songs.querySelector("#add-many").setAttribute("data-video-length", secs);
|
songs.querySelector("#add-many").setAttribute("data-video-length", secs);
|
||||||
//$($(songs).querySelector("div")[0]).setAttribute("onclick", "submitAndClose('"+id+"','"+enc_title+"',"+secs+");");
|
//$($(songs).querySelector("div")[0]).setAttribute("onclick", "submitAndClose('"+id+"','"+enc_title+"',"+secs+");");
|
||||||
songs.querySelector("#temp-results").setAttribute("data-tags", song.genre.toLowerCase());
|
|
||||||
songs.querySelector("#temp-results").setAttribute("data-video-id", id);
|
songs.querySelector("#temp-results").setAttribute("data-video-id", id);
|
||||||
songs.querySelector("#temp-results").setAttribute("data-video-title", enc_title);
|
songs.querySelector("#temp-results").setAttribute("data-video-title", enc_title);
|
||||||
songs.querySelector("#temp-results").setAttribute("data-video-length", secs);
|
songs.querySelector("#temp-results").setAttribute("data-video-length", secs);
|
||||||
@@ -445,8 +441,8 @@ var Search = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
submitAndClose: function(id,title,duration, start, end, source, thumbnail, tags){
|
submitAndClose: function(id,title,duration, start, end, source, thumbnail){
|
||||||
Search.submit(id,title, duration, false, 0, 1, start, end, source, thumbnail, tags);
|
Search.submit(id,title, duration, false, 0, 1, start, end, source, thumbnail);
|
||||||
Helper.setHtml("#results", '');
|
Helper.setHtml("#results", '');
|
||||||
Search.showSearch();
|
Search.showSearch();
|
||||||
document.getElementById("search").value = "";
|
document.getElementById("search").value = "";
|
||||||
@@ -649,9 +645,9 @@ addVideos: function(ids){
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
submit: function(id,title,duration, playlist, num, full_num, start, end, source, thumbnail, tags){
|
submit: function(id,title,duration, playlist, num, full_num, start, end, source, thumbnail){
|
||||||
if((client || Helper.mobilecheck()) && !socket_connected) {
|
if((client || Helper.mobilecheck()) && !socket_connected) {
|
||||||
add_ajax(id, title, duration, playlist, num, full_num, start, end, source, thumbnail, tags);
|
add_ajax(id, title, duration, playlist, num, full_num, start, end, source, thumbnail);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(offline && document.getElementsByName("addsongs")[0].checked && document.getElementsByName("addsongs")[0].disabled){
|
if(offline && document.getElementsByName("addsongs")[0].checked && document.getElementsByName("addsongs")[0].disabled){
|
||||||
@@ -688,8 +684,7 @@ submit: function(id,title,duration, playlist, num, full_num, start, end, source,
|
|||||||
list: chan.toLowerCase(),
|
list: chan.toLowerCase(),
|
||||||
duration: duration,
|
duration: duration,
|
||||||
source: source,
|
source: source,
|
||||||
thumbnail: thumbnail,
|
thumbnail: thumbnail
|
||||||
tags: tags
|
|
||||||
});
|
});
|
||||||
}//[id, decodeURIComponent(title), adminpass, duration, playlist]);
|
}//[id, decodeURIComponent(title), adminpass, duration, playlist]);
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ var Suggestions = {
|
|||||||
Helper.removeClass("#suggest-song-html", "hide");
|
Helper.removeClass("#suggest-song-html", "hide");
|
||||||
}
|
}
|
||||||
var get_url = "https://www.googleapis.com/youtube/v3/search?part=snippet&relatedToVideoId="+id+"&type=video&key="+api_key.youtube;
|
var get_url = "https://www.googleapis.com/youtube/v3/search?part=snippet&relatedToVideoId="+id+"&type=video&key="+api_key.youtube;
|
||||||
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,tags,thumbnails))&key="+api_key.youtube+"&id=";
|
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="+api_key.youtube+"&id=";
|
||||||
|
|
||||||
Helper.ajax({
|
Helper.ajax({
|
||||||
type: "GET",
|
type: "GET",
|
||||||
@@ -93,7 +93,6 @@ var Suggestions = {
|
|||||||
duration = Helper.secondsToOther(Search.durationToSeconds(duration));
|
duration = Helper.secondsToOther(Search.durationToSeconds(duration));
|
||||||
var video_id = song.id;
|
var video_id = song.id;
|
||||||
var video_title = song.snippet.title;
|
var video_title = song.snippet.title;
|
||||||
var tags = song.snippet.tags;
|
|
||||||
var viewCount = 0;
|
var viewCount = 0;
|
||||||
try {
|
try {
|
||||||
viewCount = song.statistics.viewCount.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
|
viewCount = song.statistics.viewCount.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
|
||||||
@@ -102,7 +101,7 @@ var Suggestions = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
document.getElementById("suggest-song-html").insertAdjacentHTML("beforeend", List.generateSong({id: video_id, title: video_title, length: length, duration: duration, votes: viewCount, extra: "Views", source: "youtube", tags:tags}, false, false, false));
|
document.getElementById("suggest-song-html").insertAdjacentHTML("beforeend", List.generateSong({id: video_id, title: video_title, length: length, duration: duration, votes: viewCount, extra: "Views", source: "youtube"}, false, false, false));
|
||||||
} catch(e) {}
|
} catch(e) {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,6 +39,23 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{/unless}}
|
{{/unless}}
|
||||||
|
<div id="advanced_filter" class="modal modal-fixed-footer">
|
||||||
|
<div class="modal-content">
|
||||||
|
<h4>Advanced</h4>
|
||||||
|
<p>Here you can search by category. Keep in mind, this uses the category/genre/tags defined by the uploader of the video on YouTube or the song on SoundCloud</p>
|
||||||
|
<div class="row container">
|
||||||
|
<form id="filter-form">
|
||||||
|
<input type="text" class="col s9" name="filtersearch_value" placeholder="Find.." id="filtersearch_input" autocomplete="off" />
|
||||||
|
<a href="#" class="waves-effect waves-light btn col s2 orange submit-filter-search">Search</a>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<div class="filter-results">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<a href="#!" class=" modal-action modal-close waves-effect waves-green btn-flat">Close</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div id="help" class="modal modal-fixed-footer">
|
<div id="help" class="modal modal-fixed-footer">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<h4>Help</h4>
|
<h4>Help</h4>
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
<div class="num_of_found">
|
<div class="num_of_found">
|
||||||
<span id="num_found">0</span>/<span id="of_total_found">0</span>
|
<span id="num_found">0</span>/<span id="of_total_found">0</span>
|
||||||
</div>
|
</div>
|
||||||
|
<a href="#" id="open_advanced_filter"><i class="material-icons">filter_list</i></a>
|
||||||
<a href="#" id="close_find_form_button"><i class="material-icons">clear</i></a>
|
<a href="#" id="close_find_form_button"><i class="material-icons">clear</i></a>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -755,7 +755,7 @@ router.route('/api/search/:channel_name/').post(function(req, res) {
|
|||||||
res.status(400).send(to_send);
|
res.status(400).send(to_send);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
searchQuery = req.body.searchQuery;
|
searchQuery = req.body.searchQuery.toLowerCase();
|
||||||
var token = "";
|
var token = "";
|
||||||
if(req.body.hasOwnProperty("token")) {
|
if(req.body.hasOwnProperty("token")) {
|
||||||
token = req.body.token;
|
token = req.body.token;
|
||||||
|
|||||||
Reference in New Issue
Block a user