From 00e002faebd4f08303570053b0829ab3298941f6 Mon Sep 17 00:00:00 2001 From: Cody Robibero Date: Mon, 5 Aug 2024 16:00:54 -0600 Subject: [PATCH] Add lyric fetcher settings to library options --- .../libraryoptionseditor.js | 49 +++++++++++++++++++ .../libraryoptionseditor.template.html | 3 ++ src/strings/en-us.json | 2 + 3 files changed, 54 insertions(+) diff --git a/src/components/libraryoptionseditor/libraryoptionseditor.js b/src/components/libraryoptionseditor/libraryoptionseditor.js index fd726d4150..8b9eddd467 100644 --- a/src/components/libraryoptionseditor/libraryoptionseditor.js +++ b/src/components/libraryoptionseditor/libraryoptionseditor.js @@ -215,6 +215,40 @@ function renderSubtitleFetchers(page, availableOptions, libraryOptions) { elem.innerHTML = html; } +function renderLyricFetchers(page, availableOptions, libraryOptions) { + let html = ''; + const elem = page.querySelector('.lyricFetchers'); + + let plugins = availableOptions.LyricFetchers; + plugins = getOrderedPlugins(plugins, libraryOptions.LyricFetcherOrder || []); + if (!plugins.length) return html; + + html += `

${globalize.translate('LabelLyricDownloaders')}

`; + html += '
'; + console.log(libraryOptions); + for (let i = 0; i < plugins.length; i++) { + const plugin = plugins[i]; + html += `
`; + const isChecked = libraryOptions.DisabledLyricFetchers ? !libraryOptions.DisabledLyricFetchers.includes(plugin.Name) : plugin.DefaultEnabled; + const checkedHtml = isChecked ? ' checked="checked"' : ''; + html += ``; + html += '
'; + html += '

'; + html += escapeHtml(plugin.Name); + html += '

'; + html += '
'; + if (i > 0) { + html += ``; + } else if (plugins.length > 1) { + html += ``; + } + html += '
'; + } + html += '
'; + html += `
${globalize.translate('LyricDownloadersHelp')}
`; + elem.innerHTML = html; +} + function getImageFetchersForTypeHtml(availableTypeOptions, libraryOptionsForType) { let html = ''; let plugins = availableTypeOptions.ImageFetchers; @@ -284,6 +318,7 @@ function populateMetadataSettings(parent, contentType) { renderMetadataReaders(parent, availableOptions.MetadataReaders); renderMetadataFetchers(parent, availableOptions, {}); renderSubtitleFetchers(parent, availableOptions, {}); + renderLyricFetchers(parent, availableOptions, {}); renderImageFetchers(parent, availableOptions, {}); availableOptions.SubtitleFetchers.length ? parent.querySelector('.subtitleDownloadSettings').classList.remove('hide') : parent.querySelector('.subtitleDownloadSettings').classList.add('hide'); }).catch(() => { @@ -460,6 +495,18 @@ function setSubtitleFetchersIntoOptions(parent, options) { }); } +function setLyricFetchersIntoOptions(parent, options) { + options.DisabledLyricFetchers = Array.prototype.map.call(Array.prototype.filter.call(parent.querySelectorAll('.chkLyricFetcher'), elem => { + return !elem.checked; + }), elem => { + return elem.getAttribute('data-pluginname'); + }); + + options.LyricFetcherOrder = Array.prototype.map.call(parent.querySelectorAll('.lyricFetcherItem'), elem => { + return elem.getAttribute('data-pluginname'); + }); +} + function setMetadataFetchersIntoOptions(parent, options) { const sections = parent.querySelectorAll('.metadataFetcher'); for (const section of sections) { @@ -567,6 +614,7 @@ export function getLibraryOptions(parent) { return elem.getAttribute('data-lang'); }); setSubtitleFetchersIntoOptions(parent, options); + setLyricFetchersIntoOptions(parent, options); setMetadataFetchersIntoOptions(parent, options); setImageFetchersIntoOptions(parent, options); setImageOptionsIntoOptions(options); @@ -622,6 +670,7 @@ export function setLibraryOptions(parent, options) { renderMetadataFetchers(parent, parent.availableOptions, options); renderImageFetchers(parent, parent.availableOptions, options); renderSubtitleFetchers(parent, parent.availableOptions, options); + renderLyricFetchers(parent, parent.availableOptions, options); } let currentLibraryOptions; diff --git a/src/components/libraryoptionseditor/libraryoptionseditor.template.html b/src/components/libraryoptionseditor/libraryoptionseditor.template.html index b1d358cc02..42adf755d7 100644 --- a/src/components/libraryoptionseditor/libraryoptionseditor.template.html +++ b/src/components/libraryoptionseditor/libraryoptionseditor.template.html @@ -197,6 +197,9 @@

${Lyrics}

+
+
+