Compare commits

...

4 Commits

Author SHA1 Message Date
Jill 280db5f94c individual track dls 2021-10-19 22:30:55 +03:00
Jill 5773cb5884 add track download button 2021-10-19 22:08:05 +03:00
Jill b0add35601 header 2021-10-19 21:38:38 +03:00
Jill 1513b34da0 light theme support 2021-10-19 21:11:10 +03:00
2 changed files with 364 additions and 58 deletions

File diff suppressed because one or more lines are too long

View File

@ -92,7 +92,12 @@ app.ws('/api/album', async (ws, req) => {
}
};
const album = await deezerInstance.api.get_album(req.query.id);
let album;
try {
album = await deezerInstance.api.get_album(req.query.id);
} catch(err) {
return ws.close();
}
listener.send('coverArt', album.cover_medium);
@ -104,6 +109,40 @@ app.ws('/api/album', async (ws, req) => {
ws.close();
});
app.ws('/api/track', async (ws, req) => {
if (!req.query.id) return ws.close();
const listener = {
send(key, data) {
if (data.downloaded) {
ws.send(JSON.stringify({key: 'download', data: data.downloadPath.replace(process.cwd(), '')}));
setTimeout(() => {
fs.unlinkSync(data.downloadPath);
}, 1000 * 60 * 60 /* 1 hour */);
}
ws.send(JSON.stringify({key, data}));
console.log(`[${key}] ${inspect(data)}`);
}
};
let track;
try {
track = await deezerInstance.api.get_track(req.query.id);
} catch(err) {
return ws.close();
}
listener.send('coverArt', track.album.cover_medium);
let dlObj = await deemix.generateDownloadObject(deezerInstance, 'https://www.deezer.com/track/' + req.query.id, deezer.TrackFormats.FLAC);
deemixDownloader = new deemix.downloader.Downloader(deezerInstance, dlObj, deemixSettings, listener);
await deemixDownloader.start();
ws.close();
});
deezerInstance.login_via_arl(process.env.DEEZER_ARL).then(() => {
console.log('logged into deezer');
app.listen(port, () => {