diff --git a/common/lkt.js b/common/lkt.js index 7de3070c90769d6e28604287f6d270167acaf66c..6783ba8790ac495ee7ef692b11abddf2c5e6b7d7 100644 --- a/common/lkt.js +++ b/common/lkt.js @@ -392,6 +392,25 @@ class LktClient { return LktClient.__execSimple(`playlistdelete ${playlist}`); } + static commandQueueAddMulId(IdList) { + var command; + var promize = new Promise(()=>null); + var size = 10; var arrayOfArrays = []; + for (var i=0; i<IdList.length; i+=size) { + arrayOfArrays.push(IdList.slice(i,i+size)); + } + arrayOfArrays.forEach(idbatch => { + command = "addid" + if(idbatch) { + idbatch.forEach(id => { + command = command + " " + id; + }); + promize = promize.then(LktClient.__execSimple(command)); + } + }); + return null; + } + static errorStatus(error) { logger.error('Unable to access lektor status:' + error); } diff --git a/instance/index.js b/instance/index.js index 41e67f40aa2c9451752d8d77dd8a18e74812bb8a..e04546c661ba11feeab7a46e650e370399d6497b 100644 --- a/instance/index.js +++ b/instance/index.js @@ -16,6 +16,7 @@ var currentPlaylist = ""; var isQueueView = true var clearMenuQueue; var clearMenuPlaylist; +var karaDBIDList = []; function updatePlayPauseButton(state) { logger.debug('instance', `State was ${state}`); @@ -108,6 +109,10 @@ window.onload = () => { switchQP.innerText = "View playlist"; switchQP.onclick = ()=>switchQueuePlaylist(); + document.getElementById('addResearchToQueue').onclick = ()=>{ + ipcRenderer.send('add-kara-queue-multiple-id', karaDBIDList); + }; + $('#openMdtView').click(() => $('#mdt-view').toggle()); @@ -246,7 +251,9 @@ window.onload = () => { ipcRenderer.on('reload-db-responce', (event, arg) => { logger.debug('instance', `Web page got reload-db`); document.getElementById('panelLeft').innerHTML = ''; + karaDBIDList = []; arg.forEach(kara => { + karaDBIDList.push(kara.id); ejs.renderFile(__dirname + '/views/karaDBListItem.ejs', { kara: kara }, (err, data) => { if (err) logger.error('instance', err); $('#panelLeft').append(data); diff --git a/instance/views/menubar.ejs b/instance/views/menubar.ejs index b6f48567a93b77a8a6945589017dbd4e07c514a7..e29c320c4ae0d83f3f65280a3d71fc50e491050a 100644 --- a/instance/views/menubar.ejs +++ b/instance/views/menubar.ejs @@ -11,6 +11,7 @@ {id: 'selectDatabase', tooltip: 'Database search', name: 'database'}, {id: 'selectPlaylist', tooltip: 'Playlist search', name: 'tag'}, {id: 'selectPool', tooltip: "Kurisu's pool search", name: 'bookmark'}, + {id: 'addResearchToQueue', tooltip: "Add research result to queue", name: 'upload'}, ]}); %></div> <div class="p-1 bd-highlight mb-1 mr-auto ml-auto" style="width: 40%;-webkit-app-region: no-drag;"> <input id="filterInput" type="text" class="form-control filterInput" placeholder="Filter..."> diff --git a/main.js b/main.js index 79223eb2517150a5ecb84f72bdec25f8a3303916..fa7219a8ffa32299ba9a5836bfcc66db4452ca52 100644 --- a/main.js +++ b/main.js @@ -295,6 +295,10 @@ ipcMain.on('get-playlist-data', (event, playlist) => { } }); +ipcMain.on('add-kara-queue-multiple-id', (event, IdList) => { + lkt.commandQueueAddMulId(IdList); +}); + ipcMain.on('new-playlist', (event,arg) => {