mirror of
https://github.com/Tzahi12345/YoutubeDL-Material.git
synced 2026-04-01 21:01:30 +03:00
Fixed bug that preventing playlists from being downloaded a zip
This commit is contained in:
@@ -849,12 +849,13 @@ function getVideoFormatID(name)
|
||||
}
|
||||
}
|
||||
|
||||
async function createPlaylistZipFile(fileNames, type, outputName, fullPathProvided = null) {
|
||||
async function createPlaylistZipFile(fileNames, type, outputName, fullPathProvided = null, user_uid = null) {
|
||||
return new Promise(async resolve => {
|
||||
let zipFolderPath = null;
|
||||
|
||||
if (!fullPathProvided) {
|
||||
zipFolderPath = path.join(__dirname, (type === 'audio') ? audioFolderPath : videoFolderPath);
|
||||
zipFolderPath = path.join(type === 'audio' ? audioFolderPath : videoFolderPath);
|
||||
if (user_uid) zipFolderPath = path.join(config_api.getConfigItem('ytdl_users_base_path'), user_uid, zipFolderPath);
|
||||
} else {
|
||||
zipFolderPath = path.join(__dirname, config_api.getConfigItem('ytdl_subscriptions_base_path'));
|
||||
}
|
||||
@@ -879,7 +880,7 @@ async function createPlaylistZipFile(fileNames, type, outputName, fullPathProvid
|
||||
for (let i = 0; i < fileNames.length; i++) {
|
||||
let fileName = fileNames[i];
|
||||
let fileNamePathRemoved = path.parse(fileName).base;
|
||||
let file_path = !fullPathProvided ? zipFolderPath + fileName + ext : fileName;
|
||||
let file_path = !fullPathProvided ? path.join(zipFolderPath, fileName + ext) : fileName;
|
||||
archive.file(file_path, {name: fileNamePathRemoved + ext})
|
||||
}
|
||||
|
||||
@@ -1793,9 +1794,9 @@ const optionalJwt = function (req, res, next) {
|
||||
const uuid = using_body ? req.body.uuid : req.query.uuid;
|
||||
const uid = using_body ? req.body.uid : req.query.uid;
|
||||
const type = using_body ? req.body.type : req.query.type;
|
||||
const file = !req.query.id ? auth_api.getUserVideo(uuid, uid, type, true, req.body) : auth_api.getUserPlaylist(uuid, req.query.id, null, true);
|
||||
const is_shared = file ? file['sharingEnabled'] : false;
|
||||
if (is_shared) {
|
||||
const playlist_id = using_body ? req.body.id : req.query.id;
|
||||
const file = !playlist_id ? auth_api.getUserVideo(uuid, uid, type, true, req.body) : auth_api.getUserPlaylist(uuid, playlist_id, null, false);
|
||||
if (file) {
|
||||
req.can_watch = true;
|
||||
return next();
|
||||
} else {
|
||||
@@ -2548,7 +2549,8 @@ app.post('/api/downloadFile', optionalJwt, async (req, res) => {
|
||||
for (let i = 0; i < fileNames.length; i++) {
|
||||
fileNames[i] = decodeURIComponent(fileNames[i]);
|
||||
}
|
||||
file = await createPlaylistZipFile(fileNames, type, outputName, fullPathProvided);
|
||||
file = await createPlaylistZipFile(fileNames, type, outputName, fullPathProvided, req.body.uuid);
|
||||
file = path.join(__dirname, file);
|
||||
}
|
||||
res.sendFile(file, function (err) {
|
||||
if (err) {
|
||||
|
||||
@@ -283,6 +283,7 @@ exports.getUserVideos = function(user_uid, type) {
|
||||
}
|
||||
|
||||
exports.getUserVideo = function(user_uid, file_uid, type, requireSharing = false) {
|
||||
let file = null;
|
||||
if (!type) {
|
||||
file = users_db.get('users').find({uid: user_uid}).get(`files.audio`).find({uid: file_uid}).value();
|
||||
if (!file) {
|
||||
|
||||
Reference in New Issue
Block a user