@ -126,7 +126,6 @@ class MediaDetailsScreen(Screen):
if not os . path . isfile ( self . __mediaFilename ) :
raise click . ClickException ( f " MediaDetailsScreen.__init__(): Media file { self . __mediaFilename } does not exist " )
self . loadProperties ( )
@ -160,8 +159,6 @@ class MediaDetailsScreen(Screen):
# from file (=current) vs from stored in database (=target)
self . __mediaDifferences = self . __targetMediaDescriptor . compare ( self . __currentMediaDescriptor ) if self . __currentPattern is not None else { }
#rtd = self.__targetMediaDescriptor.getReorderedTrackDescriptors()
#raise click.ClickException(f"getReorderedTrackDescriptors={[r.getIndex() for r in rtd]}")
def updateDifferences ( self ) :
@ -239,7 +236,6 @@ class MediaDetailsScreen(Screen):
self . differencesTable . add_row ( * map ( str , row ) )
def on_mount ( self ) :
if self . __currentPattern is None :
@ -273,12 +269,14 @@ class MediaDetailsScreen(Screen):
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 ) :
self . tracksTable . clear ( )
@ -311,7 +309,6 @@ class MediaDetailsScreen(Screen):
def compose ( self ) :
# Create the DataTable widget
self . showsTable = DataTable ( )
@ -323,7 +320,6 @@ class MediaDetailsScreen(Screen):
self . showsTable . cursor_type = ' row '
self . mediaTagsTable = DataTable ( )
# Define the columns with headers
@ -393,69 +389,6 @@ class MediaDetailsScreen(Screen):
yield self . tracksTable
yield Static ( " " )
# # 8
# yield Static(" ", classes="three")
#
# # 9
# yield Static("Subtitle Streams")
# yield self.subtitleStreamsTable
# yield Static(" ")
# 1
# yield Static("Edit filename pattern" if self.__pattern is not None else "New filename pattern", id="toplabel")
# yield Input(type="text", id="pattern_input", classes="four")
#
# # 2
# yield Static("from show")
# yield Static("", id="showlabel", classes="three")
# yield Button("Substitute pattern", id="patternbutton")
#
# # 3
# yield Static(" ", classes="five")
# # 4
# yield Static(" ", classes="five")
#
# # 5
# yield Static("Audio streams")
# yield Static(" ")
#
# if self.__pattern is not None:
# yield Button("Add", id="button_add_audio_stream")
# yield Button("Edit", id="button_edit_audio_stream")
# yield Button("Delete", id="button_delete_audio_stream")
# else:
# yield Static("")
# yield Static("")
# yield Static("")
# # 6
# yield self.tracksTable
#
# # 7
# yield Static(" ", classes="five")
#
# # 8
# yield Static("Subtitle streams")
# yield Static(" ")
#
# if self.__pattern is not None:
# yield Button("Add", id="button_add_subtitle_stream")
# yield Button("Edit", id="button_edit_subtitle_stream")
# yield Button("Delete", id="button_delete_subtitle_stream")
# else:
# yield Static("")
# yield Static("")
# yield Static("")
# # 9
# yield self.subtitleStreamsTable
#
# # 10
# yield Static(" ", classes="five")
#
# # 11
# yield Button("Save", id="save_button")
# yield Button("Cancel", id="cancel_button")
yield Footer ( )
@ -463,113 +396,8 @@ class MediaDetailsScreen(Screen):
return str ( self . query_one ( " #pattern_input " , Input ) . value )
# def getSelectedAudioTrackDescriptor(self):
#
# if not self.__pattern:
# return None
#
# try:
#
# # Fetch the currently selected row when 'Enter' is pressed
# #selected_row_index = self.table.cursor_row
# row_key, col_key = self.tracksTable.coordinate_to_cell_key(self.tracksTable.cursor_coordinate)
#
# if row_key is not None:
# selected_track_data = self.tracksTable.get_row(row_key)
#
# subIndex = int(selected_track_data[0])
#
# return self.__tc.findTrack(self.__pattern.getId(), TrackType.AUDIO, subIndex).getDescriptor()
#
# else:
# return None
#
# except CellDoesNotExist:
# return None
#
# def getSelectedSubtitleTrackDescriptor(self) -> TrackDescriptor:
#
# if not self.__pattern is None:
# return None
#
# try:
#
# # Fetch the currently selected row when 'Enter' is pressed
# #selected_row_index = self.table.cursor_row
# row_key, col_key = self.subtitleStreamsTable.coordinate_to_cell_key(self.subtitleStreamsTable.cursor_coordinate)
#
# if row_key is not None:
#
# selected_track_data = self.subtitleStreamsTable.get_row(row_key)
# subIndex = int(selected_track_data[0])
#
# return self.__tc.findTrack(self.__pattern.getId(), TrackType.SUBTITLE, subIndex).getDescriptor()
#
# else:
# return None
#
# except CellDoesNotExist:
# return None
# Event handler for button press
def on_button_pressed ( self , event : Button . Pressed ) - > None :
# # Check if the button pressed is the one we are interested in
# if event.button.id == "save_button":
#
# patternDescriptor = {}
# patternDescriptor['show_id'] = self.show_obj['id']
# patternDescriptor['pattern'] = self.getPatternFromInput()
#
# if self.__pattern is not None:
#
# if self.__pc.updatePattern(self.__pattern.getId(), patternDescriptor):
# self.dismiss(patternDescriptor)
# else:
# #TODO: Meldung
# self.app.pop_screen()
#
# else:
# if self.__pc.addPattern(patternDescriptor):
# self.dismiss(patternDescriptor)
# else:
# #TODO: Meldung
# self.app.pop_screen()
#
#
#
# if event.button.id == "cancel_button":
# self.app.pop_screen()
#
#
# # Save pattern when just created before adding streams
# if self.__pattern is not None:
#
# if event.button.id == "button_add_audio_stream":
# self.app.push_screen(TrackDetailsScreen(trackType = TrackType.AUDIO, patternId = self.__pattern.getId(), subIndex = len(self.tracksTable.rows)), self.handle_add_track)
#
# selectedAudioTrack = self.getSelectedAudioTrackDescriptor()
# if selectedAudioTrack is not None:
# if event.button.id == "button_edit_audio_stream":
#
# self.app.push_screen(TrackDetailsScreen(trackDescriptor = selectedAudioTrack), self.handle_edit_track)
# if event.button.id == "button_delete_audio_stream":
# self.app.push_screen(TrackDeleteScreen(trackDescriptor = selectedAudioTrack), self.handle_delete_track)
#
# if event.button.id == "button_add_subtitle_stream":
# self.app.push_screen(TrackDetailsScreen(trackType = TrackType.SUBTITLE, patternId = self.__pattern.getId(), subIndex = len(self.subtitleStreamsTable.rows)), self.handle_add_track)
#
# selectedSubtitleTrack = self.getSelectedSubtitleTrackDescriptor()
# if selectedSubtitleTrack is not None:
# if event.button.id == "button_edit_subtitle_stream":
# 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 == " pattern_button " :
INDICATOR_PATTERN = ' ([sS][0-9]+[eE][0-9]+) '
@ -582,75 +410,6 @@ class MediaDetailsScreen(Screen):
self . query_one ( " #pattern_input " , Input ) . value = pattern . replace ( patternMatch . group ( 1 ) , INDICATOR_PATTERN )
# def handle_add_track(self, trackDescriptor):
#
# dispoSet = trackDescriptor.getDispositionSet()
# trackType = trackDescriptor.getType()
# subIndex = trackDescriptor.getSubIndex()
# language = trackDescriptor.getLanguage()
# title = trackDescriptor.getTitle()
#
# if trackType == TrackType.AUDIO:
#
# row = (subIndex,
# " ",
# language.label(),
# title,
# 'Yes' if TrackDisposition.DEFAULT in dispoSet else 'No',
# 'Yes' if TrackDisposition.FORCED in dispoSet else 'No')
#
# self.tracksTable.add_row(*map(str, row))
#
# if trackType == TrackType.SUBTITLE:
#
# row = (subIndex,
# " ",
# language.label(),
# title,
# 'Yes' if TrackDisposition.DEFAULT in dispoSet else 'No',
# 'Yes' if TrackDisposition.FORCED in dispoSet else 'No')
#
# self.subtitleStreamsTable.add_row(*map(str, row))
# def handle_edit_track(self, trackDescriptor : TrackDescriptor):
#
# try:
# if trackDescriptor.getType() == TrackType.AUDIO:
#
# row_key, col_key = self.tracksTable.coordinate_to_cell_key(self.tracksTable.cursor_coordinate)
#
# self.tracksTable.update_cell(row_key, self.column_key_track_language, trackDescriptor.getLanguage().label())
# self.tracksTable.update_cell(row_key, self.column_key_track_title, trackDescriptor.getTitle())
# self.tracksTable.update_cell(row_key, self.column_key_track_default, 'Yes' if TrackDisposition.DEFAULT in trackDescriptor.getDispositionSet() else 'No')
# self.tracksTable.update_cell(row_key, self.column_key_track_forced, 'Yes' if TrackDisposition.FORCED in trackDescriptor.getDispositionSet() else 'No')
#
# if trackDescriptor.getType() == TrackType.SUBTITLE:
#
# row_key, col_key = self.subtitleStreamsTable.coordinate_to_cell_key(self.subtitleStreamsTable.cursor_coordinate)
#
# self.subtitleStreamsTable.update_cell(row_key, self.column_key_subtitle_language, trackDescriptor.getLanguage().label())
# self.subtitleStreamsTable.update_cell(row_key, self.column_key_subtitle_title, trackDescriptor.getTitle())
# self.subtitleStreamsTable.update_cell(row_key, self.column_key_subtitle_default, 'Yes' if TrackDisposition.DEFAULT in trackDescriptor.getDispositionSet() else 'No')
# self.subtitleStreamsTable.update_cell(row_key, self.column_key_subtitle_forced, 'Yes' if TrackDisposition.FORCED in trackDescriptor.getDispositionSet() else 'No')
#
# except CellDoesNotExist:
# pass
# def handle_delete_track(self, trackDescriptor : TrackDescriptor):
#
# try:
# if trackDescriptor.getType() == TrackType.AUDIO:
# self.updateAudioTracks()
#
# if trackDescriptor.getType() == TrackType.SUBTITLE:
# self.updateSubtitleTracks()
#
# except CellDoesNotExist:
# pass
def getSelectedShow ( self ) :
try :