Skip to content

Commit

Permalink
Merge pull request #48 from dregimbal/directoryFix
Browse files Browse the repository at this point in the history
Directory fix
  • Loading branch information
SwapnilSoni1999 committed Sep 21, 2020
2 parents 5eb5656 + fae79b5 commit 40cadc3
Show file tree
Hide file tree
Showing 5 changed files with 15 additions and 11 deletions.
16 changes: 8 additions & 8 deletions cli.js
Original file line number Diff line number Diff line change
Expand Up @@ -79,12 +79,13 @@ if (!input[0]) {
const urlType = await urlParser(await filter.removeQuery(link));
var songData = {};
const URL = link;
let outputDir = path.normalize((cli.flags.output != null) ? cli.flags.output : process.cwd());
switch(urlType) {
case 'song': {
songData = await spotifye.getTrack(URL);
const songName = songData.name + ' ' + songData.artists[0];

const output = await filter.validateOutput(path.resolve((cli.flags.output != null) ? cli.flags.output : process.cwd(), `${songData.name} - ${songData.artists[0]}.mp3`));
const output = path.resolve(outputDir, await filter.validateOutput(`${songData.name} - ${songData.artists[0]}.mp3`));
spinner.info(`Saving Song to: ${output}`);

spinner.succeed(`Song: ${songData.name} - ${songData.artists[0]}`);
Expand All @@ -101,10 +102,9 @@ if (!input[0]) {
var cacheCounter = 0;
songData = await spotifye.getPlaylist(URL);

var dir = await filter.validateOutput(path.join((cli.flags.output != null) ? cli.flags.output : process.cwd(), songData.name));

var dir = path.join(outputDir, filter.validateOutputSync(songData.name));
spinner.info(`Total Songs: ${songData.total_tracks}`)
spinner.info(`Saving Playlist: ` + path.join( (cli.flags.output != null) ? cli.flags.output : process.cwd(), songData.name));
spinner.info(`Saving Playlist: ${dir}`);

cacheCounter = await cache.read(dir, spinner);
dir = path.join(dir, '.spdlcache');
Expand All @@ -117,7 +117,7 @@ if (!input[0]) {

const ytLink = await getLink(songNam.name + ' ' + songNam.artists[0]);

const output = await filter.validateOutput(path.resolve((cli.flags.output != null) ? cli.flags.output : process.cwd(), songData.name, `${songNam.name} - ${songNam.artists[0]}.mp3`));
const output = path.resolve(outputDir, filter.validateOutputSync(songData.name), filter.validateOutputSync(`${songNam.name} - ${songNam.artists[0]}.mp3`));
spinner.start("Downloading...");

download(ytLink, output, spinner, async function() {
Expand All @@ -141,10 +141,10 @@ if (!input[0]) {
songData = await spotifye.getAlbum(URL);
songData.name = songData.name.replace('/', '-');

var dir = await filter.validateOutput(path.join((cli.flags.output != null) ? cli.flags.output : process.cwd(), songData.name));
var dir = path.join(outputDir, await filter.validateOutput(songData.name));

spinner.info(`Total Songs: ${songData.total_tracks}`);
spinner.info(`Saving Album: ` + path.join((cli.flags.output != null) ? cli.flags.output : process.cwd(), songData.name));
spinner.info(`Saving Album: ` + path.join(outputDir, songData.name));

cacheCounter = await cache.read(dir, spinner);
dir = path.join(dir, '.spdlcache');
Expand All @@ -157,7 +157,7 @@ if (!input[0]) {

const ytLink = await getLink(songNam.name + ' ' + songNam.artists[0]);

const output = await filter.validateOutput(path.resolve((cli.flags.output != null) ? cli.flags.output : process.cwd(), songData.name, `${songNam.name} - ${songNam.artists[0]}.mp3`));
const output = path.resolve(outputDir, await filter.validateOutput(songData.name, `${songNam.name} - ${songNam.artists[0]}.mp3`));
spinner.start("Downloading...");

download(ytLink, output, spinner, async function () {
Expand Down
2 changes: 1 addition & 1 deletion lib/cache.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ module.exports = {
read: async (dir, spinner) => {
var cacheCounter;
if (!fs.existsSync(dir)) {
fs.mkdirSync(dir);
fs.mkdirSync(dir, {recursive: true});
dir = path.join(dir, ".spdlcache");
return 0;
}
Expand Down
2 changes: 1 addition & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "spotify-dl",
"productName": "Spotify Downloader",
"version": "0.4.2",
"version": "0.4.3",
"description": "Spotify Songs, Playlist & Album Downloader",
"main": "app.js",
"bin": {
Expand Down
4 changes: 4 additions & 0 deletions util/filters.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
'use strict';

module.exports = {
validateOutputSync: function (output) {
output = output.replace(/[&\/\\#+$!"~%:*?<>{}\|]/g, '');
return output;
},
validateOutput: async function (output) {
output = output.replace(/[&\/\\#+$!"~%:*?<>{}\|]/g, '');
return output;
Expand Down

0 comments on commit 40cadc3

Please sign in to comment.