cmd/sdingest.py
2025-11-08 11:40:31 -08:00

66 lines
1.7 KiB
Python

import shutil
import argparse
import sys
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:
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:]))