| @@ -0,0 +1,80 @@ | |||
| import eyed3 | |||
| import os | |||
| import sys | |||
| import shutil | |||
| import yaml | |||
| from mako.template import Template | |||
| # TracksDir class definition | |||
| class Album: | |||
| def __init__(self, track_files): | |||
| self.trackFiles = track_files | |||
| # script usage function | |||
| def usage(): | |||
| print('USAGE : labelize.py [inputDirectory] [outputDirectory]') | |||
| # script beginning | |||
| arguments = len(sys.argv) - 1 | |||
| if arguments != 2: | |||
| usage() | |||
| sys.exit(2) | |||
| input_directory = sys.argv[1] | |||
| output_directory = sys.argv[2] | |||
| def copy_directory(src, dest): | |||
| try: | |||
| shutil.copytree(src, dest) | |||
| except shutil.Error as e: | |||
| print('Directory not copied. Error: %s' % e) | |||
| except OSError as e: | |||
| print('Directory not copied. Error: %s' % e) | |||
| # removes existing build directory if exists | |||
| if os.path.isdir(output_directory): | |||
| shutil.rmtree(output_directory) | |||
| # | |||
| # copies source files in the build directory | |||
| copy_directory(input_directory, output_directory + '/audio') | |||
| # copies assets in the build directory | |||
| copy_directory('assets', output_directory + '/assets') | |||
| with open('labelize.yaml') as f: | |||
| data = yaml.load(f, Loader=yaml.FullLoader) | |||
| title = data['band'] | |||
| cover_img = data['images']['cover'] | |||
| contact_img = data['images']['contact'] | |||
| shutil.copyfile(input_directory + '/' + cover_img, output_directory + '/assets/images/cover.png'); | |||
| shutil.copyfile(input_directory + '/' + contact_img, output_directory + '/assets/images/contact.png'); | |||
| track_files = [] | |||
| for root, dirs, files in os.walk(input_directory): | |||
| for f in sorted(files): | |||
| if f.lower().endswith(('.mp3', '.wav', '.ogg')): | |||
| track_files.append(f) | |||
| print(f) | |||
| # td = TracksDir(trackFiles) | |||
| # f = open(output_directory + "/index.html", "w+") | |||
| # f.write(td.to_html()) | |||
| # f.close() | |||
| my_template = Template(filename='template.html') | |||
| f = open(output_directory + "/index.html", "w+") | |||
| # Write template data to the file created | |||
| f.write(my_template.render( | |||
| title=title, | |||
| tracks=track_files, | |||
| albums_section=data['albums_section'])) | |||
| # Close file | |||
| f.close() | |||