aboutsummaryrefslogtreecommitdiffstats
path: root/build/server.js
diff options
context:
space:
mode:
Diffstat (limited to 'build/server.js')
-rw-r--r--build/server.js73
1 files changed, 36 insertions, 37 deletions
diff --git a/build/server.js b/build/server.js
index af245ac..9adcb91 100644
--- a/build/server.js
+++ b/build/server.js
@@ -3773,7 +3773,7 @@ server_Cache.prototype = {
return;
}
var ytdl = require("@distube/ytdl-core");
- haxe_Log.trace("Caching " + url + " to " + outName + "...",{ fileName : "src/server/Cache.hx", lineNumber : 115, className : "server.Cache", methodName : "cacheYoutubeVideo"});
+ haxe_Log.trace("Caching " + url + " to " + outName + "...",{ fileName : "src/server/Cache.hx", lineNumber : 125, className : "server.Cache", methodName : "cacheYoutubeVideo"});
this.main.send(client,{ type : "Progress", progress : { type : "Caching", ratio : 0, data : outName}});
var agent = null;
var cookiesPath = "" + this.main.userDir + "/cookies.json";
@@ -3782,7 +3782,7 @@ server_Cache.prototype = {
}
var promise = ytdl.getInfo(url,{ agent : agent});
promise.then(function(info) {
- haxe_Log.trace("Get info with " + info.formats.length + " formats",{ fileName : "src/server/Cache.hx", lineNumber : 133, className : "server.Cache", methodName : "cacheYoutubeVideo"});
+ haxe_Log.trace("Get info with " + info.formats.length + " formats",{ fileName : "src/server/Cache.hx", lineNumber : 143, className : "server.Cache", methodName : "cacheYoutubeVideo"});
var audioFormat;
try {
var ytdl1 = ytdl.chooseFormat;
@@ -3801,7 +3801,7 @@ server_Cache.prototype = {
} catch( _g ) {
var e = haxe_Exception.caught(_g);
_gthis.log(client,"Error: audio format not found");
- haxe_Log.trace(e,{ fileName : "src/server/Cache.hx", lineNumber : 140, className : "server.Cache", methodName : "cacheYoutubeVideo"});
+ haxe_Log.trace(e,{ fileName : "src/server/Cache.hx", lineNumber : 150, className : "server.Cache", methodName : "cacheYoutubeVideo"});
var _g1 = [];
var _g2 = 0;
var _g3 = info.formats;
@@ -3812,7 +3812,7 @@ server_Cache.prototype = {
_g1.push(v);
}
}
- haxe_Log.trace(_g1,{ fileName : "src/server/Cache.hx", lineNumber : 141, className : "server.Cache", methodName : "cacheYoutubeVideo"});
+ haxe_Log.trace(_g1,{ fileName : "src/server/Cache.hx", lineNumber : 151, className : "server.Cache", methodName : "cacheYoutubeVideo"});
return;
}
var videoFormat;
@@ -3831,9 +3831,31 @@ server_Cache.prototype = {
_g.push(v);
}
}
- haxe_Log.trace(_g,{ fileName : "src/server/Cache.hx", lineNumber : 146, className : "server.Cache", methodName : "cacheYoutubeVideo"});
+ haxe_Log.trace(_g,{ fileName : "src/server/Cache.hx", lineNumber : 156, className : "server.Cache", methodName : "cacheYoutubeVideo"});
return;
}
+ var tmp = Std.parseInt(videoFormat.contentLength);
+ var videoSize = tmp != null ? tmp : 0;
+ var tmp = Std.parseInt(audioFormat.contentLength);
+ var audioSize = tmp != null ? tmp : 0;
+ var hasSpace = _gthis.removeOlderCache((videoSize + audioSize) * 2 + _gthis.freeSpaceBlock);
+ if(!hasSpace) {
+ videoFormat = _gthis.getBestYoutubeVideoFormat(info.formats,videoFormat.qualityLabel);
+ var tmp = Std.parseInt(videoFormat.contentLength);
+ var videoSize = tmp != null ? tmp : 0;
+ var tmp = Std.parseInt(audioFormat.contentLength);
+ var audioSize = tmp != null ? tmp : 0;
+ var hasSpace = _gthis.removeOlderCache((videoSize + audioSize) * 2 + _gthis.freeSpaceBlock);
+ if(!hasSpace) {
+ _gthis.remove(inVideoName);
+ _gthis.remove(inAudioName);
+ _gthis.main.send(client,{ type : "Progress", progress : { type : "Canceled", ratio : 1}});
+ _gthis.log(client,_gthis.notEnoughSpaceErrorText);
+ }
+ if(!hasSpace) {
+ return;
+ }
+ }
var dlVideo = ytdl(url,{ format : videoFormat, agent : agent});
dlVideo.pipe(js_node_Fs.createWriteStream("" + _gthis.cacheDir + "/" + inVideoName));
dlVideo.on("error",function(err) {
@@ -3853,7 +3875,7 @@ server_Cache.prototype = {
var count = 0;
var onComplete = function(type) {
count += 1;
- haxe_Log.trace("" + type + " track downloaded (" + count + "/2)",{ fileName : "src/server/Cache.hx", lineNumber : 175, className : "server.Cache", methodName : "cacheYoutubeVideo"});
+ haxe_Log.trace("" + type + " track downloaded (" + count + "/2)",{ fileName : "src/server/Cache.hx", lineNumber : 197, className : "server.Cache", methodName : "cacheYoutubeVideo"});
if(count < 2) {
return;
}
@@ -3872,6 +3894,8 @@ server_Cache.prototype = {
_gthis.remove(inAudioName);
_gthis.main.send(client,{ type : "Progress", progress : { type : "Canceled", ratio : 1}});
_gthis.log(client,_gthis.notEnoughSpaceErrorText);
+ }
+ if(!hasSpace) {
return;
}
var args = ("-y -i ./" + inVideoName + " -i ./" + inAudioName + " -c copy -map 0:v -map 1:a ./" + outName).split(" ");
@@ -3919,35 +3943,7 @@ server_Cache.prototype = {
dlAudio.on("finish",function() {
onComplete("Audio");
});
- var isAudioStart = true;
- dlAudio.on("progress",function(chunkLength,downloaded,contentLength) {
- if(isAudioStart) {
- isAudioStart = false;
- var hasSpace = _gthis.removeOlderCache(contentLength + _gthis.freeSpaceBlock);
- if(!hasSpace) {
- dlVideo.destroy();
- dlAudio.destroy();
- _gthis.remove(inVideoName);
- _gthis.remove(inAudioName);
- _gthis.main.send(client,{ type : "Progress", progress : { type : "Canceled", ratio : 1}});
- _gthis.main.serverMessage(client,_gthis.notEnoughSpaceErrorText);
- }
- }
- });
- var isVideoStart = true;
dlVideo.on("progress",function(chunkLength,downloaded,contentLength) {
- if(isVideoStart) {
- isVideoStart = false;
- var hasSpace = _gthis.removeOlderCache(contentLength + _gthis.freeSpaceBlock);
- if(!hasSpace) {
- dlVideo.destroy();
- dlAudio.destroy();
- _gthis.remove(inVideoName);
- _gthis.remove(inAudioName);
- _gthis.main.send(client,{ type : "Progress", progress : { type : "Canceled", ratio : 1}});
- _gthis.main.serverMessage(client,_gthis.notEnoughSpaceErrorText);
- }
- }
var v = downloaded / contentLength;
var ratio = v < 0 ? 0 : v > 1 ? 1 : v;
_gthis.main.send(client,{ type : "Progress", progress : { type : "Downloading", ratio : ratio}});
@@ -3980,13 +3976,13 @@ server_Cache.prototype = {
var _gthis = this;
var tmp = js_node_Fs.statfs;
if(tmp == null) {
- haxe_Log.trace("Warning: no fs.statfs support in current nodejs version (needs v18+)",{ fileName : "src/server/Cache.hx", lineNumber : 278, className : "server.Cache", methodName : "getFreeDiskSpace"});
+ haxe_Log.trace("Warning: no fs.statfs support in current nodejs version (needs v18+)",{ fileName : "src/server/Cache.hx", lineNumber : 272, className : "server.Cache", methodName : "getFreeDiskSpace"});
callback(this.storageLimit);
return;
}
tmp("/",function(err,stats) {
if(err != null) {
- haxe_Log.trace(err,{ fileName : "src/server/Cache.hx", lineNumber : 284, className : "server.Cache", methodName : "getFreeDiskSpace"});
+ haxe_Log.trace(err,{ fileName : "src/server/Cache.hx", lineNumber : 278, className : "server.Cache", methodName : "getFreeDiskSpace"});
callback(_gthis.storageLimit);
return;
}
@@ -4068,11 +4064,14 @@ server_Cache.prototype = {
}
return total;
}
- ,getBestYoutubeVideoFormat: function(formats) {
+ ,getBestYoutubeVideoFormat: function(formats,ignoreQuality) {
var qPriority = [1080,720,480,360,240,144];
var _g = 0;
while(_g < qPriority.length) {
var quality = "" + qPriority[_g++] + "p";
+ if(quality == ignoreQuality) {
+ continue;
+ }
var _g1 = 0;
while(_g1 < formats.length) {
var format = formats[_g1];
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage