Inspect from Scratch -> RC
This commit is contained in:
@@ -61,7 +61,7 @@ class MediaDescriptor():
|
||||
self.__jellyfinOrder = False
|
||||
|
||||
|
||||
def __getReorderedTrackDescriptors(self):
|
||||
def getReorderedTrackDescriptors(self):
|
||||
|
||||
videoTracks = [v for v in self.__trackDescriptors.copy() if v.getType() == TrackType.VIDEO]
|
||||
audioTracks = [a for a in self.__trackDescriptors.copy() if a.getType() == TrackType.AUDIO]
|
||||
@@ -168,7 +168,7 @@ class MediaDescriptor():
|
||||
|
||||
# Target track configuration (from DB)
|
||||
#tracks = self.getAllTracks()
|
||||
tracks = self.__getReorderedTrackDescriptors()
|
||||
tracks = self.getReorderedTrackDescriptors()
|
||||
numTracks = len(tracks)
|
||||
|
||||
# Current track configuration (of file)
|
||||
|
||||
@@ -16,6 +16,7 @@ from .tag_controller import TagController
|
||||
|
||||
from .track_details_screen import TrackDetailsScreen
|
||||
from .track_delete_screen import TrackDeleteScreen
|
||||
from .show_details_screen import ShowDetailsScreen
|
||||
|
||||
from ffx.track_type import TrackType
|
||||
from ffx.model.track import Track
|
||||
@@ -244,7 +245,6 @@ class MediaDetailsScreen(Screen):
|
||||
row = (' ', '<New show>', ' ') # Convert each element to a string before adding
|
||||
self.showsTable.add_row(*map(str, row))
|
||||
|
||||
#TODO: Stürzt ab wenn keine Shows vorhanden sind. Onthefly Show add impl
|
||||
for show in self.__sc.getAllShows():
|
||||
row = (int(show.id), show.name, show.year) # Convert each element to a string before adding
|
||||
self.showsTable.add_row(*map(str, row))
|
||||
@@ -270,9 +270,13 @@ class MediaDetailsScreen(Screen):
|
||||
else:
|
||||
|
||||
self.query_one("#pattern_input", Input).value = self.__mediaFilename
|
||||
self.highlightPattern(True)
|
||||
|
||||
def highlightPattern(self, state : bool):
|
||||
if state:
|
||||
self.query_one("#pattern_input", Input).styles.background = 'red'
|
||||
|
||||
|
||||
else:
|
||||
self.query_one("#pattern_input", Input).styles.background = None
|
||||
|
||||
def updateTracks(self):
|
||||
|
||||
@@ -363,7 +367,7 @@ class MediaDetailsScreen(Screen):
|
||||
|
||||
# 2
|
||||
yield Static(" ")
|
||||
yield Button("Substitute")
|
||||
yield Button("Substitute", id="pattern_button")
|
||||
yield Static(" ")
|
||||
|
||||
# 3
|
||||
@@ -454,8 +458,8 @@ class MediaDetailsScreen(Screen):
|
||||
yield Footer()
|
||||
|
||||
|
||||
# def getPatternFromInput(self):
|
||||
# return str(self.query_one("#pattern_input", Input).value)
|
||||
def getPatternFromInput(self):
|
||||
return str(self.query_one("#pattern_input", Input).value)
|
||||
|
||||
|
||||
|
||||
@@ -512,7 +516,6 @@ class MediaDetailsScreen(Screen):
|
||||
|
||||
# Event handler for button press
|
||||
def on_button_pressed(self, event: Button.Pressed) -> None:
|
||||
pass
|
||||
|
||||
# # Check if the button pressed is the one we are interested in
|
||||
# if event.button.id == "save_button":
|
||||
@@ -565,17 +568,17 @@ class MediaDetailsScreen(Screen):
|
||||
# self.app.push_screen(TrackDetailsScreen(trackDescriptor = selectedSubtitleTrack), self.handle_edit_track)
|
||||
# if event.button.id == "button_delete_subtitle_stream":
|
||||
# self.app.push_screen(TrackDeleteScreen(trackDescriptor = selectedSubtitleTrack), self.handle_delete_track)
|
||||
#
|
||||
# if event.button.id == "patternbutton":
|
||||
#
|
||||
# INDICATOR_PATTERN = '([sS][0-9]+[eE][0-9]+)'
|
||||
#
|
||||
# pattern = self.query_one("#pattern_input", Input).value
|
||||
#
|
||||
# patternMatch = re.search(INDICATOR_PATTERN, pattern)
|
||||
#
|
||||
# if patternMatch:
|
||||
# self.query_one("#pattern_input", Input).value = pattern.replace(patternMatch.group(1), INDICATOR_PATTERN)
|
||||
|
||||
if event.button.id == "pattern_button":
|
||||
|
||||
INDICATOR_PATTERN = '([sS][0-9]+[eE][0-9]+)'
|
||||
|
||||
pattern = self.query_one("#pattern_input", Input).value
|
||||
|
||||
patternMatch = re.search(INDICATOR_PATTERN, pattern)
|
||||
|
||||
if patternMatch:
|
||||
self.query_one("#pattern_input", Input).value = pattern.replace(patternMatch.group(1), INDICATOR_PATTERN)
|
||||
|
||||
|
||||
# def handle_add_track(self, trackDescriptor):
|
||||
@@ -647,12 +650,76 @@ class MediaDetailsScreen(Screen):
|
||||
# pass
|
||||
|
||||
|
||||
def getSelectedShow(self):
|
||||
|
||||
try:
|
||||
# Fetch the currently selected row when 'Enter' is pressed
|
||||
#selected_row_index = self.table.cursor_row
|
||||
row_key, col_key = self.showsTable.coordinate_to_cell_key(self.showsTable.cursor_coordinate)
|
||||
|
||||
if row_key is not None:
|
||||
selected_row_data = self.showsTable.get_row(row_key)
|
||||
|
||||
try:
|
||||
#TODO: Put in a ShowDescriptor and harmonize with PatternController.addPattern()
|
||||
# and ShowDetailsScreen.getShowDescriptorFromInput()
|
||||
selectedShow = {}
|
||||
selectedShow['id'] = int(selected_row_data[0])
|
||||
selectedShow['name'] = str(selected_row_data[1])
|
||||
selectedShow['year'] = int(selected_row_data[2])
|
||||
return selectedShow
|
||||
except ValueError:
|
||||
return {}
|
||||
|
||||
except CellDoesNotExist:
|
||||
return None
|
||||
|
||||
|
||||
def handle_new_pattern(self, screenResult):
|
||||
|
||||
show = (screenResult['id'], screenResult['name'], screenResult['year'])
|
||||
self.showsTable.add_row(*map(str, show))
|
||||
|
||||
showRowIndex = self.getRowIndexFromShowId(screenResult['id'])
|
||||
if showRowIndex is not None:
|
||||
self.showsTable.move_cursor(row=showRowIndex)
|
||||
|
||||
patternDescriptor = {}
|
||||
patternDescriptor['show_id'] = screenResult['id']
|
||||
patternDescriptor['pattern'] = self.getPatternFromInput()
|
||||
self.__pc.addPattern(patternDescriptor)
|
||||
|
||||
self.highlightPattern(False)
|
||||
|
||||
self.action_update_pattern()
|
||||
|
||||
|
||||
def action_new_pattern(self):
|
||||
pass
|
||||
|
||||
selectedShow = self.getSelectedShow()
|
||||
|
||||
#HINT: Callback is invoked after this method has exited. As a workaround the callback is executed directly
|
||||
# from here with a mock-up screen result containing the necessary part of keys to perform correctly.
|
||||
if not selectedShow:
|
||||
self.app.push_screen(ShowDetailsScreen(), self.handle_new_pattern)
|
||||
else:
|
||||
self.handle_new_pattern(selectedShow)
|
||||
|
||||
|
||||
def action_update_pattern(self):
|
||||
"""When updating the database the actions must reverse the difference (eq to diff db->file)"""
|
||||
|
||||
if self.__currentPattern is not None:
|
||||
inputPattern = self.getPatternFromInput()
|
||||
if self.__currentPattern.getPattern() != inputPattern:
|
||||
patternDescriptor = {}
|
||||
patternDescriptor['show_id'] = self.getSelectedShow()['id']
|
||||
patternDescriptor['pattern'] = inputPattern
|
||||
self.__pc.updatePattern(self.__currentPattern.getId(), patternDescriptor)
|
||||
|
||||
|
||||
self.loadProperties()
|
||||
|
||||
if MediaDescriptor.TAGS_KEY in self.__mediaDifferences.keys():
|
||||
|
||||
if DIFF_ADDED_KEY in self.__mediaDifferences[MediaDescriptor.TAGS_KEY].keys():
|
||||
|
||||
@@ -23,7 +23,7 @@ class PatternController():
|
||||
pattern = str(patternDescriptor['pattern']))
|
||||
s.add(pattern)
|
||||
s.commit()
|
||||
return pattern.getId()
|
||||
return int(pattern.getId())
|
||||
else:
|
||||
return None
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ class ShowController():
|
||||
if q.count():
|
||||
return q.all()
|
||||
else:
|
||||
return None
|
||||
return []
|
||||
|
||||
except Exception as ex:
|
||||
raise click.ClickException(f"ShowController.getAllShows(): {repr(ex)}")
|
||||
|
||||
@@ -132,8 +132,6 @@ class ShowsScreen(Screen):
|
||||
|
||||
|
||||
def on_mount(self) -> None:
|
||||
allShows = self.__sc.getAllShows()
|
||||
if allShows is not None:
|
||||
for show in self.__sc.getAllShows():
|
||||
row = (int(show.id), show.name, show.year) # Convert each element to a string before adding
|
||||
self.table.add_row(*map(str, row))
|
||||
|
||||
Reference in New Issue
Block a user