diff --git a/app/client/package.json b/app/client/package.json index 74ff44f..f1189f7 100644 --- a/app/client/package.json +++ b/app/client/package.json @@ -1,6 +1,6 @@ { "name": "client", - "version": "0.1.0", + "version": "1.0.0", "private": true, "scripts": { "serve": "vue-cli-service serve", diff --git a/app/client/src/components/LibraryHistory.vue b/app/client/src/components/LibraryHistory.vue new file mode 100644 index 0000000..a3f25c6 --- /dev/null +++ b/app/client/src/components/LibraryHistory.vue @@ -0,0 +1,58 @@ + + + \ No newline at end of file diff --git a/app/client/src/views/DownloadsPage.vue b/app/client/src/views/DownloadsPage.vue index d345803..6957cc2 100644 --- a/app/client/src/views/DownloadsPage.vue +++ b/app/client/src/views/DownloadsPage.vue @@ -54,11 +54,11 @@ {{download.track.title}} {{download.track.artistString}} - + mdi-delete - + @@ -79,7 +79,6 @@ export default { //Remove download from queue async deleteDownload(i) { await this.$axios.delete(`/downloads/${i}`); - this.$root.getDownloads(); } } } diff --git a/app/client/src/views/Library.vue b/app/client/src/views/Library.vue index e92b811..37093ee 100644 --- a/app/client/src/views/Library.vue +++ b/app/client/src/views/Library.vue @@ -15,6 +15,9 @@ Playlists + + History + @@ -37,6 +40,11 @@ + + + + + @@ -47,11 +55,12 @@ import LibraryTracks from '@/components/LibraryTracks.vue'; import LibraryAlbums from '@/components/LibraryAlbums.vue'; import LibraryArtists from '@/components/LibraryArtists.vue'; import LibraryPlaylists from '@/components/LibraryPlaylists.vue'; +import LibraryHistory from '@/components/LibraryHistory.vue'; export default { name: 'Library', components: { - LibraryTracks, LibraryAlbums, LibraryArtists, LibraryPlaylists + LibraryTracks, LibraryAlbums, LibraryArtists, LibraryPlaylists, LibraryHistory }, props: { routeTab: { diff --git a/app/package.json b/app/package.json index 8282ed2..ae1fff7 100644 --- a/app/package.json +++ b/app/package.json @@ -1,7 +1,7 @@ { "name": "freezer", "private": true, - "version": "1.0.2", + "version": "1.0.3", "description": "", "main": "background.js", "scripts": { diff --git a/app/src/downloads.js b/app/src/downloads.js index d437834..37ddeee 100644 --- a/app/src/downloads.js +++ b/app/src/downloads.js @@ -163,9 +163,11 @@ class Downloads { if (index == -1) { this.downloads = []; await new Promise((res, rej) => { - this.db.remove({state: 0}, {}, (e) => {}); + this.db.remove({state: 0}, {multi: true}, (e) => {}); res(); - }) + }); + + if (this.qucb) this.qucb(); return; } @@ -176,6 +178,8 @@ class Downloads { res(); }); this.downloads.splice(index, 1); + + if (this.qucb) this.qucb(); } } diff --git a/app/src/server.js b/app/src/server.js index 24de9fe..1b4e5c6 100644 --- a/app/src/server.js +++ b/app/src/server.js @@ -193,6 +193,17 @@ app.get('/albums/:id', async (req, res) => { res.send(albums); }) +//Get tracks from listening history +app.get('/history', async (req, res) => { + let data = await deezer.callApi('deezer.pageProfile', { + nb: 200, + tab: "history", + user_id: deezer.userId.toString() + }); + let tracks = data.results.TAB.history.data.map((t) => new Track(t)); + res.send(tracks); +}); + //Search, q as query parameter app.get('/search', async (req, res) => { let data = await deezer.callApi('deezer.pageSearch', {query: req.query.q, nb: 100}); @@ -496,27 +507,24 @@ async function createServer(electron = false, ecb) { downloads: downloads.downloads }); }); - - //Emit download progress updates - setInterval(() => { - sockets.forEach((s) => { - if (!downloads.download) { - s.emit('download', null); - return; - } - - s.emit('download', { - id: downloads.download.id, - size: downloads.download.size, - downloaded: downloads.download.downloaded, - track: downloads.download.track, - path: downloads.download.path - }); - }); - }, 500); - }); await downloads.load(); + //Emit download progress updates + setInterval(() => { + sockets.forEach((s) => { + if (!downloads.download) { + s.emit('download', null); + return; + } + s.emit('download', { + id: downloads.download.id, + size: downloads.download.size, + downloaded: downloads.download.downloaded, + track: downloads.download.track, + path: downloads.download.path + }); + }); + }, 350); //Start server server.on('error', (e) => { diff --git a/package.json b/package.json index e7ad220..5db9e0e 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "freezer", "private": true, - "version": "1.0.2", + "version": "1.0.3", "description": "", "scripts": { "pack": "electron-builder --dir",