import argparse import os import shutil import sys import photo_rename from voussoirkit import betterhelp from voussoirkit import pathclass from voussoirkit import spinal from voussoirkit import vlogging from voussoirkit import windrives from voussoirkit import progressbars log = vlogging.getLogger(__name__, 'sdingest') def sdingest_one(folder): cwd = pathclass.cwd() for file in folder.walk_files(): # print(file.absolute_path) spinal.copy_file( file, cwd.with_child(file.basename), progressbar=progressbars.Bar1_bytestring, ) def sdingest_all(): dcim = None drives = windrives.get_drive_map() for (mount, info) in drives.items(): mount = pathclass.Path(mount) # Panasonic HC-X1500/HC-X2000 panasonic = mount.with_child('PRIVATE').with_child('PANA_GRP').with_child('001YAQAM') if panasonic.is_folder: files = list(panasonic.walk_files()) pairs = photo_rename.makenames(files, read_mtime=True, minus_duration=True) for (old, new) in pairs.items(): os.rename(old.absolute_path, new.absolute_path) sdingest_one(panasonic) continue # Most cameras dcim = mount.with_child('DCIM') if dcim.is_folder: sdingest_one(dcim) continue # Sony ICD UX570 if info.get('name').upper() == 'MEMORY CARD': folder = mount.join('PRIVATE\\SONY\\REC_FILE') if folder.exists: sdingest_one(folder) continue if dcim is None: return 1 def sdingest_argparse(args): return sdingest_all() @vlogging.main_decorator def main(argv): parser = argparse.ArgumentParser( description=''' ''', ) parser.set_defaults(func=sdingest_argparse) return betterhelp.go(parser, argv) if __name__ == '__main__': raise SystemExit(main(sys.argv[1:]))