Add TheTVDB episode title matching and release v1.0.3.
Match filenames to TheTVDB episode order (default, aired, DVD, etc.) to fix chaotic SxxExx numbering while preserving titles. Co-authored-by: Cursor <[email protected]>
This commit is contained in:
+15
-2
@@ -36,6 +36,7 @@ from .rule_widgets import (
|
||||
CaseRuleWidget,
|
||||
NumberingRuleWidget,
|
||||
EpisodeRenumberRuleWidget,
|
||||
TvdbEpisodeRenumberRuleWidget,
|
||||
PrefixSuffixRuleWidget,
|
||||
CsvMappingRuleWidget,
|
||||
)
|
||||
@@ -85,6 +86,7 @@ class MainWindow(QMainWindow):
|
||||
CaseRuleWidget(),
|
||||
NumberingRuleWidget(),
|
||||
EpisodeRenumberRuleWidget(),
|
||||
TvdbEpisodeRenumberRuleWidget(),
|
||||
PrefixSuffixRuleWidget(),
|
||||
CsvMappingRuleWidget(),
|
||||
]
|
||||
@@ -96,12 +98,17 @@ class MainWindow(QMainWindow):
|
||||
"5. Case",
|
||||
"6. Numbering",
|
||||
"7. Episode renumber",
|
||||
"8. Prefix / Suffix",
|
||||
"9. CSV mapping",
|
||||
"8. TheTVDB episode match",
|
||||
"9. Prefix / Suffix",
|
||||
"10. CSV mapping",
|
||||
]
|
||||
for title, w in zip(rule_titles, self._rule_widgets):
|
||||
w.enabled_cb.toggled.connect(self._refresh_preview) # always refresh when checkbox toggled
|
||||
w.ruleChanged.connect(self._on_rule_changed) # refresh only when enabled rule’s options change
|
||||
if hasattr(w, "set_file_names"):
|
||||
w.set_file_names(self._file_names)
|
||||
if hasattr(w, "matchCompleted"):
|
||||
w.matchCompleted.connect(self._refresh_preview)
|
||||
g = QGroupBox(title)
|
||||
g_layout = QVBoxLayout(g)
|
||||
g_layout.setContentsMargins(8, 12, 8, 8)
|
||||
@@ -206,7 +213,13 @@ class MainWindow(QMainWindow):
|
||||
self.preview_table.setSortingEnabled(False)
|
||||
self.preview_table.setRowCount(0)
|
||||
self.preview_status.setText("Add a folder to see files.")
|
||||
for w in self._rule_widgets:
|
||||
if hasattr(w, "set_file_names"):
|
||||
w.set_file_names([])
|
||||
return
|
||||
for w in self._rule_widgets:
|
||||
if hasattr(w, "set_file_names"):
|
||||
w.set_file_names(self._file_names)
|
||||
# Preserve sort and selection so checking a rule doesn’t reorder or clear selection
|
||||
header = self.preview_table.horizontalHeader()
|
||||
sort_section = header.sortIndicatorSection()
|
||||
|
||||
Reference in New Issue
Block a user