|
|
|
@ -91,6 +91,14 @@ class MediaDetailsScreen(Screen):
|
|
|
|
|
}*/
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BINDINGS = [
|
|
|
|
|
("n", "new_pattern", "New Pattern"),
|
|
|
|
|
("u", "update_pattern", "Update Pattern"),
|
|
|
|
|
("e", "edit_pattern", "Update Pattern"),
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def __init__(self):
|
|
|
|
|
super().__init__()
|
|
|
|
|
|
|
|
|
@ -119,8 +127,6 @@ class MediaDetailsScreen(Screen):
|
|
|
|
|
|
|
|
|
|
self.__storedMediaFilenamePattern = self.__mediaFilenamePattern.getMediaDescriptor() if self.__mediaFilenamePattern is not None else None
|
|
|
|
|
|
|
|
|
|
# raise click.ClickException(f"diff {self.__mediaDescriptor.compare(self.__storedMediaFilenamePattern)}")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# def loadTracks(self, show_id):
|
|
|
|
|
#
|
|
|
|
@ -202,6 +208,7 @@ class MediaDetailsScreen(Screen):
|
|
|
|
|
|
|
|
|
|
def on_mount(self):
|
|
|
|
|
|
|
|
|
|
if self.__mediaFilenamePattern is None:
|
|
|
|
|
row = (' ', '<New show>', ' ') # Convert each element to a string before adding
|
|
|
|
|
self.showsTable.add_row(*map(str, row))
|
|
|
|
|
|
|
|
|
@ -226,31 +233,61 @@ class MediaDetailsScreen(Screen):
|
|
|
|
|
|
|
|
|
|
self.query_one("#pattern_input", Input).value = self.__mediaFilenamePattern.getPattern()
|
|
|
|
|
|
|
|
|
|
mediaDifferences = self.__mediaDescriptor.compare(self.__mediaFilenamePattern.getMediaDescriptor())
|
|
|
|
|
# Enumerating differences between media descriptor from file vs from stored in database
|
|
|
|
|
targetMediaDescriptor = self.__mediaFilenamePattern.getMediaDescriptor()
|
|
|
|
|
mediaDifferences = targetMediaDescriptor.compare(self.__mediaDescriptor)
|
|
|
|
|
|
|
|
|
|
if 'tags' in mediaDifferences.keys():
|
|
|
|
|
|
|
|
|
|
mediaTags = self.__mediaDescriptor.getTags()
|
|
|
|
|
|
|
|
|
|
if 'added' in mediaDifferences['tags'].keys():
|
|
|
|
|
|
|
|
|
|
for addedTagKey in mediaDifferences['tags']['added']:
|
|
|
|
|
|
|
|
|
|
row = (f"added media tag: key='{addedTagKey}' value='{mediaTags[addedTagKey]}'",)
|
|
|
|
|
self.differencesTable.add_row(*map(str, row))
|
|
|
|
|
|
|
|
|
|
if 'removed' in mediaDifferences['tags'].keys():
|
|
|
|
|
for removedTagKey in mediaDifferences['tags']['removed']:
|
|
|
|
|
row = (f"removed media tag: key='{removedTagKey}' value='{mediaTags[removedTagKey]}'",)
|
|
|
|
|
self.differencesTable.add_row(*map(str, row))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if 'tracks' in mediaDifferences.keys():
|
|
|
|
|
|
|
|
|
|
tracks = self.__mediaDescriptor.getAllTracks()
|
|
|
|
|
currentTracks = self.__mediaDescriptor.getAllTracks() # 0,1,2,3
|
|
|
|
|
targetTracks = targetMediaDescriptor.getAllTracks() # 0 <- from DB
|
|
|
|
|
|
|
|
|
|
if 'removed' in mediaDifferences['tracks'].keys():
|
|
|
|
|
if 'added' in mediaDifferences['tracks'].keys():
|
|
|
|
|
for addedTrackIndex in mediaDifferences['tracks']['added'].keys():
|
|
|
|
|
addedTrack : Track = currentTracks[addedTrackIndex]
|
|
|
|
|
row = (f"added {addedTrack.getType().label()} track: index={addedTrackIndex} subIndex={addedTrack.getSubIndex()} lang={addedTrack.getLanguage().threeLetter()}",)
|
|
|
|
|
self.differencesTable.add_row(*map(str, row))
|
|
|
|
|
|
|
|
|
|
if 'removed' in mediaDifferences['tracks'].keys():
|
|
|
|
|
for removedTrackIndex in mediaDifferences['tracks']['removed']:
|
|
|
|
|
row = (f"removed track: index={removedTrackIndex}",)
|
|
|
|
|
self.differencesTable.add_row(*map(str, row))
|
|
|
|
|
|
|
|
|
|
if 'changed' in mediaDifferences['tracks'].keys():
|
|
|
|
|
for changedTrackIndex in mediaDifferences['tracks']['changed'].keys():
|
|
|
|
|
|
|
|
|
|
changedTrack : Track = targetTracks[changedTrackIndex]
|
|
|
|
|
changedTrackDiff : dict = mediaDifferences['tracks']['changed'][changedTrackIndex]
|
|
|
|
|
|
|
|
|
|
removedTrack : Track = tracks[removedTrackIndex]
|
|
|
|
|
if 'tags' in changedTrackDiff.keys():
|
|
|
|
|
|
|
|
|
|
row = (f"removed {removedTrack.getType().label()} track: index={removedTrackIndex} subIndex={removedTrack.getSubIndex()} lang={removedTrack.getLanguage().threeLetter()}",)
|
|
|
|
|
if 'added' in changedTrackDiff['tags']:
|
|
|
|
|
for addedTagKey in changedTrackDiff['tags']['added']:
|
|
|
|
|
|
|
|
|
|
addedTagValue = changedTrack.getTags()[addedTagKey]
|
|
|
|
|
row = (f"changed {changedTrack.getType().label()} track index={changedTrackIndex} added key={addedTagKey} value={addedTagValue}",)
|
|
|
|
|
self.differencesTable.add_row(*map(str, row))
|
|
|
|
|
|
|
|
|
|
if 'removed' in changedTrackDiff['tags']:
|
|
|
|
|
for removedTagKey in changedTrackDiff['tags']['removed']:
|
|
|
|
|
row = (f"changed {changedTrack.getType().label()} track index={changedTrackIndex} removed key={removedTagKey}",)
|
|
|
|
|
self.differencesTable.add_row(*map(str, row))
|
|
|
|
|
|
|
|
|
|
else:
|
|
|
|
|
|
|
|
|
|
self.query_one("#pattern_input", Input).value = self.__mediaFilename
|
|
|
|
|