From f49cd5df6a2100bacc09da6000cdba51a282baa9 Mon Sep 17 00:00:00 2001 From: Kameron Kenny <1267885+kkenny@users.noreply.github.com> Date: Mon, 23 Sep 2024 15:33:14 -0400 Subject: [PATCH] import --- ...r_MainWindow.py => _BitMover_MainWindow.py | 174 +++++++++--------- configure.py => _configure.py | 0 file_stuff.py => _file_stuff.py | 0 get_image_tag.py => _get_image_tag.py | 0 hashing.py => _hashing.py | 0 img_preview.py => _img_preview.py | 39 ++-- _import_files.py | 0 lumberjack.py => _lumberjack.py | 0 media.py => _media.py | 0 raw_photo.py => _raw_photo.py | 0 thread_my_stuff.py => _thread_my_stuff.py | 0 scripts/gen_gui_py.sh | 1 + 12 files changed, 116 insertions(+), 98 deletions(-) rename BitMover_MainWindow.py => _BitMover_MainWindow.py (78%) rename configure.py => _configure.py (100%) rename file_stuff.py => _file_stuff.py (100%) rename get_image_tag.py => _get_image_tag.py (100%) rename hashing.py => _hashing.py (100%) rename img_preview.py => _img_preview.py (76%) create mode 100644 _import_files.py rename lumberjack.py => _lumberjack.py (100%) rename media.py => _media.py (100%) rename raw_photo.py => _raw_photo.py (100%) rename thread_my_stuff.py => _thread_my_stuff.py (100%) create mode 100755 scripts/gen_gui_py.sh diff --git a/BitMover_MainWindow.py b/_BitMover_MainWindow.py similarity index 78% rename from BitMover_MainWindow.py rename to _BitMover_MainWindow.py index fef642e..aa8b4bc 100644 --- a/BitMover_MainWindow.py +++ b/_BitMover_MainWindow.py @@ -47,30 +47,30 @@ class Ui_MainWindow(object): self.file_list.setGeometry(QtCore.QRect(20, 160, 871, 701)) self.file_list.setObjectName("file_list") self.gridLayoutWidget_2 = QtWidgets.QWidget(parent=self.centralwidget) - self.gridLayoutWidget_2.setGeometry(QtCore.QRect(910, 650, 311, 211)) + self.gridLayoutWidget_2.setGeometry(QtCore.QRect(910, 610, 311, 211)) self.gridLayoutWidget_2.setObjectName("gridLayoutWidget_2") self.grid_metadata = QtWidgets.QGridLayout(self.gridLayoutWidget_2) self.grid_metadata.setContentsMargins(0, 0, 0, 0) self.grid_metadata.setHorizontalSpacing(20) self.grid_metadata.setObjectName("grid_metadata") - self.l_camera = QtWidgets.QLabel(parent=self.gridLayoutWidget_2) + self.l_meta_06 = QtWidgets.QLabel(parent=self.gridLayoutWidget_2) font = QtGui.QFont() font.setBold(True) font.setItalic(True) - self.l_camera.setFont(font) - self.l_camera.setObjectName("l_camera") - self.grid_metadata.addWidget(self.l_camera, 6, 0, 1, 1) - self.l_iso = QtWidgets.QLabel(parent=self.gridLayoutWidget_2) + self.l_meta_06.setFont(font) + self.l_meta_06.setObjectName("l_meta_06") + self.grid_metadata.addWidget(self.l_meta_06, 6, 0, 1, 1) + self.l_meta_04 = QtWidgets.QLabel(parent=self.gridLayoutWidget_2) font = QtGui.QFont() font.setBold(True) font.setItalic(True) - self.l_iso.setFont(font) - self.l_iso.setObjectName("l_iso") - self.grid_metadata.addWidget(self.l_iso, 4, 0, 1, 1) - self.label_data_width_height = QtWidgets.QLabel(parent=self.gridLayoutWidget_2) - self.label_data_width_height.setText("") - self.label_data_width_height.setObjectName("label_data_width_height") - self.grid_metadata.addWidget(self.label_data_width_height, 1, 1, 1, 1) + self.l_meta_04.setFont(font) + self.l_meta_04.setObjectName("l_meta_04") + self.grid_metadata.addWidget(self.l_meta_04, 4, 0, 1, 1) + self.l_meta_content_01 = QtWidgets.QLabel(parent=self.gridLayoutWidget_2) + self.l_meta_content_01.setText("") + self.l_meta_content_01.setObjectName("l_meta_content_01") + self.grid_metadata.addWidget(self.l_meta_content_01, 1, 1, 1, 1) self.l_date_time_created = QtWidgets.QLabel(parent=self.gridLayoutWidget_2) font = QtGui.QFont() font.setBold(True) @@ -78,102 +78,102 @@ class Ui_MainWindow(object): self.l_date_time_created.setFont(font) self.l_date_time_created.setObjectName("l_date_time_created") self.grid_metadata.addWidget(self.l_date_time_created, 0, 0, 1, 1) - self.l_lens = QtWidgets.QLabel(parent=self.gridLayoutWidget_2) + self.l_meta_07 = QtWidgets.QLabel(parent=self.gridLayoutWidget_2) font = QtGui.QFont() font.setBold(True) font.setItalic(True) - self.l_lens.setFont(font) - self.l_lens.setObjectName("l_lens") - self.grid_metadata.addWidget(self.l_lens, 7, 0, 1, 1) - self.l_dpi = QtWidgets.QLabel(parent=self.gridLayoutWidget_2) + self.l_meta_07.setFont(font) + self.l_meta_07.setObjectName("l_meta_07") + self.grid_metadata.addWidget(self.l_meta_07, 7, 0, 1, 1) + self.l_meta_02 = QtWidgets.QLabel(parent=self.gridLayoutWidget_2) font = QtGui.QFont() font.setBold(True) font.setItalic(True) - self.l_dpi.setFont(font) - self.l_dpi.setObjectName("l_dpi") - self.grid_metadata.addWidget(self.l_dpi, 2, 0, 1, 1) - self.l_aperture = QtWidgets.QLabel(parent=self.gridLayoutWidget_2) + self.l_meta_02.setFont(font) + self.l_meta_02.setObjectName("l_meta_02") + self.grid_metadata.addWidget(self.l_meta_02, 2, 0, 1, 1) + self.l_meta_05 = QtWidgets.QLabel(parent=self.gridLayoutWidget_2) font = QtGui.QFont() font.setBold(True) font.setItalic(True) - self.l_aperture.setFont(font) - self.l_aperture.setObjectName("l_aperture") - self.grid_metadata.addWidget(self.l_aperture, 5, 0, 1, 1) - self.label_data_iso = QtWidgets.QLabel(parent=self.gridLayoutWidget_2) - self.label_data_iso.setText("") - self.label_data_iso.setObjectName("label_data_iso") - self.grid_metadata.addWidget(self.label_data_iso, 4, 1, 1, 1) - self.label_data_aperture = QtWidgets.QLabel(parent=self.gridLayoutWidget_2) - self.label_data_aperture.setText("") - self.label_data_aperture.setObjectName("label_data_aperture") - self.grid_metadata.addWidget(self.label_data_aperture, 5, 1, 1, 1) - self.label_data_lens = QtWidgets.QLabel(parent=self.gridLayoutWidget_2) - self.label_data_lens.setText("") - self.label_data_lens.setObjectName("label_data_lens") - self.grid_metadata.addWidget(self.label_data_lens, 7, 1, 1, 1) - self.l_megapixels = QtWidgets.QLabel(parent=self.gridLayoutWidget_2) + self.l_meta_05.setFont(font) + self.l_meta_05.setObjectName("l_meta_05") + self.grid_metadata.addWidget(self.l_meta_05, 5, 0, 1, 1) + self.l_meta_content_04 = QtWidgets.QLabel(parent=self.gridLayoutWidget_2) + self.l_meta_content_04.setText("") + self.l_meta_content_04.setObjectName("l_meta_content_04") + self.grid_metadata.addWidget(self.l_meta_content_04, 4, 1, 1, 1) + self.l_meta_content_05 = QtWidgets.QLabel(parent=self.gridLayoutWidget_2) + self.l_meta_content_05.setText("") + self.l_meta_content_05.setObjectName("l_meta_content_05") + self.grid_metadata.addWidget(self.l_meta_content_05, 5, 1, 1, 1) + self.l_meta_content_07 = QtWidgets.QLabel(parent=self.gridLayoutWidget_2) + self.l_meta_content_07.setText("") + self.l_meta_content_07.setObjectName("l_meta_content_07") + self.grid_metadata.addWidget(self.l_meta_content_07, 7, 1, 1, 1) + self.l_meta_03 = QtWidgets.QLabel(parent=self.gridLayoutWidget_2) font = QtGui.QFont() font.setBold(True) font.setItalic(True) - self.l_megapixels.setFont(font) - self.l_megapixels.setObjectName("l_megapixels") - self.grid_metadata.addWidget(self.l_megapixels, 3, 0, 1, 1) - self.label_data_megapixels = QtWidgets.QLabel(parent=self.gridLayoutWidget_2) - self.label_data_megapixels.setText("") - self.label_data_megapixels.setObjectName("label_data_megapixels") - self.grid_metadata.addWidget(self.label_data_megapixels, 3, 1, 1, 1) - self.l_width_height = QtWidgets.QLabel(parent=self.gridLayoutWidget_2) + self.l_meta_03.setFont(font) + self.l_meta_03.setObjectName("l_meta_03") + self.grid_metadata.addWidget(self.l_meta_03, 3, 0, 1, 1) + self.l_meta_content_03 = QtWidgets.QLabel(parent=self.gridLayoutWidget_2) + self.l_meta_content_03.setText("") + self.l_meta_content_03.setObjectName("l_meta_content_03") + self.grid_metadata.addWidget(self.l_meta_content_03, 3, 1, 1, 1) + self.l_meta_01 = QtWidgets.QLabel(parent=self.gridLayoutWidget_2) font = QtGui.QFont() font.setBold(True) font.setItalic(True) - self.l_width_height.setFont(font) - self.l_width_height.setObjectName("l_width_height") - self.grid_metadata.addWidget(self.l_width_height, 1, 0, 1, 1) - self.label_data_date_time_created = QtWidgets.QLabel(parent=self.gridLayoutWidget_2) - self.label_data_date_time_created.setText("") - self.label_data_date_time_created.setObjectName("label_data_date_time_created") - self.grid_metadata.addWidget(self.label_data_date_time_created, 0, 1, 1, 1) - self.label_data_camera = QtWidgets.QLabel(parent=self.gridLayoutWidget_2) - self.label_data_camera.setText("") - self.label_data_camera.setObjectName("label_data_camera") - self.grid_metadata.addWidget(self.label_data_camera, 6, 1, 1, 1) - self.l_zoom = QtWidgets.QLabel(parent=self.gridLayoutWidget_2) + self.l_meta_01.setFont(font) + self.l_meta_01.setObjectName("l_meta_01") + self.grid_metadata.addWidget(self.l_meta_01, 1, 0, 1, 1) + self.l_meta_content_date_time_c = QtWidgets.QLabel(parent=self.gridLayoutWidget_2) + self.l_meta_content_date_time_c.setText("") + self.l_meta_content_date_time_c.setObjectName("l_meta_content_date_time_c") + self.grid_metadata.addWidget(self.l_meta_content_date_time_c, 0, 1, 1, 1) + self.l_meta_content_06 = QtWidgets.QLabel(parent=self.gridLayoutWidget_2) + self.l_meta_content_06.setText("") + self.l_meta_content_06.setObjectName("l_meta_content_06") + self.grid_metadata.addWidget(self.l_meta_content_06, 6, 1, 1, 1) + self.l_meta_08 = QtWidgets.QLabel(parent=self.gridLayoutWidget_2) font = QtGui.QFont() font.setBold(True) font.setItalic(True) - self.l_zoom.setFont(font) - self.l_zoom.setObjectName("l_zoom") - self.grid_metadata.addWidget(self.l_zoom, 8, 0, 1, 1) - self.label_data_zoom = QtWidgets.QLabel(parent=self.gridLayoutWidget_2) - self.label_data_zoom.setText("") - self.label_data_zoom.setObjectName("label_data_zoom") - self.grid_metadata.addWidget(self.label_data_zoom, 8, 1, 1, 1) - self.label_data_dpi = QtWidgets.QLabel(parent=self.gridLayoutWidget_2) - self.label_data_dpi.setText("") - self.label_data_dpi.setObjectName("label_data_dpi") - self.grid_metadata.addWidget(self.label_data_dpi, 2, 1, 1, 1) + self.l_meta_08.setFont(font) + self.l_meta_08.setObjectName("l_meta_08") + self.grid_metadata.addWidget(self.l_meta_08, 8, 0, 1, 1) + self.l_meta_content_08 = QtWidgets.QLabel(parent=self.gridLayoutWidget_2) + self.l_meta_content_08.setText("") + self.l_meta_content_08.setObjectName("l_meta_content_08") + self.grid_metadata.addWidget(self.l_meta_content_08, 8, 1, 1, 1) + self.l_meta_content_02 = QtWidgets.QLabel(parent=self.gridLayoutWidget_2) + self.l_meta_content_02.setText("") + self.l_meta_content_02.setObjectName("l_meta_content_02") + self.grid_metadata.addWidget(self.l_meta_content_02, 2, 1, 1, 1) self.grid_metadata.setColumnStretch(1, 1) self.l_exif_ffprobe_title = QtWidgets.QLabel(parent=self.centralwidget) - self.l_exif_ffprobe_title.setGeometry(QtCore.QRect(910, 630, 371, 16)) + self.l_exif_ffprobe_title.setGeometry(QtCore.QRect(910, 590, 371, 16)) font = QtGui.QFont() font.setPointSize(18) font.setBold(True) self.l_exif_ffprobe_title.setFont(font) self.l_exif_ffprobe_title.setObjectName("l_exif_ffprobe_title") self.gridLayoutWidget_3 = QtWidgets.QWidget(parent=self.centralwidget) - self.gridLayoutWidget_3.setGeometry(QtCore.QRect(910, 10, 541, 71)) + self.gridLayoutWidget_3.setGeometry(QtCore.QRect(910, 10, 541, 31)) self.gridLayoutWidget_3.setObjectName("gridLayoutWidget_3") self.gridLayout = QtWidgets.QGridLayout(self.gridLayoutWidget_3) self.gridLayout.setContentsMargins(0, 0, 0, 0) self.gridLayout.setObjectName("gridLayout") - self.eventName = QtWidgets.QLineEdit(parent=self.gridLayoutWidget_3) - self.eventName.setObjectName("eventName") - self.gridLayout.addWidget(self.eventName, 1, 0, 1, 1) self.labelEvent = QtWidgets.QLabel(parent=self.gridLayoutWidget_3) self.labelEvent.setObjectName("labelEvent") self.gridLayout.addWidget(self.labelEvent, 0, 0, 1, 1) + self.eventName = QtWidgets.QLineEdit(parent=self.gridLayoutWidget_3) + self.eventName.setObjectName("eventName") + self.gridLayout.addWidget(self.eventName, 0, 1, 1, 1) self.gridLayoutWidget_4 = QtWidgets.QWidget(parent=self.centralwidget) - self.gridLayoutWidget_4.setGeometry(QtCore.QRect(910, 90, 221, 41)) + self.gridLayoutWidget_4.setGeometry(QtCore.QRect(910, 50, 221, 41)) self.gridLayoutWidget_4.setObjectName("gridLayoutWidget_4") self.gridLayout_2 = QtWidgets.QGridLayout(self.gridLayoutWidget_4) self.gridLayout_2.setContentsMargins(0, 0, 0, 0) @@ -189,7 +189,7 @@ class Ui_MainWindow(object): self.gridLayout_2.addWidget(self.lcd_files_found, 0, 1, 1, 1) self.gridLayout_2.setColumnStretch(1, 1) self.gridLayoutWidget_5 = QtWidgets.QWidget(parent=self.centralwidget) - self.gridLayoutWidget_5.setGeometry(QtCore.QRect(1140, 90, 311, 46)) + self.gridLayoutWidget_5.setGeometry(QtCore.QRect(1140, 50, 311, 46)) self.gridLayoutWidget_5.setObjectName("gridLayoutWidget_5") self.gridLayout_3 = QtWidgets.QGridLayout(self.gridLayoutWidget_5) self.gridLayout_3.setContentsMargins(0, 0, 0, 0) @@ -209,13 +209,13 @@ class Ui_MainWindow(object): self.progressBar_importing.setObjectName("progressBar_importing") self.gridLayout_3.addWidget(self.progressBar_importing, 1, 1, 1, 1) self.img_preview = QtWidgets.QLabel(parent=self.centralwidget) - self.img_preview.setGeometry(QtCore.QRect(910, 150, 541, 371)) + self.img_preview.setGeometry(QtCore.QRect(910, 110, 541, 371)) self.img_preview.setAutoFillBackground(True) self.img_preview.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel) self.img_preview.setText("") self.img_preview.setObjectName("img_preview") self.gridLayoutWidget_6 = QtWidgets.QWidget(parent=self.centralwidget) - self.gridLayoutWidget_6.setGeometry(QtCore.QRect(910, 530, 541, 91)) + self.gridLayoutWidget_6.setGeometry(QtCore.QRect(910, 490, 541, 91)) self.gridLayoutWidget_6.setObjectName("gridLayoutWidget_6") self.grid_metadata_2 = QtWidgets.QGridLayout(self.gridLayoutWidget_6) self.grid_metadata_2.setContentsMargins(0, 0, 0, 0) @@ -344,17 +344,17 @@ class Ui_MainWindow(object): self.pushButton_dst_browse.setText(_translate("MainWindow", "Browse")) self.label_1_src_dir.setText(_translate("MainWindow", "Source Directory")) self.label_2_dst_dir.setText(_translate("MainWindow", "Destination Directory")) - self.l_camera.setText(_translate("MainWindow", "Camera")) - self.l_iso.setText(_translate("MainWindow", "ISO")) + self.l_meta_06.setText(_translate("MainWindow", "Camera")) + self.l_meta_04.setText(_translate("MainWindow", "ISO")) self.l_date_time_created.setText(_translate("MainWindow", "Date / Time Created")) - self.l_lens.setText(_translate("MainWindow", "Lens")) - self.l_dpi.setText(_translate("MainWindow", "Resolution (DPI)")) - self.l_aperture.setText(_translate("MainWindow", "Aperture")) - self.l_megapixels.setText(_translate("MainWindow", "Megapixels")) - self.l_width_height.setText(_translate("MainWindow", "Width / Height")) - self.l_zoom.setText(_translate("MainWindow", "Focal Length")) + self.l_meta_07.setText(_translate("MainWindow", "Lens")) + self.l_meta_02.setText(_translate("MainWindow", "Resolution (DPI)")) + self.l_meta_05.setText(_translate("MainWindow", "Aperture")) + self.l_meta_03.setText(_translate("MainWindow", "Megapixels")) + self.l_meta_01.setText(_translate("MainWindow", "Width / Height")) + self.l_meta_08.setText(_translate("MainWindow", "Focal Length")) self.l_exif_ffprobe_title.setText(_translate("MainWindow", "Exif / ffprobe Data")) - self.labelEvent.setText(_translate("MainWindow", "Event Label")) + self.labelEvent.setText(_translate("MainWindow", "Event")) self.label_3.setText(_translate("MainWindow", "Files Found")) self.l_import_progress.setText(_translate("MainWindow", "Import Progress")) self.l_proecessing_progress.setText(_translate("MainWindow", "Processing Progress")) diff --git a/configure.py b/_configure.py similarity index 100% rename from configure.py rename to _configure.py diff --git a/file_stuff.py b/_file_stuff.py similarity index 100% rename from file_stuff.py rename to _file_stuff.py diff --git a/get_image_tag.py b/_get_image_tag.py similarity index 100% rename from get_image_tag.py rename to _get_image_tag.py diff --git a/hashing.py b/_hashing.py similarity index 100% rename from hashing.py rename to _hashing.py diff --git a/img_preview.py b/_img_preview.py similarity index 76% rename from img_preview.py rename to _img_preview.py index 6e17cfb..cc5e524 100644 --- a/img_preview.py +++ b/_img_preview.py @@ -22,11 +22,20 @@ class ImgPreview: self.is_raw = False self.path_hash = self.m.source_path_hash self.dtc = f'{self.m.capture_date[0]}/{self.m.capture_date[1]}/{self.m.capture_date[2]}' + self.size = None + self.mpixels = None self.thumbnail = 'thumbnail.jpg' self.ratio = None self.thumbnail_width = None self.thumbnail_height = None self.thumbnail_ratio = None + self.video_framerate = None + self.video_bit_depth = None + self.video_duration = None + self.video_encoding = None + self.video_codec = None + self.video_profile = None + self.video_pix_format = None if self.file_type == 'image': self._img_preview() @@ -38,11 +47,16 @@ class ImgPreview: print(f'camera: {self.camera}') print(f'aperture: {self.aperture}') print(f'mpixels: {self.mpixels}') - - if self.file_type == 'video': + elif self.file_type == 'video': self._video_preview() self.thumb_ratio() + self.size = f'{self.width}x{self.height}' + if self.width is not None \ + and self.height is not None: + self.mpixels = round((self.width * self.height) / 1000000, 1) + else: + self.mpixels = 'Unknown :(' def _img_preview(self): self.dpi = get_exif_tag(self.file, "xresolution") @@ -60,15 +74,6 @@ class ImgPreview: else: self._raw_preview() - self.size = f'{self.width}x{self.height}' - if self.width is not None \ - and self.height is not None: - self.mpixels = round((self.width * self.height) / 1000000, 1) - else: - self.mpixels = 'Unknown :(' - - - def _jpg_preview(self): self.is_jpg = True img = Image.open(self.file) @@ -96,6 +101,18 @@ class ImgPreview: def _video_preview(self): vid = Video(file=self.file) self.thumbnail = vid.gen_video_thumbnail() + video_meta = vid.get_video_meta() + self.width = video_meta['video']['size']['width'] + self.height = video_meta['video']['size']['height'] + self.video_framerate = round( + int(video_meta['video']['r_frame_rate'].split('/')[0]) / + int(video_meta['video']['r_frame_rate'].split('/')[1]),2) + self.video_bit_depth = video_meta['video']['bits_per_raw_sample'] + self.video_duration = video_meta['video']['duration'] + self.video_encoding = video_meta['video']['encoding_brand'] + self.video_codec = video_meta['video']['codec_long_name'] + self.video_profile = video_meta['video']['profile'] + self.video_pix_format = video_meta['video']['pix_fmt'] def thumb_ratio(self): img = Image.open(self.thumbnail) diff --git a/_import_files.py b/_import_files.py new file mode 100644 index 0000000..e69de29 diff --git a/lumberjack.py b/_lumberjack.py similarity index 100% rename from lumberjack.py rename to _lumberjack.py diff --git a/media.py b/_media.py similarity index 100% rename from media.py rename to _media.py diff --git a/raw_photo.py b/_raw_photo.py similarity index 100% rename from raw_photo.py rename to _raw_photo.py diff --git a/thread_my_stuff.py b/_thread_my_stuff.py similarity index 100% rename from thread_my_stuff.py rename to _thread_my_stuff.py diff --git a/scripts/gen_gui_py.sh b/scripts/gen_gui_py.sh new file mode 100755 index 0000000..8be5d38 --- /dev/null +++ b/scripts/gen_gui_py.sh @@ -0,0 +1 @@ +pyuic6 BitMover.ui -o _BitMover_MainWindow.py