diff --git a/folderify.py b/folderify.py deleted file mode 100644 index 8ffc634..0000000 --- a/folderify.py +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/env python3 - -# This is a simple script to find all video files in a folder and move them into their own folders. -# It also detects .srt subtitle files with matching names and moves them into their corresponding -# video file's folder. - -import os -from pathlib import Path - -path = os.getcwd() -files = (file for file in os.listdir(path) - if os.path.isfile(file) and Path(file).suffix in ['.mkv', '.mp4', '.avi', '.3gp']) -ctr = 0 - -for x in files: - filename = Path(x) - basename = str(filename.with_suffix('')) - if not os.path.isdir(basename): - os.mkdir(basename) - else: - print('The folder '+basename + - ' already exists, please deal with that file manually.') - continue - os.rename(path+"/"+x, path+"/"+basename+"/"+x) - if os.path.isfile(basename+'.srt'): - os.rename(path+'/'+basename+'.srt', path + - '/'+basename+'/'+basename+'.srt') - if os.path.isfile(basename+'.en.srt'): - os.rename(path+'/'+basename+'.en.srt', path + - '/'+basename+'/'+basename+'.en.srt') - ctr += 1 - -print(str(ctr)+' folder(s) created.') diff --git a/folderify.sh b/folderify.sh new file mode 100644 index 0000000..7bf0252 --- /dev/null +++ b/folderify.sh @@ -0,0 +1,27 @@ +#!/usr/bin/env bash + +# This is a simple script to find all video files in a folder and move them into their own folders. +# It also detects .srt subtitle files with matching names and moves them into their corresponding +# video file's folder. + +process_file () { + filename="$(basename "$file")" + echo "Processing $filename..." + without_ext="${filename%.*}" + + if [ -d "$without_ext" ]; then + echo "The directory $without_ext alreaddy exists. Please process the file manually." + else + mkdir "$without_ext" + mv "$filename" "$without_ext/" + find . -type f -regextype posix-egrep -iregex "\./$without_ext(\.[a-z]{2})?\.srt" \ + -exec mv "{}" "$without_ext/" \; + fi +} + +counter=0 + +find . -type f -regextype posix-egrep -iregex '.*\.(mkv|mp4)$' -print0 | while IFS= read -r -d '' file; do + process_file +done +