Skip to content

Commit

Permalink
minor fixes importing for view
Browse files Browse the repository at this point in the history
  • Loading branch information
outdoorbits committed Jan 13, 2025
1 parent e0dcce8 commit 56172e6
Show file tree
Hide file tree
Showing 6 changed files with 25 additions and 22 deletions.
32 changes: 15 additions & 17 deletions scripts/backup.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ class backup(object):

def __init__(self, SourceName, TargetName, move_files='setup', DoRenameFiles='setup', ForceSyncDatabase=False, DoGenerateThumbnails='setup', shiftGenerateThumbnails=False, DoUpdateEXIF='setup', DeviceIdentifierPresetSource=None, DeviceIdentifierPresetTarget=None, PowerOff='setup', SecondaryBackupFollows=False):

# SourceName: one of ['anyusb', 'usb', 'internal', 'nvme', 'camera', 'cloud:SERVICE_NAME', 'cloud_rsync'] or functions: ['thumbnails', 'database', 'exif']
# SourceName: one of ['anyusb', 'usb', 'internal', 'nvme', 'camera', 'cloud:SERVICE_NAME', 'cloud_rsync'] or functions: ['thumbnails', 'database', 'exif', 'rename]
# TargetName: one of ['anyusb', 'usb', 'internal', 'nvme', 'cloud:SERVICE_NAME', 'cloud_rsync']
# DoRenameFiles, DoGenerateThumbnails, DoUpdateEXIF: one of ['setup', True, False]
# ForceSyncDatabase: one of [True, False]
Expand Down Expand Up @@ -206,7 +206,7 @@ def run(self):
lib_system.rpi_leds(trigger='none',brightness=1)

# backup
if self.TargetDevice and (self.SourceStorageType not in ['thumbnails', 'database', 'exif']):
if self.TargetDevice and (self.SourceStorageType not in ['thumbnails', 'database', 'exif', 'rename']):
self.backup()

# rename
Expand Down Expand Up @@ -1023,21 +1023,20 @@ def syncDatabase(self):
## vacuum database
db.dbExecute('VACUUM;')

## import preexisting tims into database
## import missing images into database
self.__display.message(['set:clear',f":{self.__lan.l('box_backup_generating_database_finding_images1')}",':' + self.__lan.l(f"box_backup_mode_{self.TargetDevice.StorageType}"),f":{self.__lan.l('box_backup_counting_images')}",f":{self.__lan.l('box_backup_generating_database_finding_images3')}"])

# find all tims and convert their filename to the estimated original filename:
## 1. replace only last '/tims/' by '/'
## 2. remove last part of file extension
# find all images

BannedPathsViewCaseInsensitive = self.get_BannedPathsViewCaseInsensitive()

Command = ['find', self.TargetDevice.MountPoint, '-type', 'f', '-iname', '*.jpg', '-path', '*/tims/*'] + BannedPathsViewCaseInsensitive
TIMSList = subprocess.check_output(Command).decode().strip().split('\n')
TIMSList[:] = [element for element in TIMSList if element]
Command = f"find '{self.TargetDevice.MountPoint}' -type f \( {' '.join(self.get_AllowedExtensionsFindOptions())} \) -not -path '*/tims/*' {' '.join(BannedPathsViewCaseInsensitive)}"

Images = subprocess.check_output(Command, shell=True).decode().strip().split('\n')
Images[:] = [element for element in Images if element]

# prepare loop to insert images into the database
FilesToProcess = len(TIMSList)
FilesToProcess = len(Images)

DisplayLine1 = self.__lan.l('box_backup_generating_database') # header1
DisplayLine2 = self.__lan.l(f'box_backup_mode_{self.TargetDevice.StorageType}') # header2
Expand All @@ -1052,14 +1051,13 @@ def syncDatabase(self):
DisplayLine2 = DisplayLine2
)

for TimsFileName in TIMSList:
OrigFileName = TimsFileName.replace(self.TargetDevice.MountPoint,'',1).rsplit('.',1)[0] # remove mountpoint and remove second extension from tims
OrigFileName = '/'.join(OrigFileName.rsplit('/tims/', 1)) # remove /tims from folder
ImageFilePath = os.path.dirname(OrigFileName).strip('/')
ImageFileName = os.path.basename(OrigFileName)
for Image in Images:
FileName = Image.replace(self.TargetDevice.MountPoint,'',1) # remove mountpoint
ImageFilePath = os.path.dirname(FileName).strip('/')
ImageFileName = os.path.basename(FileName)

