|
- 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()
|