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