if not db.dbSelect(f"select ID from EXIF_DATA where File_Name='{ImageFileName}' and Directory='{ImageFilePath}'"):
db.dbInsertImage(OrigFileName)
db.dbInsertImage(FileName)

progress.progress()

Expand Down Expand Up @@ -1126,7 +1124,7 @@ def generateThumbnails(self, Device=None):
BannedPathsViewCaseInsensitive = self.get_BannedPathsViewCaseInsensitive()
Command = f"find '{Device.MountPoint}' -type f \( {' '.join(self.get_AllowedExtensionsFindOptions())} \) -not -path '*/tims/*' {' '.join(BannedPathsViewCaseInsensitive)}"

ImagesList = subprocess.check_output(Command,shell=True).decode().strip().split('\n')
ImagesList = subprocess.check_output(Command, shell=True).decode().strip().split('\n')
ImagesList[:] = [element for element in ImagesList if element]
ImagesList.sort()
ImagesList = [i.replace(Device.MountPoint,'',1) for i in ImagesList]
Expand Down
3 changes: 2 additions & 1 deletion scripts/index.php
Original file line number Diff line number Diff line change
Expand Up @@ -463,7 +463,8 @@ function HideDisallowedButtons(ActiveSource) {
}

shell_exec("sudo $WORKING_DIR/stop_backup.sh");
shell_exec("sudo python3 $WORKING_DIR/backup.py --SourceName $Function --TargetName $Target --rename-files '$rename_files' --force-sync-database $sync_database --generate-thumbnails $generate_thumbnails --update-exif $update_exif --device-identifier-preset-source " . escapeshellarg($preset_source) . " --device-identifier-preset-target " . escapeshellarg($preset_target) . " --power-off $power_off_force> /dev/null 2>&1 &");
print("xxx sudo python3 $WORKING_DIR/backup.py --SourceName $Function --TargetName $Target --rename-files $rename_files --force-sync-database $sync_database --generate-thumbnails $generate_thumbnails --update-exif $update_exif --device-identifier-preset-source " . escapeshellarg($preset_source) . " --device-identifier-preset-target " . escapeshellarg($preset_target) . " --power-off $power_off_force> /dev/null 2>&1 &");
shell_exec("sudo python3 $WORKING_DIR/backup.py --SourceName $Function --TargetName $Target --rename-files $rename_files --force-sync-database $sync_database --generate-thumbnails $generate_thumbnails --update-exif $update_exif --device-identifier-preset-source " . escapeshellarg($preset_source) . " --device-identifier-preset-target " . escapeshellarg($preset_target) . " --power-off $power_off_force> /dev/null 2>&1 &");
popup($ButtonLabel_Function . " " . L::main_backup_on . " " . $ButtonLabel_Target . ".",$config["conf_POPUP_MESSAGES"]);
}

Expand Down
3 changes: 2 additions & 1 deletion scripts/lang/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -516,7 +516,8 @@
"usb": "USB-Speicher",
"usbs": "USB-Speicher",
"nvme": "NVMe SSD",
"nvmes": "NVMe SSDs"
"nvmes": "NVMe SSDs",
"rename": "Umbenennen"
},
"nvme": "NVMe SSD",
"nvme_source": "USB-Quelle",
Expand Down
3 changes: 2 additions & 1 deletion scripts/lang/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,8 @@
"usb": "USB storage",
"usbs": "USB storages",
"nvme": "NVMe SSD",
"nvmes": "NVMe SSDs"
"nvmes": "NVMe SSDs",
"rename": "Rename"
},
"nvme": "NVMe SSD",
"nvme_source": "USB-source",
Expand Down
3 changes: 2 additions & 1 deletion scripts/lang/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -516,7 +516,8 @@
"usb": "Almacenamiento USB",
"usbs": "Almacenamientos USB",
"nvme": "NVMe SSD",
"nvmes": "NVMe SSDs"
"nvmes": "NVMe SSDs",
"rename": "Rebautizar"
},
"nvme": "NVMe SSD",
"nvme_source": "Fuente USB",
Expand Down
3 changes: 2 additions & 1 deletion scripts/lang/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -516,7 +516,8 @@
"usb": "Stockage USB",
"usbs": "Stockages USB",
"nvme": "NVMe SSD",
"nvmes": "NVMe SSDs"
"nvmes": "NVMe SSDs",
"rename": "Rebaptiser"
},
"nvme": "NVMe SSD",
"nvme_source": "Source USB",
Expand Down

0 comments on commit 56172e6

Please sign in to comment.