From a263c735aa3bcbb6cbd221387ad90ce92d2c3652 Mon Sep 17 00:00:00 2001 From: Javanaut Date: Sat, 19 Oct 2024 00:05:18 +0200 Subject: [PATCH] nightly --- bin/ffx/media_details_screen.py | 45 ++++++++++++++++++--------------- bin/ffx/pattern_controller.py | 4 +-- 2 files changed, 27 insertions(+), 22 deletions(-) diff --git a/bin/ffx/media_details_screen.py b/bin/ffx/media_details_screen.py index 4e8d925..4b47a91 100644 --- a/bin/ffx/media_details_screen.py +++ b/bin/ffx/media_details_screen.py @@ -392,8 +392,8 @@ class MediaDetailsScreen(Screen): # 7 yield Static(" ") - yield Button("Select Default", id="select_default_button") - yield Button("Select Forced", id="select_forced_button") + yield Button("Set Default", id="select_default_button") + yield Button("Set Forced", id="select_forced_button") yield Static(" ") # 8 yield Static("Streams") @@ -403,8 +403,15 @@ class MediaDetailsScreen(Screen): yield Footer() - def getPatternFromInput(self): - return str(self.query_one("#pattern_input", Input).value) + def getPatternDescriptorFromInput(self): + """Returns show id and pattern from corresponding inputs""" + patternDescriptor = {} + try: + patternDescriptor['show_id'] = self.getSelectedShowDescriptor().getId() + patternDescriptor['pattern'] = str(self.query_one("#pattern_input", Input).value) + except: + pass + return patternDescriptor def on_button_pressed(self, event: Button.Pressed) -> None: @@ -492,14 +499,15 @@ class MediaDetailsScreen(Screen): if showRowIndex is not None: self.showsTable.move_cursor(row=showRowIndex) - patternDescriptor = {} - patternDescriptor['show_id'] = showDescriptor.getId() - patternDescriptor['pattern'] = self.getPatternFromInput() - self.__pc.addPattern(patternDescriptor) + patternDescriptor = self.getPatternDescriptorFromInput() + + if patternDescriptor: + patternId = self.__pc.addPattern(patternDescriptor) - self.highlightPattern(False) + self.highlightPattern(False) - self.action_update_pattern() + for trackDescriptor in self.__currentMediaDescriptor.getAllTrackDescriptors(): + self.__tc.addTrack(trackDescriptor, patternId = patternId) def action_new_pattern(self): @@ -519,15 +527,12 @@ class MediaDetailsScreen(Screen): 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.getSelectedShowDescriptor().getId() - patternDescriptor['pattern'] = inputPattern - self.__pc.updatePattern(self.__currentPattern.getId(), patternDescriptor) + if self.__currentPattern is not None: + patternDescriptor = self.getPatternDescriptorFromInput() + if (patternDescriptor + and self.__currentPattern.getPattern() != patternDescriptor['pattern']): + return self.__pc.updatePattern(self.__currentPattern.getId(), patternDescriptor) self.loadProperties() @@ -614,7 +619,7 @@ class MediaDetailsScreen(Screen): def action_edit_pattern(self): patternDescriptor = {} - patternDescriptor['show_id'] = self.getSelectedShow()['id'] + patternDescriptor['show_id'] = self.getSelectedShowDescriptor().getId() patternDescriptor['pattern'] = self.getPatternFromInput() if patternDescriptor['pattern']: @@ -624,7 +629,7 @@ class MediaDetailsScreen(Screen): if selectedPatternId is None: raise click.ClickException(f"MediaDetailsScreen.action_edit_pattern(): Pattern to edit has no id") - self.app.push_screen(PatternDetailsScreen(patternId = selectedPatternId, showId = self.getSelectedShow()['id']), self.handle_edit_pattern) # <- + self.app.push_screen(PatternDetailsScreen(patternId = selectedPatternId, showId = self.getSelectedShowDescriptor().getId()), self.handle_edit_pattern) # <- def handle_edit_pattern(self, screenResult): diff --git a/bin/ffx/pattern_controller.py b/bin/ffx/pattern_controller.py index 8bb68e1..c77ad7b 100644 --- a/bin/ffx/pattern_controller.py +++ b/bin/ffx/pattern_controller.py @@ -16,14 +16,14 @@ class PatternController(): try: s = self.Session() - q = s.query(Pattern).filter(Pattern.show_id == int(patternDescriptor['show_id']), Pattern.pattern == str(patternDescriptor['pattern'])) + q = s.query(Pattern).filter(Pattern.show_id == int(patternDescriptor['show_id'])) if not q.count(): pattern = Pattern(show_id = int(patternDescriptor['show_id']), pattern = str(patternDescriptor['pattern'])) s.add(pattern) s.commit() - return int(pattern.getId()) + return pattern.getId() else: return None