mirror of
https://github.com/tapframe/NuvioStreaming.git
synced 2026-08-05 11:01:37 +00:00
Make blank debrid templates use original text
This commit is contained in:
parent
8aed980b32
commit
7477600514
5 changed files with 36 additions and 9 deletions
|
|
@ -661,9 +661,9 @@
|
|||
<string name="settings_debrid_prepare_count_many">%1$d links</string>
|
||||
<string name="settings_debrid_section_formatting">Formatting</string>
|
||||
<string name="settings_debrid_name_template">Name template</string>
|
||||
<string name="settings_debrid_name_template_description">Controls how result names appear.</string>
|
||||
<string name="settings_debrid_name_template_description">Controls how result names appear. Leave blank to use the original result name.</string>
|
||||
<string name="settings_debrid_description_template">Description template</string>
|
||||
<string name="settings_debrid_description_template_description">Controls the metadata shown under each result.</string>
|
||||
<string name="settings_debrid_description_template_description">Controls the metadata shown under each result. Leave blank to use the original result details.</string>
|
||||
<string name="settings_debrid_formatter_reset_title">Reset formatting</string>
|
||||
<string name="settings_debrid_formatter_reset_subtitle">Restore default result formatting.</string>
|
||||
<string name="settings_debrid_key_valid">API key validated.</string>
|
||||
|
|
@ -1545,6 +1545,7 @@
|
|||
<!-- Debrid misc -->
|
||||
<string name="settings_debrid_learn_more">Learn more</string>
|
||||
<string name="settings_debrid_template_default_format">Default format</string>
|
||||
<string name="settings_debrid_template_original_format">Original format</string>
|
||||
<string name="settings_debrid_release_groups_hint">Enter one group per line.</string>
|
||||
<!-- Debrid sort profiles -->
|
||||
<string name="settings_debrid_sort_original">Original order</string>
|
||||
|
|
|
|||
|
|
@ -390,11 +390,13 @@ object DebridSettingsRepository {
|
|||
}
|
||||
}
|
||||
streamNameTemplate = normalizeStreamTemplate(
|
||||
DebridSettingsStorage.loadStreamNameTemplate().orEmpty(),
|
||||
DebridSettingsStorage.loadStreamNameTemplate()
|
||||
?: DebridStreamFormatterDefaults.NAME_TEMPLATE,
|
||||
DebridTemplateKind.NAME,
|
||||
)
|
||||
streamDescriptionTemplate = normalizeStreamTemplate(
|
||||
DebridSettingsStorage.loadStreamDescriptionTemplate().orEmpty(),
|
||||
DebridSettingsStorage.loadStreamDescriptionTemplate()
|
||||
?: DebridStreamFormatterDefaults.DESCRIPTION_TEMPLATE,
|
||||
DebridTemplateKind.DESCRIPTION,
|
||||
)
|
||||
streamBadgeRules = parseStreamBadgeRules(DebridSettingsStorage.loadStreamBadgeRules()) ?: StreamBadgeRules()
|
||||
|
|
|
|||
|
|
@ -19,14 +19,12 @@ class DebridStreamFormatter(
|
|||
if (!stream.isManagedDebridStream) return stream
|
||||
val matchedBadges = StreamBadgeMatcher.matchedBadges(stream, compiledBadgeFilters)
|
||||
val values = buildValues(stream, settings, matchedBadges)
|
||||
val nameTemplate = settings.streamNameTemplate.ifBlank { DebridStreamFormatterDefaults.NAME_TEMPLATE }
|
||||
val descriptionTemplate = settings.streamDescriptionTemplate.ifBlank { DebridStreamFormatterDefaults.DESCRIPTION_TEMPLATE }
|
||||
val formattedName = engine.render(nameTemplate, values)
|
||||
val formattedName = engine.render(settings.streamNameTemplate, values)
|
||||
.lineSequence()
|
||||
.joinToString(" ") { it.trim() }
|
||||
.replace(Regex("\\s+"), " ")
|
||||
.trim()
|
||||
val formattedDescription = engine.render(descriptionTemplate, values)
|
||||
val formattedDescription = engine.render(settings.streamDescriptionTemplate, values)
|
||||
.lineSequence()
|
||||
.map { it.trim() }
|
||||
.filter { it.isNotBlank() }
|
||||
|
|
|
|||
|
|
@ -150,6 +150,7 @@ import nuvio.composeapp.generated.resources.settings_debrid_size_range
|
|||
import nuvio.composeapp.generated.resources.settings_debrid_size_range_desc
|
||||
import nuvio.composeapp.generated.resources.settings_debrid_learn_more
|
||||
import nuvio.composeapp.generated.resources.settings_debrid_template_default_format
|
||||
import nuvio.composeapp.generated.resources.settings_debrid_template_original_format
|
||||
import nuvio.composeapp.generated.resources.settings_debrid_release_groups_hint
|
||||
import nuvio.composeapp.generated.resources.settings_debrid_sort_best_quality
|
||||
import nuvio.composeapp.generated.resources.settings_debrid_sort_largest
|
||||
|
|
@ -600,7 +601,10 @@ private enum class DebridTemplateField {
|
|||
|
||||
private fun templatePreview(value: String, defaultValue: String): String {
|
||||
val defaultFormat = runBlocking { getString(Res.string.settings_debrid_template_default_format) }
|
||||
if (value.trim().isBlank() || value.trim() == defaultValue.trim()) return defaultFormat
|
||||
val originalFormat = runBlocking { getString(Res.string.settings_debrid_template_original_format) }
|
||||
val trimmed = value.trim()
|
||||
if (trimmed.isBlank()) return originalFormat
|
||||
if (trimmed == defaultValue.trim()) return defaultFormat
|
||||
val firstLine = value
|
||||
.lineSequence()
|
||||
.map { it.trim() }
|
||||
|
|
|
|||
|
|
@ -39,6 +39,28 @@ class DebridStreamPresentationTest {
|
|||
assertContains(description, "Lost.S01E01.2160p.WEB-DL.H265.AAC-NAKSU.mkv")
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `blank templates preserve original stream name and description`() {
|
||||
val stream = localTorboxStream(
|
||||
name = "Original torrent",
|
||||
filename = "Movie.2026.1080p.WEB-DL.H265-GRP.mkv",
|
||||
size = 4_000_000_000,
|
||||
).copy(description = "Original addon details")
|
||||
|
||||
val formatted = DebridStreamFormatter().format(
|
||||
stream = stream,
|
||||
settings = DebridSettings(
|
||||
enabled = true,
|
||||
providerApiKeys = mapOf(DebridProviders.TORBOX_ID to "key"),
|
||||
streamNameTemplate = "",
|
||||
streamDescriptionTemplate = "",
|
||||
),
|
||||
)
|
||||
|
||||
assertEquals("Original torrent", formatted.name)
|
||||
assertEquals("Original addon details", formatted.description)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `formats imported badge matches from fusion badge rules`() {
|
||||
val stream = localTorboxStream(
|
||||
|
|
|
|||
Loading…
Reference in a new issue