diff --git a/common/lkt.js b/common/lkt.js index ab909b19855b34e64d3ccbdc351698b647147ab9..126a49d38750c5b5036c9cd9e733a3aaf24f36bf 100644 --- a/common/lkt.js +++ b/common/lkt.js @@ -109,7 +109,7 @@ class LktClient { return __getResult(client); } - static commandPlaylistList() { + static commandPlaylistsList() { var client = new this(); var once = false; var result = {}; @@ -134,6 +134,32 @@ class LktClient { return __getResult(client); } + static commandPlaylistListKaras(playlist) { + var client = new this(); + var once = false; + var result = {}; + var dataObj; + function __getResult(client) { + return new Promise(resolv => { + client.m_socket.setTimeout(0); + client.m_socket.on('data', data => { + if (!once) { + client.m_socket.write(`listplaylist ${playlist}\n`); + once = true; + return null; + } else { + client.close(); + dataObj = __mpdToObject(data); + result = data.split("\n"); + result.splice(dataObj.continue); + resolv(result); + } + }); + }); + } + return __getResult(client); + } + /* Arguments: * - command: The command to execute * Result: @@ -324,4 +350,8 @@ function __mpdStatusToBool(string) { return string.split(/ /) == 'OK' ? true : false; } +function _karaStringToObject(string) { + +} + module.exports = LktClient; diff --git a/instance/main.js b/instance/main.js index 6a2e60424d6b49cf7a9d697a71f3acef2aa83f58..679cf61fd816c4077ace8a5b0388f63bc152a6c5 100644 --- a/instance/main.js +++ b/instance/main.js @@ -170,6 +170,7 @@ function configureLeftPanel() { playlistSelect.onchange = () => { currentPlaylist = playlistSelect.value; + ipcRenderer.send('get-playlist-data',playlistSelect.value); } } @@ -241,6 +242,19 @@ ipcRenderer.on('playlists-updated', (event, playlists) => { }); }); +ipcRenderer.on('playlist-data-responce', (event,karas) => { + var playListPanel = document.getElementById('playlistList') + playListPanel.innerHTML = ''; + karas.forEach(kara => { + ejs.renderFile(__dirname + '/views/kara.ejs', { kara: kara }, (err, data) => { + if (err) logger.error('instance', err); + playListPanel.innerHTML = ` + ${playListPanel.innerHTML} + ${data}`; + }); + }); +}); + function addDBKaraEventHandlers(element) { element.addEventListener('dragstart', onDragStartDB, false); element.addEventListener('dragend', onDragEnd, false); diff --git a/instance/views/panels.ejs b/instance/views/panels.ejs index c7fa4ec35d09f994c72718aab258d2571430cb8b..57f0e19c9fc08db4ed055e42927b49514386e202 100644 --- a/instance/views/panels.ejs +++ b/instance/views/panels.ejs @@ -32,7 +32,7 @@ <ul class="panel bd-highlight mb-3 pl-0" id="queueList"></ul> </div> <div id="playlist-panel" class="tab-pane fade" role="tabpanel" aria-labelledby="playlist-tab"> - <ul id="playlistList"> <head> Bonjour</head></ul> + <ul id="playlistList"></ul> </div> </div> </div> diff --git a/main.js b/main.js index 6a6e2610ac3df5d085044ed887fc08c2132e2c84..aef438ab26692502f5cc028c5a384804d657fa5b 100644 --- a/main.js +++ b/main.js @@ -351,12 +351,14 @@ ipcMain.on('set-settings', (event, arg) => { ipcMain.on('verify-playlists-reloaded-request',(event,arg) => { if(lkt.isPlaylistsUpdated()) { lkt.setPlaylistsUpdated(false); - lkt.commandPlaylistList().then((playlists) => { + lkt.commandPlaylistsList().then((playlists) => { event.reply('playlists-updated', playlists); }); } }); -ipcMain.on('update-playlist-request', (event, arg) => { - +ipcMain.on('get-playlist-data', (event, playlist) => { + lkt.commandPlaylistListKaras(playlist).then((karas) => { + event.reply('playlist-data-responce',karas); + }) }); \ No newline at end of file