feat: add podcastFilenameFormat

This commit is contained in:
MagiX13 2025-05-24 16:15:47 +02:00
parent 5e5a988f7a
commit 8d988cf353
13 changed files with 132 additions and 13 deletions

View file

@ -35,6 +35,9 @@
<div class="md:w-1/4 p-2">
<ui-text-input-with-label v-model="podcast.language" :label="$strings.LabelLanguage" />
</div>
<div class="md:w-1/4 p-2">
<ui-text-input-with-label v-model="podcast.podcastFilenameFormat" :label="$strings.PodcastFilenameFormatHelp" />
</div>
<div class="md:w-1/4 px-2 pt-7">
<ui-checkbox v-model="podcast.explicit" :label="$strings.LabelExplicit" checkbox-bg="primary" border-color="gray-600" label-class="pl-2 text-base font-semibold" />
</div>
@ -95,6 +98,7 @@ export default {
itunesArtistId: '',
autoDownloadEpisodes: false,
language: '',
filenameFormat: '',
explicit: false,
type: ''
}
@ -193,6 +197,7 @@ export default {
itunesId: this.podcast.itunesId,
itunesArtistId: this.podcast.itunesArtistId,
language: this.podcast.language,
podcastFilenameFormat: this.podcast.podcastFilenameFormat,
explicit: this.podcast.explicit,
type: this.podcast.type
},
@ -230,6 +235,7 @@ export default {
this.podcast.itunesId = this._podcastData.id || ''
this.podcast.itunesArtistId = this._podcastData.artistId || ''
this.podcast.language = this._podcastData.language || this.feedMetadata.language || ''
this.podcast.filenameFormat = this._podcastData.filenameFormat || '%T'
this.podcast.autoDownloadEpisodes = false
this.podcast.type = this._podcastData.type || this.feedMetadata.type || 'episodic'

View file

@ -43,6 +43,16 @@
<div class="w-1/4 px-1">
<ui-dropdown :label="$strings.LabelPodcastType" v-model="details.type" :items="podcastTypes" small class="max-w-52" @input="handleInputChange" />
</div>
<div class="w-1/4 px-1">
<ui-text-input-with-label ref="podcastFilenameFormatInput" v-model="details.podcastFilenameFormat" :label="$strings.PodcastFilenameFormatHelp" trim-whitespace @input="handleInputChange" >
<div class="flex -mb-0.5">
<p class="px-1 text-sm font-semibold" :class="{ 'text-gray-400': checkingNewEpisodes }">{{ $strings.PodcastFilenameFormatHelp }}</p>
<ui-tooltip direction="top" :text="$strings.PodcastFilenameFormatHelpContent">
<span class="material-symbols text-base">info</span>
</ui-tooltip>
</div>
</ui-text-input-with-label>
</div>
</div>
</form>
</div>
@ -71,6 +81,7 @@ export default {
itunesArtistId: null,
explicit: false,
language: null,
podcastFilenameFormat: null,
type: null
},
newTags: []
@ -158,6 +169,7 @@ export default {
if (this.$refs.feedUrlInput) this.$refs.feedUrlInput.blur()
if (this.$refs.itunesIdInput) this.$refs.itunesIdInput.blur()
if (this.$refs.languageInput) this.$refs.languageInput.blur()
if (this.$refs.podcastFilenameFormatInput) this.$refs.podcastFilenameFormatInput.blur()
if (this.$refs.genresSelect && this.$refs.genresSelect.isFocused) {
this.$refs.genresSelect.forceBlur()
@ -240,6 +252,7 @@ export default {
this.details.itunesId = this.mediaMetadata.itunesId || ''
this.details.itunesArtistId = this.mediaMetadata.itunesArtistId || ''
this.details.language = this.mediaMetadata.language || ''
this.details.podcastFilenameFormat = this.mediaMetadata.podcastFilenameFormat || '%T'
this.details.explicit = !!this.mediaMetadata.explicit
this.details.type = this.mediaMetadata.type || 'episodic'