def remove_dummy_files(self): # Remove any wav files that are 0 bytes in size for folder in FOLDERS: folder = self.get_root_dir() / folder wavs = Folder.ls_files(folder, "wav") for wav in wavs: if wav.exists() and wav.stat().st_size == 0: wav.unlink()
def set_dummy_files(self): # double check that the dummy.json files exist self.create_dummy_json() for folder in FOLDERS: folder = self.get_root_dir() / folder dummy_json = folder / "dummy.json" data = File.get_json(dummy_json) wavs = Folder.ls_files(folder, "wav") # Lets find the max wav numbers for wav in wavs: file_stem, num, ext = File.split_name(wav) if not file_stem in data["max"]: data["max"][file_stem] = num else: if num > data["max"][file_stem]: data["max"][file_stem] = num # Now lets create the dummy files if they don't already exist for file_stem in data["max"]: num = data["max"][file_stem] for i in range(num): if i == 0: path = folder / f'{file_stem}.wav' else: path = folder / f'{file_stem}({i}).wav' path.touch() # Lets also get rid of the "dummy" key that is unused now if "dummy" in data: data.pop("dummy") # Lastly, lets update the dummy.json file File.set_json(dummy_json, data)
def move_extracted_song_to_temp(self): # Make sure we don't have any dummy files self.remove_dummy_files() for location in ["Media", "Bounces"]: # Remove unused cached audio from location # Garbage collector for unused audio files mp3s = Folder.ls_files(self.get_temp_dir() / location, "mp3") wav_names = [ x.stem for x in Folder.ls_files(self.get_root_dir() / location, "wav") ] for mp3 in mp3s: if mp3.stem not in wav_names: File.delete(mp3) # Convert and move wavs to mp3s Log(f'Converting "{location}" wav\'s to mp3\'s') if not Audio.folder_to_mp3(self.get_root_dir() / location, self.get_temp_dir() / location): return False # Copy over dummy.json Log(f'Copying over "{location}" dummy.json') if self.get_dummy_db(location, temp=False).exists(): File.recursive_overwrite( self.get_dummy_db(location, temp=False), self.get_dummy_db(location, temp=True), ) # Upload scratch files and mixdowns to the cloud mp3s = Folder.ls_files(self.get_temp_dir() / "Media", "mp3", "Scratch*") mp3s.extend( Folder.ls_files(self.get_temp_dir() / "Media", "mp3", "SCRATCH*")) mp3s.extend(Folder.ls_files(self.get_root_dir() / "Mixdown", "mp3")) for mp3 in mp3s: mix_folder_id = Drive.get_id(self.entry.name) if not Drive.get_id(mp3.name, mix_folder_id): Log(f'Uploading "{mp3.name}" to the cloud', "sub") mp3_id = Drive.upload(filepath=mp3, mimeType=Drive.mimeType["mp3"], parent=mix_folder_id) audio_type = "Scratch" if mp3.parent.name == "Media" else "#MIXDOWN#" Slack.send_link( link_name= f'{audio_type} for {self.entry.name}, "{mp3.name}"', ID=mp3_id) else: Log(f'Audio file "{mp3.name}" already exists on the cloud!', "sub") # Copy over mixdowns to temp Log("Copying over 'Mixdown' mp3's") Folder.copy(self.get_root_dir() / "Mixdown", self.get_temp_dir() / "Mixdown") # Lastly, copy over the song file File.recursive_overwrite(self.get_song_file(temp=False), self.get_song_file(temp=True)) return True