diff --git a/larigira/audiogen_mostrecent.py b/larigira/audiogen_mostrecent.py index 0fe0381..e35dc75 100644 --- a/larigira/audiogen_mostrecent.py +++ b/larigira/audiogen_mostrecent.py @@ -6,7 +6,7 @@ from tempfile import mkstemp from pytimeparse.timeparse import timeparse -from larigira.fsutils import scan_dir +from larigira.fsutils import scan_dir, shortname log = logging.getLogger(__name__) @@ -64,7 +64,7 @@ def generate(spec): for path in picked: tmp = mkstemp(suffix=os.path.splitext(path)[-1], - prefix='audiogen-randomdir-') + prefix='randomdir-%s-' % shortname(path)) os.close(tmp[0]) shutil.copy(path, tmp[1]) log.info("copying %s -> %s", path, os.path.basename(tmp[1])) diff --git a/larigira/audiogen_randomdir.py b/larigira/audiogen_randomdir.py index 1c79365..2453210 100644 --- a/larigira/audiogen_randomdir.py +++ b/larigira/audiogen_randomdir.py @@ -4,7 +4,7 @@ import shutil import random from tempfile import mkstemp -from larigira.fsutils import scan_dir +from larigira.fsutils import scan_dir, shortname log = logging.getLogger(__name__) @@ -35,7 +35,7 @@ def generate(spec): for path in picked: tmp = mkstemp(suffix=os.path.splitext(path)[-1], - prefix='randomdir-') + prefix='randomdir-%s-' % shortname(path)) os.close(tmp[0]) shutil.copy(path, tmp[1]) log.info("copying %s -> %s", path, os.path.basename(tmp[1])) diff --git a/larigira/audiogen_static.py b/larigira/audiogen_static.py index 8bf88c1..8d801ff 100644 --- a/larigira/audiogen_static.py +++ b/larigira/audiogen_static.py @@ -2,6 +2,8 @@ import os import logging import shutil from tempfile import mkstemp + +from larigira.fsutils import shortname log = logging.getLogger(__name__) @@ -19,7 +21,7 @@ def generate(spec): log.warning("Can't find requested path: %s", path) continue tmp = mkstemp(suffix=os.path.splitext(path)[-1], - prefix='audiogen-static-') + prefix='static-%s-' % shortname(path)) os.close(tmp[0]) log.info("copying %s -> %s", path, os.path.basename(tmp[1])) shutil.copy(path, tmp[1]) diff --git a/larigira/fsutils.py b/larigira/fsutils.py index 0b38c6f..6501e21 100644 --- a/larigira/fsutils.py +++ b/larigira/fsutils.py @@ -22,3 +22,10 @@ def scan_dir_audio(dirname, extensions=('mp3', 'oga', 'wav', 'ogg')): for fname in filenames: if multi_fnmatch(fname, extensions): yield os.path.join(root, fname) + + +def shortname(path): + name = os.path.basename(path) # filename + name = name.rsplit('.', 1)[0] # no extension + name = ''.join(c for c in name if c.isalnum()) # no strange chars + return name diff --git a/larigira/tests/test_fsutils.py b/larigira/tests/test_fsutils.py new file mode 100644 index 0000000..4a5d8bd --- /dev/null +++ b/larigira/tests/test_fsutils.py @@ -0,0 +1,16 @@ +from larigira.fsutils import shortname + + +def test_shortname_self(): + '''sometimes, shortname is just filename without extension''' + assert shortname('/tmp/asd/foo.bar') == 'foo' + + +def test_shortname_has_numbers(): + '''shortname will preserve numbers''' + assert shortname('/tmp/asd/foo1.bar') == 'foo1' + + +def test_shortname_has_no_hyphen(): + '''shortname will not preserve hyphens''' + assert shortname('/tmp/asd/foo-1.bar') == 'foo1'