diff --git a/bin/flac2pod b/bin/flac2pod old mode 100755 new mode 100644 index 7e2df8d..61b9c57 --- a/bin/flac2pod +++ b/bin/flac2pod @@ -2,10 +2,11 @@ # external modules -from os import path, system, walk +from os import cpu_count, path, walk from pathlib import Path -from sys import argv -from mutagen.id3 import ID3 +from sys import argv, exit as s_exit +from time import sleep +from subprocess import check_output, Popen # utility functions @@ -37,38 +38,40 @@ def create_destination(): def scan_destination_convert_mp3(): + _i = 0 for _file in source_directories[1]: if not Path(f"{_file.replace(path.expanduser(source), path.expanduser(destination))}.mp3").is_file(): _file_s = _file.replace(' ', '\\ ').replace("'", "\\'").replace(')', '\\)').replace('(', '\\(').replace\ ('&', '\\&').replace('`', '\\`').replace('$', '\\$') + '.flac' - _file_d = _file.replace(path.expanduser(source), path.expanduser(destination)).replace(' ', '\\ ').replace\ - ("'", "\\'").replace(')', '\\)').replace('(', '\\(').replace('&', '\\&').replace\ - ('`', '\\`').replace('$', '\\$') + '.mp3' + _file_d = _file.replace(path.expanduser(source), path.expanduser(destination)).replace(' ', '\\ ')\ + .replace("'", "\\'").replace(')', '\\)').replace('(', '\\(').replace('&', '\\&')\ + .replace('`', '\\`').replace('$', '\\$') + '.mp3' + _active_processes = int(check_output('ps -C ffmpeg | wc -l', shell=True)) - 1 + print(_active_processes) + if _active_processes >= cpu_count(): + while _active_processes >= cpu_count(): + print(f"\nThere are already {cpu_count()} processes running...\n") + sleep(1) + _active_processes = int(check_output('ps -C ffmpeg | wc -l', shell=True)) - 1 + _i += 1 print(f"\n\u001b[38;5;0;48;5;15mConverting {_file_s} to {_file_d}...\u001b[0m\n") if '-s' in arguments: - system(f"ffmpeg -i {_file_s} -map 0:a -ab 320k -map_metadata 0 -id3v2_version 3 {_file_d}") + _cmd = f"screen -DmS flac2pod{_i} ffmpeg -i {_file_s} -map 0:a -ab 320k -map_metadata 0" \ + f" -id3v2_version 3 {_file_d}