mirror of
https://github.com/KevinMidboe/zoff.git
synced 2025-12-08 20:48:48 +00:00
Better handling of errors in videos, only removing if an error is found, else a regular skip is performed
This commit is contained in:
@@ -5,6 +5,7 @@ var Frontpage = require(pathThumbnails + '/handlers/frontpage.js');
|
|||||||
var projects = require(pathThumbnails + "/handlers/aggregates.js");
|
var projects = require(pathThumbnails + "/handlers/aggregates.js");
|
||||||
var crypto = require('crypto');
|
var crypto = require('crypto');
|
||||||
var Filter = require('bad-words');
|
var Filter = require('bad-words');
|
||||||
|
var Search = require(pathThumbnails + '/handlers/search.js');
|
||||||
var filter = new Filter({ placeHolder: 'x'});
|
var filter = new Filter({ placeHolder: 'x'});
|
||||||
/*var filter = {
|
/*var filter = {
|
||||||
clean: function(str) {
|
clean: function(str) {
|
||||||
@@ -187,80 +188,82 @@ function skip(list, guid, coll, offline, socket, callback) {
|
|||||||
if(docs.length > 0 && (docs[0].userpass == undefined || docs[0].userpass == "" || (list.hasOwnProperty('userpass') && docs[0].userpass == list.userpass))) {
|
if(docs.length > 0 && (docs[0].userpass == undefined || docs[0].userpass == "" || (list.hasOwnProperty('userpass') && docs[0].userpass == list.userpass))) {
|
||||||
Functions.check_inlist(coll, guid, socket, offline, undefined, "place 12");
|
Functions.check_inlist(coll, guid, socket, offline, undefined, "place 12");
|
||||||
|
|
||||||
|
var video_id;
|
||||||
adminpass = "";
|
adminpass = "";
|
||||||
video_id = list.id;
|
video_id = list.id;
|
||||||
err = list.error;
|
err = list.error;
|
||||||
var error = false;
|
Search.check_if_error_or_blocked(video_id, coll, err == "5" || err == "100" || err == "101" || err == "150", function(trueError) {
|
||||||
var video_id;
|
var error = false;
|
||||||
if(err != "5" && err != "100" && err != "101" && err != "150")
|
if(!trueError)
|
||||||
{
|
{
|
||||||
adminpass = list.pass;
|
adminpass = list.pass;
|
||||||
}else if(err == "5" || err == "100" || err == "101" || err == "150"){
|
}else if(trueError){
|
||||||
error = true;
|
error = true;
|
||||||
}
|
}
|
||||||
hash = adminpass;
|
hash = adminpass;
|
||||||
//db.collection(coll + "_settings").find(function(err, docs){
|
//db.collection(coll + "_settings").find(function(err, docs){
|
||||||
var strictSkip = false;
|
var strictSkip = false;
|
||||||
var strictSkipNumber = 10;
|
var strictSkipNumber = 10;
|
||||||
if(docs[0].strictSkip) strictSkip = docs[0].strictSkip;
|
if(docs[0].strictSkip) strictSkip = docs[0].strictSkip;
|
||||||
if(docs[0].strictSkipNumber) strictSkipNumber = docs[0].strictSkipNumber;
|
if(docs[0].strictSkipNumber) strictSkipNumber = docs[0].strictSkipNumber;
|
||||||
if(docs !== null && docs.length !== 0)
|
if(docs !== null && docs.length !== 0)
|
||||||
{
|
|
||||||
|
|
||||||
if(!docs[0].skip || (docs[0].adminpass == hash && docs[0].adminpass !== "") || error)
|
|
||||||
{
|
{
|
||||||
|
|
||||||
db.collection("frontpage_lists").find({"_id": coll}, function(err, frontpage_viewers){
|
if(!docs[0].skip || (docs[0].adminpass == hash && docs[0].adminpass !== "") || error)
|
||||||
if(
|
{
|
||||||
(strictSkip && (error || (docs[0].adminpass == hash && docs[0].adminpass !== "") || (docs[0].skips.length+1 >= strictSkipNumber))) ||
|
|
||||||
(!strictSkip && ((frontpage_viewers[0].viewers/2 <= docs[0].skips.length+1 && !Functions.contains(docs[0].skips, guid) && frontpage_viewers[0].viewers != 2) ||
|
db.collection("frontpage_lists").find({"_id": coll}, function(err, frontpage_viewers){
|
||||||
(frontpage_viewers[0].viewers == 2 && docs[0].skips.length+1 == 2 && !Functions.contains(docs[0].skips, guid)) ||
|
if(
|
||||||
(docs[0].adminpass == hash && docs[0].adminpass !== "" && docs[0].skip))))
|
(strictSkip && (error || (docs[0].adminpass == hash && docs[0].adminpass !== "") || (docs[0].skips.length+1 >= strictSkipNumber))) ||
|
||||||
{
|
(!strictSkip && ((frontpage_viewers[0].viewers/2 <= docs[0].skips.length+1 && !Functions.contains(docs[0].skips, guid) && frontpage_viewers[0].viewers != 2) ||
|
||||||
Functions.checkTimeout("skip", 1, coll, coll, error, true, socket, function() {
|
(frontpage_viewers[0].viewers == 2 && docs[0].skips.length+1 == 2 && !Functions.contains(docs[0].skips, guid)) ||
|
||||||
change_song(coll, error, video_id, docs);
|
(docs[0].adminpass == hash && docs[0].adminpass !== "" && docs[0].skip))))
|
||||||
socket.emit("toast", "skip");
|
{
|
||||||
db.collection("user_names").find({"guid": guid}, function(err, docs) {
|
Functions.checkTimeout("skip", 1, coll, coll, error, true, socket, function() {
|
||||||
if(docs.length == 1) {
|
change_song(coll, error, video_id, docs);
|
||||||
db.collection("registered_users").find({"_id": docs[0].name}, function(err, n) {
|
socket.emit("toast", "skip");
|
||||||
var icon = false;
|
db.collection("user_names").find({"guid": guid}, function(err, docs) {
|
||||||
if(n.length > 0 && n[0].icon) {
|
if(docs.length == 1) {
|
||||||
icon = n[0].icon;
|
db.collection("registered_users").find({"_id": docs[0].name}, function(err, n) {
|
||||||
}
|
var icon = false;
|
||||||
io.to(coll).emit('chat', {from: docs[0].name, icon: icon, msg: " skipped"});
|
if(n.length > 0 && n[0].icon) {
|
||||||
});
|
icon = n[0].icon;
|
||||||
|
}
|
||||||
|
io.to(coll).emit('chat', {from: docs[0].name, icon: icon, msg: " skipped"});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}, "The channel is skipping too often, please wait ");
|
||||||
|
} else if(!Functions.contains(docs[0].skips, guid)){
|
||||||
|
db.collection(coll + "_settings").update({ id: "config" }, {$push:{skips:guid}}, function(err, d){
|
||||||
|
if(frontpage_viewers[0].viewers == 2 && !strictSkip) {
|
||||||
|
to_skip = 1;
|
||||||
|
} else if(strictSkip) {
|
||||||
|
to_skip = (strictSkipNumber) - docs[0].skips.length-1;
|
||||||
|
} else {
|
||||||
|
to_skip = (Math.ceil(frontpage_viewers[0].viewers/2) - docs[0].skips.length-1);
|
||||||
}
|
}
|
||||||
|
socket.emit("toast", to_skip + " more are needed to skip!");
|
||||||
|
db.collection("user_names").find({"guid": guid}, function(err, docs) {
|
||||||
|
if(docs.length == 1) {
|
||||||
|
db.collection("registered_users").find({"_id": docs[0].name}, function(err, n) {
|
||||||
|
var icon = false;
|
||||||
|
if(n.length > 0 && n[0].icon) {
|
||||||
|
icon = n[0].icon;
|
||||||
|
}
|
||||||
|
socket.to(coll).emit('chat', {from: docs[0].name, msg: " voted to skip"});
|
||||||
|
})
|
||||||
|
}
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}, "The channel is skipping too often, please wait ");
|
}else{
|
||||||
} else if(!Functions.contains(docs[0].skips, guid)){
|
socket.emit("toast", "alreadyskip");
|
||||||
db.collection(coll + "_settings").update({ id: "config" }, {$push:{skips:guid}}, function(err, d){
|
}
|
||||||
if(frontpage_viewers[0].viewers == 2 && !strictSkip) {
|
});
|
||||||
to_skip = 1;
|
}else
|
||||||
} else if(strictSkip) {
|
socket.emit("toast", "noskip");
|
||||||
to_skip = (strictSkipNumber) - docs[0].skips.length-1;
|
}
|
||||||
} else {
|
});
|
||||||
to_skip = (Math.ceil(frontpage_viewers[0].viewers/2) - docs[0].skips.length-1);
|
|
||||||
}
|
|
||||||
socket.emit("toast", to_skip + " more are needed to skip!");
|
|
||||||
db.collection("user_names").find({"guid": guid}, function(err, docs) {
|
|
||||||
if(docs.length == 1) {
|
|
||||||
db.collection("registered_users").find({"_id": docs[0].name}, function(err, n) {
|
|
||||||
var icon = false;
|
|
||||||
if(n.length > 0 && n[0].icon) {
|
|
||||||
icon = n[0].icon;
|
|
||||||
}
|
|
||||||
socket.to(coll).emit('chat', {from: docs[0].name, msg: " voted to skip"});
|
|
||||||
})
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}else{
|
|
||||||
socket.emit("toast", "alreadyskip");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}else
|
|
||||||
socket.emit("toast", "noskip");
|
|
||||||
}
|
|
||||||
//});
|
//});
|
||||||
} else {
|
} else {
|
||||||
socket.emit("auth_required");
|
socket.emit("auth_required");
|
||||||
@@ -307,44 +310,23 @@ function change_song(coll, error, id, conf, callback, socket) {
|
|||||||
console.log("empty list", coll, callback, id, conf);
|
console.log("empty list", coll, callback, id, conf);
|
||||||
}
|
}
|
||||||
if(now_playing_doc.length > 0 && ((id && id == now_playing_doc[0].id) || !id)) {
|
if(now_playing_doc.length > 0 && ((id && id == now_playing_doc[0].id) || !id)) {
|
||||||
if(error && now_playing_doc[0].source == "youtube"){
|
if(error){
|
||||||
request('http://img.youtube.com/vi/'+now_playing_doc[0].id+'/mqdefault.jpg', function (err, response, body) {
|
db.collection(coll).remove({now_playing:true, id:id}, function(err, docs){
|
||||||
if (err || response.statusCode == 404) {
|
var next_song;
|
||||||
db.collection(coll).remove({now_playing:true, id:id}, function(err, docs){
|
if(now_playing_doc.length == 2) next_song = now_playing_doc[1].id;
|
||||||
var next_song;
|
change_song_post(coll, next_song, conf, callback, socket, error);
|
||||||
if(now_playing_doc.length == 2) next_song = now_playing_doc[1].id;
|
if(!callback) {
|
||||||
change_song_post(coll, next_song, conf, callback, socket);
|
io.to(coll).emit("channel", {type: "deleted", value: now_playing_doc[0].id, removed: true});
|
||||||
if(!callback) {
|
|
||||||
io.to(coll).emit("channel", {type: "deleted", value: now_playing_doc[0].id, removed: true});
|
|
||||||
}
|
|
||||||
if(docs.deletedCount == 1) {
|
|
||||||
db.collection("frontpage_lists").update({_id: coll, count: {$gt: 0}}, {$inc: {count: -1}, $set:{accessed: Functions.get_time()}}, {upsert: true}, function(err, docs){});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
if((conf[0].skipped_time != undefined && conf[0].skipped_time != Functions.get_time()) ||conf[0].skipped_time == undefined) {
|
|
||||||
db.collection(coll + "_settings").update({id: "config"}, {$set: {skipped_time: Functions.get_time()}}, function(err, updated){
|
|
||||||
db.collection(coll).update({now_playing:true, id:id}, {
|
|
||||||
$set:{
|
|
||||||
now_playing:false,
|
|
||||||
votes:0,
|
|
||||||
guids:[]
|
|
||||||
}
|
|
||||||
},{multi:true}, function(err, docs){
|
|
||||||
var next_song;
|
|
||||||
if(now_playing_doc.length == 2) next_song = now_playing_doc[1].id;
|
|
||||||
if(docs.n >= 1) change_song_post(coll, next_song, conf, callback, socket);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
if(docs.deletedCount == 1) {
|
||||||
});
|
db.collection("frontpage_lists").update({_id: coll, count: {$gt: 0}}, {$inc: {count: -1}, $set:{accessed: Functions.get_time()}}, {upsert: true}, function(err, docs){});
|
||||||
|
}
|
||||||
|
});
|
||||||
} else if(conf[0].removeplay === true){
|
} else if(conf[0].removeplay === true){
|
||||||
db.collection(coll).remove({now_playing:true, id:id}, function(err, docs){
|
db.collection(coll).remove({now_playing:true, id:id}, function(err, docs){
|
||||||
var next_song;
|
var next_song;
|
||||||
if(now_playing_doc.length == 2) next_song = now_playing_doc[1].id;
|
if(now_playing_doc.length == 2) next_song = now_playing_doc[1].id;
|
||||||
change_song_post(coll, next_song, conf, callback, socket);
|
change_song_post(coll, next_song, conf, callback, socket, error);
|
||||||
if(!callback) {
|
if(!callback) {
|
||||||
io.to(coll).emit("channel", {type: "deleted", value: now_playing_doc[0].id, removed: true});
|
io.to(coll).emit("channel", {type: "deleted", value: now_playing_doc[0].id, removed: true});
|
||||||
}
|
}
|
||||||
@@ -353,7 +335,6 @@ function change_song(coll, error, id, conf, callback, socket) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
if((conf[0].skipped_time != undefined && conf[0].skipped_time != Functions.get_time()) ||conf[0].skipped_time == undefined) {
|
if((conf[0].skipped_time != undefined && conf[0].skipped_time != Functions.get_time()) ||conf[0].skipped_time == undefined) {
|
||||||
db.collection(coll).update({now_playing:true, id:id}, {
|
db.collection(coll).update({now_playing:true, id:id}, {
|
||||||
$set:{
|
$set:{
|
||||||
@@ -364,14 +345,14 @@ function change_song(coll, error, id, conf, callback, socket) {
|
|||||||
},{multi:true}, function(err, docs){
|
},{multi:true}, function(err, docs){
|
||||||
var next_song;
|
var next_song;
|
||||||
if(now_playing_doc.length == 2) next_song = now_playing_doc[1].id;
|
if(now_playing_doc.length == 2) next_song = now_playing_doc[1].id;
|
||||||
change_song_post(coll, next_song, conf, callback, socket);
|
change_song_post(coll, next_song, conf, callback, socket, error);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if(now_playing_doc.length > 0 && now_playing_doc[0].now_playing == true && now_playing_doc.length > 1 && now_playing_doc[1].id == id) {
|
if(now_playing_doc.length > 0 && now_playing_doc[0].now_playing == true && now_playing_doc.length > 1 && now_playing_doc[1].id == id) {
|
||||||
db.collection(coll).update({id: now_playing_doc[0].id}, {$set: {now_playing: false}}, function(e, d) {
|
db.collection(coll).update({id: now_playing_doc[0].id}, {$set: {now_playing: false}}, function(e, d) {
|
||||||
change_song(coll, error, id, conf, callback, socket);
|
change_song(coll, error, id, conf, callback, socket, error);
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
return;
|
return;
|
||||||
@@ -382,7 +363,7 @@ function change_song(coll, error, id, conf, callback, socket) {
|
|||||||
//});
|
//});
|
||||||
}
|
}
|
||||||
|
|
||||||
function change_song_post(coll, next_song, conf, callback, socket) {
|
function change_song_post(coll, next_song, conf, callback, socket, removed) {
|
||||||
//coll = coll.replace(/ /g,'');
|
//coll = coll.replace(/ /g,'');
|
||||||
db.collection(coll).aggregate([{
|
db.collection(coll).aggregate([{
|
||||||
$match:{
|
$match:{
|
||||||
@@ -425,13 +406,13 @@ function change_song_post(coll, next_song, conf, callback, socket) {
|
|||||||
}, function(err, returnDocs){
|
}, function(err, returnDocs){
|
||||||
//db.collection(coll + "_settings").find({id: "config"}, function(err, conf){
|
//db.collection(coll + "_settings").find({id: "config"}, function(err, conf){
|
||||||
if(!callback) {
|
if(!callback) {
|
||||||
io.to(coll).emit("channel", {type: "song_change", time: Functions.get_time(), remove: conf[0].removeplay});
|
io.to(coll).emit("channel", {type: "song_change", time: Functions.get_time(), remove: conf[0].removeplay || removed});
|
||||||
send_play(coll);
|
send_play(coll);
|
||||||
} else {
|
} else {
|
||||||
if(socket == undefined) {
|
if(socket == undefined) {
|
||||||
io.to(coll).emit("channel", {type: "song_change", time: Functions.get_time(), remove: conf[0].removeplay});
|
io.to(coll).emit("channel", {type: "song_change", time: Functions.get_time(), remove: conf[0].removeplay || removed});
|
||||||
} else {
|
} else {
|
||||||
socket.to(coll).emit("channel", {type: "song_change", time: Functions.get_time(), remove: conf[0].removeplay});
|
socket.to(coll).emit("channel", {type: "song_change", time: Functions.get_time(), remove: conf[0].removeplay || removed});
|
||||||
}
|
}
|
||||||
send_play(coll, socket, true);
|
send_play(coll, socket, true);
|
||||||
callback();
|
callback();
|
||||||
|
|||||||
@@ -12,6 +12,60 @@ try {
|
|||||||
var request = require('request');
|
var request = require('request');
|
||||||
var db = require(pathThumbnails + '/handlers/db.js');
|
var db = require(pathThumbnails + '/handlers/db.js');
|
||||||
|
|
||||||
|
function check_if_error_or_blocked(id, channel, errored, callback) {
|
||||||
|
if(!errored) {
|
||||||
|
callback(false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
db.collection(channel).find({id: id, now_playing: true}, function(err, song) {
|
||||||
|
if(song.length == 0) {
|
||||||
|
callback(false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var song_info = song[0];
|
||||||
|
if(song_info.source != "soundcloud") {
|
||||||
|
request({
|
||||||
|
type: "GET",
|
||||||
|
url: "https://www.googleapis.com/youtube/v3/videos?part=id,status,contentDetails&key="+key+"&id=" + song_info.id,
|
||||||
|
}, function(error, response, body) {
|
||||||
|
try {
|
||||||
|
var resp = JSON.parse(body);
|
||||||
|
if(resp.pageInfo.totalResults == 0) {
|
||||||
|
callback(true);
|
||||||
|
return;
|
||||||
|
} else if(!resp.status.embeddable) {
|
||||||
|
callback(true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
callback(false);
|
||||||
|
return;
|
||||||
|
} catch(e){
|
||||||
|
callback(true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
request({
|
||||||
|
type: "GET",
|
||||||
|
url: "http://api.soundcloud.com/tracks/" + song_info.id + "?client_id=" + soundcloudKey,
|
||||||
|
}, function(error, response, body) {
|
||||||
|
try {
|
||||||
|
var resp = JSON.parse(body);
|
||||||
|
if(resp.sharing != "public" || resp.embeddable_by != "all") {
|
||||||
|
callback(true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
callback(false);
|
||||||
|
return;
|
||||||
|
} catch(e){
|
||||||
|
callback(true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
function filterFunction(el) {
|
function filterFunction(el) {
|
||||||
return el != null &&
|
return el != null &&
|
||||||
el != "" &&
|
el != "" &&
|
||||||
@@ -162,14 +216,11 @@ function get_genres_youtube_recursive(arr, channel, i, callback) {
|
|||||||
url: "https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id,topicDetails&key="+key+"&id=" + ids.join(","),
|
url: "https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id,topicDetails&key="+key+"&id=" + ids.join(","),
|
||||||
}, function(error, response, body) {
|
}, function(error, response, body) {
|
||||||
if(error) {
|
if(error) {
|
||||||
console.log(arr, channel, i, arr[i]);
|
|
||||||
console.log("error start 1", error, ids, "error end");
|
|
||||||
get_genres_youtube_recursive(arr, channel, i + ids.length, callback);
|
get_genres_youtube_recursive(arr, channel, i + ids.length, callback);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var resp = JSON.parse(body);
|
var resp = JSON.parse(body);
|
||||||
if(!resp.hasOwnProperty("items")) {
|
if(!resp.hasOwnProperty("items")) {
|
||||||
console.log("error start 2", resp, ids, "error end");
|
|
||||||
get_genres_youtube_recursive(arr, channel, i + ids.length, callback);
|
get_genres_youtube_recursive(arr, channel, i + ids.length, callback);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -203,12 +254,10 @@ function get_genres_youtube(ids, channel) {
|
|||||||
url: "https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id,topicDetails&key="+key+"&id=" + ids,
|
url: "https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id,topicDetails&key="+key+"&id=" + ids,
|
||||||
}, function(error, response, body) {
|
}, function(error, response, body) {
|
||||||
if(error) {
|
if(error) {
|
||||||
console.log("error start", error, ids, "error end");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var resp = JSON.parse(body);
|
var resp = JSON.parse(body);
|
||||||
if(!resp.hasOwnProperty("items")) {
|
if(!resp.hasOwnProperty("items")) {
|
||||||
console.log("error start", resp, ids, "error end");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(resp.items.length > 0) {
|
if(resp.items.length > 0) {
|
||||||
@@ -445,6 +494,7 @@ function durationToSeconds(duration) {
|
|||||||
return hours*60*60+minutes*60+seconds;
|
return hours*60*60+minutes*60+seconds;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
module.exports.check_if_error_or_blocked = check_if_error_or_blocked;
|
||||||
module.exports.get_genres_list_recursive = get_genres_list_recursive;
|
module.exports.get_genres_list_recursive = get_genres_list_recursive;
|
||||||
module.exports.get_genres_soundcloud = get_genres_soundcloud;
|
module.exports.get_genres_soundcloud = get_genres_soundcloud;
|
||||||
module.exports.get_genres_youtube = get_genres_youtube;
|
module.exports.get_genres_youtube = get_genres_youtube;
|
||||||
|
|||||||
@@ -345,6 +345,7 @@ var Player = {
|
|||||||
Player.soundcloud_player.bind("finish", Player.soundcloudFinish);
|
Player.soundcloud_player.bind("finish", Player.soundcloudFinish);
|
||||||
Player.soundcloud_player.bind("pause", Player.soundcloudPause);
|
Player.soundcloud_player.bind("pause", Player.soundcloudPause);
|
||||||
Player.soundcloud_player.bind("play", Player.soundcloudPlay);
|
Player.soundcloud_player.bind("play", Player.soundcloudPlay);
|
||||||
|
Player.soundcloud_player.bind("error", Player.soundcloudError);
|
||||||
window.player = player;
|
window.player = player;
|
||||||
Player.soundcloud_dead = false;
|
Player.soundcloud_dead = false;
|
||||||
SC_player.get('/tracks', {
|
SC_player.get('/tracks', {
|
||||||
@@ -355,16 +356,19 @@ var Player = {
|
|||||||
document.querySelector("#soundcloud_listen_link").href = sound.permalink_url;
|
document.querySelector("#soundcloud_listen_link").href = sound.permalink_url;
|
||||||
document.querySelector(".soundcloud_info_container .green").href = sound.user.permalink_url;
|
document.querySelector(".soundcloud_info_container .green").href = sound.user.permalink_url;
|
||||||
//document.querySelector(".soundcloud_info_container .red").href = sound.user.permalink_url;
|
//document.querySelector(".soundcloud_info_container .red").href = sound.user.permalink_url;
|
||||||
}).catch(function(){});
|
}).catch(function(e){});
|
||||||
if(_autoplay) {
|
if(_autoplay) {
|
||||||
player.play().then(function(){
|
player.play().then(function(){
|
||||||
Player.soundcloud_player.setVolume(embed ? 1 : Crypt.get_volume() / 100);
|
Player.soundcloud_player.setVolume(embed ? 1 : Crypt.get_volume() / 100);
|
||||||
Player.soundcloud_player.seek((seekTo) * 1000);
|
Player.soundcloud_player.seek((seekTo) * 1000);
|
||||||
}).catch(function(e){
|
}).catch(function(e){});
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}).catch(function(error) {
|
}).catch(function(error) {
|
||||||
Player.initializeSCWidget(_autoplay, id);
|
if(error.status == 404) {
|
||||||
|
Player.errorHandler({data: 5});
|
||||||
|
} else {
|
||||||
|
Player.initializeSCWidget(_autoplay, id);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
//Player.initializeSCWidget(_autoplay, id);
|
//Player.initializeSCWidget(_autoplay, id);
|
||||||
//Player.initializeSCWidget(_autoplay, id);
|
//Player.initializeSCWidget(_autoplay, id);
|
||||||
@@ -401,6 +405,7 @@ var Player = {
|
|||||||
Player.soundcloud_player.unbind("finish", Player.soundcloudFinish);
|
Player.soundcloud_player.unbind("finish", Player.soundcloudFinish);
|
||||||
Player.soundcloud_player.unbind("pause", Player.soundcloudPause);
|
Player.soundcloud_player.unbind("pause", Player.soundcloudPause);
|
||||||
Player.soundcloud_player.unbind("play", Player.soundcloudPlay);
|
Player.soundcloud_player.unbind("play", Player.soundcloudPlay);
|
||||||
|
Player.soundcloud_player.unbind("error", Player.soundcloudError);
|
||||||
//Player.soundcloud_player.unbind("seek", Player.soundcloudSeek);
|
//Player.soundcloud_player.unbind("seek", Player.soundcloudSeek);
|
||||||
}catch(e){}
|
}catch(e){}
|
||||||
var this_autoplay = "";
|
var this_autoplay = "";
|
||||||
@@ -418,10 +423,15 @@ var Player = {
|
|||||||
Player.soundcloud_player.bind("finish", Player.soundcloudFinish);
|
Player.soundcloud_player.bind("finish", Player.soundcloudFinish);
|
||||||
Player.soundcloud_player.bind("pause", Player.soundcloudPause);
|
Player.soundcloud_player.bind("pause", Player.soundcloudPause);
|
||||||
Player.soundcloud_player.bind("play", Player.soundcloudPlay);
|
Player.soundcloud_player.bind("play", Player.soundcloudPlay);
|
||||||
|
Player.soundcloud_player.bind("error", Player.soundcloudError);
|
||||||
Player.soundcloud_player.load('https://api.soundcloud.com/tracks/' + id + this_autoplay, {single_active: false});
|
Player.soundcloud_player.load('https://api.soundcloud.com/tracks/' + id + this_autoplay, {single_active: false});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
soundcloudError: function() {
|
||||||
|
Player.errorHandler({data: "5"});
|
||||||
|
},
|
||||||
|
|
||||||
addSCWidgetElements: function() {
|
addSCWidgetElements: function() {
|
||||||
try {
|
try {
|
||||||
Player.soundcloud_player = SC_widget.Widget(document.querySelector("#scplayerElement"));
|
Player.soundcloud_player = SC_widget.Widget(document.querySelector("#scplayerElement"));
|
||||||
@@ -429,6 +439,7 @@ var Player = {
|
|||||||
Player.soundcloud_player.bind("finish", Player.soundcloudFinish);
|
Player.soundcloud_player.bind("finish", Player.soundcloudFinish);
|
||||||
Player.soundcloud_player.bind("pause", Player.soundcloudPause);
|
Player.soundcloud_player.bind("pause", Player.soundcloudPause);
|
||||||
Player.soundcloud_player.bind("play", Player.soundcloudPlay);
|
Player.soundcloud_player.bind("play", Player.soundcloudPlay);
|
||||||
|
Player.soundcloud_player.bind("error", Player.soundcloudError);
|
||||||
|
|
||||||
SC_player.get('/tracks', {
|
SC_player.get('/tracks', {
|
||||||
ids: id
|
ids: id
|
||||||
@@ -438,7 +449,8 @@ var Player = {
|
|||||||
document.querySelector("#soundcloud_listen_link").href = sound.permalink_url;
|
document.querySelector("#soundcloud_listen_link").href = sound.permalink_url;
|
||||||
document.querySelector(".soundcloud_info_container .green").href = sound.user.permalink_url;
|
document.querySelector(".soundcloud_info_container .green").href = sound.user.permalink_url;
|
||||||
//document.querySelector(".soundcloud_info_container .red").href = sound.user.permalink_url;
|
//document.querySelector(".soundcloud_info_container .red").href = sound.user.permalink_url;
|
||||||
}).catch(function(){});
|
}).catch(function(e){
|
||||||
|
});
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
setTimeout(function() {
|
setTimeout(function() {
|
||||||
Player.addSCWidgetElements();
|
Player.addSCWidgetElements();
|
||||||
|
|||||||
Reference in New Issue
Block a user