diff --git a/testfiles/metadatasearch.js b/testfiles/metadatasearch.js new file mode 100644 index 0000000..1a8ace3 --- /dev/null +++ b/testfiles/metadatasearch.js @@ -0,0 +1,27 @@ +import * as http from "http.js" + +function waitFor(signal) { + signal.connect(() => { utility.exit(); }); + utility.exec(); +} + +function queryMakeItPersonal(searchCriteria) { + const lyricsModel = utility.queryMakeItPersonal(searchCriteria); + if (!lyricsModel.areResultsAvailable) { + waitFor(lyricsModel.resultsAvailable); + } + if (!lyricsModel.fetchLyrics(lyricsModel.index(0, 0))) { + waitFor(lyricsModel.lyricsAvailable); + } + const lyrics = lyricsModel.lyricsValue(lyricsModel.index(0, 0)); + if (lyrics && lyrics.startsWith("Bots have beat this API")) { + return undefined; + } + return lyrics; +} + +export function queryLyrics(searchCriteria) { + return queryMakeItPersonal(searchCriteria); +} + + diff --git a/testfiles/set-tags.js b/testfiles/set-tags.js index 8bbd340..75fed35 100644 --- a/testfiles/set-tags.js +++ b/testfiles/set-tags.js @@ -1,5 +1,4 @@ -// import another module as an example how imports work -import * as http from "http.js" +import * as metadatasearch from "metadatasearch.js" export function main(file) { // iterate though all tags of the file to change fields in all of them @@ -21,11 +20,6 @@ function isString(value) { return typeof(value) === "string" || value instanceof String; } -function waitFor(signal) { - signal.connect(() => { utility.exit(); }); - utility.exec(); -} - function logTagInfo(file, tag) { // log tag type and supported fields const fields = tag.fields; @@ -84,17 +78,9 @@ function addLyrics(file, tag) { } const firstTitle = fields.title?.[0]?.content; const firstArtist = fields.artist?.[0]?.content; - if (!firstTitle || !firstArtist) { - return; + if (firstTitle && firstArtist) { + fields.lyrics = metadatasearch.queryLyrics({title: firstTitle, artist: firstArtist}); } - const lyricsModel = utility.queryMakeItPersonal({title: firstTitle, artist: firstArtist}); - if (!lyricsModel.areResultsAvailable) { - waitFor(lyricsModel.resultsAvailable); - } - if (!lyricsModel.fetchLyrics(lyricsModel.index(0, 0))) { - waitFor(lyricsModel.lyricsAvailable); - } - fields.lyrics = lyricsModel.lyricsValue(lyricsModel.index(0, 0)); } function addMiscFields(file, tag) {