From 5e0fdd64765fc5378014e4f3c0f5c78ef2f99796 Mon Sep 17 00:00:00 2001 From: Javanaut Date: Fri, 18 Oct 2024 22:09:39 +0200 Subject: [PATCH] nightly --- bin/ffx.py | 4 +++- bin/ffx/helper.py | 4 ++++ bin/ffx/model/show.py | 2 +- bin/ffx/show_delete_screen.py | 14 ++++++------ bin/ffx/show_details_screen.py | 39 +++++++++++++++++++--------------- bin/ffx/shows_screen.py | 10 +++++---- 6 files changed, 43 insertions(+), 30 deletions(-) diff --git a/bin/ffx.py b/bin/ffx.py index 7a903dd..d02c68c 100755 --- a/bin/ffx.py +++ b/bin/ffx.py @@ -15,8 +15,10 @@ from ffx.track_type import TrackType from ffx.video_encoder import VideoEncoder -VERSION='0.1.0' +VERSION='0.1.1' +# 0.1.1 +# Bugfixes, TMBD identify shows @click.group() @click.pass_context diff --git a/bin/ffx/helper.py b/bin/ffx/helper.py index 174e70b..89c661d 100644 --- a/bin/ffx/helper.py +++ b/bin/ffx/helper.py @@ -41,3 +41,7 @@ def setDiff(a : set, b : set) -> set: diffResult[DIFF_ADDED_KEY] = b_only return diffResult + +def filterFilename(fileName: str) -> str: + fileName = str(fileName).replace(':', ';') + return fileName diff --git a/bin/ffx/model/show.py b/bin/ffx/model/show.py index 14e5935..eab42e3 100644 --- a/bin/ffx/model/show.py +++ b/bin/ffx/model/show.py @@ -52,7 +52,7 @@ class Show(Base): kwargs[ShowDescriptor.NAME_KEY] = str(self.name) kwargs[ShowDescriptor.YEAR_KEY] = int(self.year) kwargs[ShowDescriptor.INDEX_SEASON_DIGITS_KEY] = int(self.index_season_digits) - kwargs[ShowDescriptor.INDEX_EPISODE_DIGITS_KEY] = int(self.index_season_digits) + kwargs[ShowDescriptor.INDEX_EPISODE_DIGITS_KEY] = int(self.index_episode_digits) kwargs[ShowDescriptor.INDICATOR_SEASON_DIGITS_KEY] = int(self.indicator_season_digits) kwargs[ShowDescriptor.INDICATOR_EPISODE_DIGITS_KEY] = int(self.indicator_episode_digits) diff --git a/bin/ffx/show_delete_screen.py b/bin/ffx/show_delete_screen.py index e7170c1..c48b240 100644 --- a/bin/ffx/show_delete_screen.py +++ b/bin/ffx/show_delete_screen.py @@ -45,14 +45,13 @@ class ShowDeleteScreen(Screen): self.Session = self.context['database']['session'] # convenience self.__sc = ShowController(context = self.context) - self.show_obj = self.__sc.getShowDescriptor(showId) if showId is not None else {} + + self.__showDescriptor = self.__sc.getShowDescriptor(showId) if showId is not None else {} def on_mount(self): - - if self.show_obj: - - self.query_one("#showlabel", Static).update(f"{self.show_obj['id']} - {self.show_obj['name']} ({self.show_obj['year']})") + if not self.__showDescriptor is None: + self.query_one("#showlabel", Static).update(f"{self.__showDescriptor.getId()} - {self.__showDescriptor.getName()} ({self.__showDescriptor.getYear()})") def compose(self): @@ -84,8 +83,9 @@ class ShowDeleteScreen(Screen): if event.button.id == "delete_button": - if self.__sc.deleteShow(self.show_obj['id']): - self.dismiss(self.show_obj['id']) + if not self.__showDescriptor is None: + if self.__sc.deleteShow(self.__showDescriptor.getId()): + self.dismiss(self.__showDescriptor) else: #TODO: Meldung diff --git a/bin/ffx/show_details_screen.py b/bin/ffx/show_details_screen.py index cf322b8..b0790db 100644 --- a/bin/ffx/show_details_screen.py +++ b/bin/ffx/show_details_screen.py @@ -19,6 +19,8 @@ from .tmdb_controller import TmdbController from .show_descriptor import ShowDescriptor +from .helper import filterFilename + # Screen[dict[int, str, int]] class ShowDetailsScreen(Screen): @@ -106,7 +108,7 @@ class ShowDetailsScreen(Screen): if not self.__showDescriptor is None: - self.query_one("#id_input", Static).update(str(self.__showDescriptor.getId())) + self.query_one("#id_static", Static).update(str(self.__showDescriptor.getId())) self.query_one("#name_input", Input).value = str(self.__showDescriptor.getName()) self.query_one("#year_input", Input).value = str(self.__showDescriptor.getYear()) @@ -238,7 +240,7 @@ class ShowDetailsScreen(Screen): # 2 yield Static("ID") if not self.__showDescriptor is None: - yield Static("", classes="four") + yield Static("", id="id_static", classes="four") else: yield Input(type="integer", id="id_input", classes="four") @@ -292,10 +294,13 @@ class ShowDetailsScreen(Screen): kwargs = {} - if self.__showDescriptor: - kwargs[ShowDescriptor.ID_KEY] = int(self.__showDescriptor.getId()) - else: - kwargs[ShowDescriptor.ID_KEY] = int(self.query_one("#id_input", Input).value) + try: + if self.__showDescriptor: + kwargs[ShowDescriptor.ID_KEY] = int(self.__showDescriptor.getId()) + else: + kwargs[ShowDescriptor.ID_KEY] = int(self.query_one("#id_input", Input).value) + except ValueError: + return None try: kwargs[ShowDescriptor.NAME_KEY] = str(self.query_one("#name_input", Input).value) @@ -334,11 +339,12 @@ class ShowDetailsScreen(Screen): showDescriptor = self.getShowDescriptorFromInput() - if self.__sc.updateShow(showDescriptor): - self.dismiss(showDescriptor) - else: - #TODO: Meldung - self.app.pop_screen() + if not showDescriptor is None: + if self.__sc.updateShow(showDescriptor): + self.dismiss(showDescriptor) + else: + #TODO: Meldung + self.app.pop_screen() if event.button.id == "cancel_button": self.app.pop_screen() @@ -347,10 +353,9 @@ class ShowDetailsScreen(Screen): if event.button.id == "identify_button": showDescriptor = self.getShowDescriptorFromInput() - showResult = self.__tc.queryShow(showDescriptor.getId()) - firstAirDate = datetime.strptime(showResult['first_air_date'], '%Y-%m-%d') + if not showDescriptor is None: + showResult = self.__tc.queryShow(showDescriptor.getId()) + firstAirDate = datetime.strptime(showResult['first_air_date'], '%Y-%m-%d') - self.query_one("#name_input", Input).value = str(showResult['name']) - self.query_one("#year_input", Input).value = str(firstAirDate.year) - - + self.query_one("#name_input", Input).value = filterFilename(showResult['name']) + self.query_one("#year_input", Input).value = str(firstAirDate.year) diff --git a/bin/ffx/shows_screen.py b/bin/ffx/shows_screen.py index a0b5526..524470f 100644 --- a/bin/ffx/shows_screen.py +++ b/bin/ffx/shows_screen.py @@ -11,6 +11,8 @@ from .show_controller import ShowController from .show_details_screen import ShowDetailsScreen from .show_delete_screen import ShowDeleteScreen +from ffx.show_descriptor import ShowDescriptor + from .help_screen import HelpScreen from textual.widgets._data_table import CellDoesNotExist @@ -97,14 +99,14 @@ class ShowsScreen(Screen): self.app.push_screen(ShowDetailsScreen(showId = selectedShowId), self.handle_edit_screen) - def handle_edit_screen(self, screenResult): + def handle_edit_screen(self, showDescriptor: ShowDescriptor): try: row_key, col_key = self.table.coordinate_to_cell_key(self.table.cursor_coordinate) - self.table.update_cell(row_key, self.column_key_name, screenResult['name']) - self.table.update_cell(row_key, self.column_key_year, screenResult['year']) + self.table.update_cell(row_key, self.column_key_name, showDescriptor.getName()) + self.table.update_cell(row_key, self.column_key_year, showDescriptor.getYear()) except CellDoesNotExist: pass @@ -120,7 +122,7 @@ class ShowsScreen(Screen): self.app.push_screen(ShowDeleteScreen(showId = selectedShowId), self.handle_delete_show) - def handle_delete_show(self, screenResult): + def handle_delete_show(self, showDescriptor: ShowDescriptor): try: row_key, col_key = self.table.coordinate_to_cell_key(self.table.cursor_coordinate)