Skip to content

Commit

Permalink
move created images to resources folder
Browse files Browse the repository at this point in the history
  • Loading branch information
willm committed Jan 4, 2014
1 parent b35f2bd commit 43f0968
Show file tree
Hide file tree
Showing 6 changed files with 34 additions and 32 deletions.
6 changes: 3 additions & 3 deletions batch_generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
from DDEXUI.ddex.ddex import generate_batch_id

class BatchGenerator:
def __init__(self, root_folder, id_genereator=generate_batch_id):
self._id_generator = id_genereator
def __init__(self, root_folder, batch_id):
self._batch_id = batch_id
self._root_folder = root_folder

def generate(self, builders):
batch_path = path.join(self._root_folder, self._id_generator())
batch_path = path.join(self._root_folder, self._batch_id)
for builder in builders:
ddex = builder.build()
product_path = path.join(batch_path, builder.get_upc())
Expand Down
2 changes: 1 addition & 1 deletion ddex/tests/test_batch_generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ def test_should_generate_a_batch_containing_each_product(self):
root_folder = gettempdir()
expected_batch_path = path.join(root_folder, static_batch_id)
rmtree(expected_batch_path, ignore_errors=True)
subject = BatchGenerator(root_folder, lambda: static_batch_id)
subject = BatchGenerator(root_folder, static_batch_id)
builders = [
data.valid_ddex_builder(),
data.valid_ddex_builder()
Expand Down
12 changes: 6 additions & 6 deletions ddex/tests/test_resource_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@ def setUpClass(self):

self.expected = SoundRecording('',self.isrc, self.title, FileParser().parse(file_path), '')

self.subject = ResourceManager(FileParser(), self.batch_id, self.upc, self.root_folder)
self.subject = ResourceManager(FileParser(), self.batch_id, self.root_folder)

self.resource = self.subject.add_sound_recording(file_path, self.isrc, self.title)
self.resource = self.subject.add_sound_recording(self.upc, file_path, self.isrc, self.title)

def test_should_copy_file_to_product_resources_folder(self):
expected_path = path.join(self.root_folder, self.batch_id, self.upc, 'resources', self.isrc+'.mp3')
Expand All @@ -47,13 +47,13 @@ def setUpClass(self):
self.root_folder = gettempdir()
self.batch_id = str(uuid.uuid4())
self.title = "the title"
file_path = path.join('ddex','tests','resources','test.jpg')
file_path = path.join('ddex', 'tests', 'resources', 'test.jpg')

self.expected = Image('',self.upc, FileParser().parse(file_path), '')
self.expected = Image('', self.upc, FileParser().parse(file_path), '')

self.subject = ResourceManager(FileParser(), self.batch_id, self.upc, self.root_folder)
self.subject = ResourceManager(FileParser(), self.batch_id, self.root_folder)

self.resource = self.subject.add_image(file_path)
self.resource = self.subject.add_image(self.upc, file_path)

def test_should_copy_file_to_product_resources_folder(self):
expected_path = path.join(self.root_folder, self.batch_id, self.upc, 'resources', self.upc+'.jpg')
Expand Down
6 changes: 4 additions & 2 deletions metadata_form.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,9 +47,11 @@ def __init__(self):
self.frame.tk.call("wm", "iconphoto", self.frame._w, icon)
self.frame.title("Metadata Editor")
self.product_list = tk.tkinter.Listbox(self.frame)
self._root_folder = "out"
self.add_release_button = tk.Button(self.frame, text="Add Product", command=self.create_ddex)
self.button = tk.Button(self.frame, text="OK", command=self.write_ddex)
self._batch_generator = BatchGenerator("out", generate_batch_id)
self._batch_id = generate_batch_id()
self._batch_generator = BatchGenerator(self._root_folder, self._batch_id)

@showerrorbox
def write_ddex(self):
Expand All @@ -64,7 +66,7 @@ def write_ddex(self):

@showerrorbox
def create_ddex(self):
release_window = ProductReleaseWindow(self.frame)
release_window = ProductReleaseWindow(self.frame, self._root_folder, self._batch_id)
release_window.wait_window()
ddex_builder = release_window.create_ddex()
self._ddex_builders.append(ddex_builder)
Expand Down
21 changes: 11 additions & 10 deletions release_window.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
from DDEXUI.deal_window import DealWindow
from DDEXUI.file_parser import FileParser
from DDEXUI.tkinterutil import showerrorbox
from DDEXUI.resource_manager import ResourceManager

class ReleaseWindow(tk.tkinter.Toplevel):
def __init__(self, frame):
Expand All @@ -35,12 +36,13 @@ def create_deal(self):
self._release_builder.add_deal(deal)

class ProductReleaseWindow(ReleaseWindow):
def __init__(self, frame):
def __init__(self, frame, root_folder, batch_id):
ReleaseWindow.__init__(self, frame)
self.ddex_builder = DDEXBuilder()
self._release_builder = ReleaseBuilder()
self.tracks = []
self.image = None
self.image_path = None
self._resource_mangager = ResourceManager(FileParser(), batch_id, root_folder)
self.fields.append(EntryInput(self, "UPC", Validate().upc))
self.is_update_check_box = CheckboxInput(self, "Is Update")
self.fields.append(self.is_update_check_box)
Expand All @@ -57,9 +59,7 @@ def __init__(self, frame):
@showerrorbox
def add_image(self):
file_dialog = LoadFileDialog(self)
img_file = file_dialog.go(pattern="*.jpg")
file_metadata = FileParser().parse(img_file)
self.image = Image('A1', 'xx', file_metadata, "T1")
self.image_path = file_dialog.go(pattern="*.jpg")

def draw_tracks(self):
for track in self.tracks:
Expand All @@ -79,14 +79,15 @@ def create_ddex(self):
.p_line(self.value_of("P Line"))
.year(self.value_of("Year"))
.reference("R0")
.release_id(ReleaseIdType.Upc,self.value_of("UPC"))
.release_id(ReleaseIdType.Upc, self.value_of("UPC"))
.release_type(self.value_of("Type"))
.artist(self.value_of("Artist"))
.label(self.value_of("Label"))
.parental_warning(self.value_of("Explicit")))
if(self.image != None):
product_release.add_resource(self.image.resource_reference())
self.ddex_builder.add_resource(self.image)
if(self.image_path != None):
image = self._resource_mangager.add_image(self.value_of("UPC"), self.image_path)
product_release.add_resource(image.resource_reference())
self.ddex_builder.add_resource(image)
product_release = product_release.build()
self.ddex_builder.update(self.is_update_check_box.value())
self.ddex_builder.add_release(product_release)
Expand All @@ -105,7 +106,7 @@ def create_track(self):
def all_release_fields_valid(self):
all_valid = True
if(self.is_update_check_box.value() != True):
all_valid = self.image != None
all_valid = self.image_path != None

for row in self.fields:
all_valid = all_valid and row.on_validate()
Expand Down
19 changes: 9 additions & 10 deletions resource_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,24 +4,23 @@
from DDEXUI.ddex.resource import SoundRecording, Image

class ResourceManager:
def __init__(self, file_parser ,batch_id, upc, root_folder='.'):
def __init__(self, file_parser ,batch_id, root_folder='.'):
self._batch_id = batch_id
self._root_folder = root_folder
self._upc = upc
self._file_parser = file_parser

def add_sound_recording(self, file_path, isrc, title):
def add_sound_recording(self, upc, file_path, isrc, title):
file_name = self.__file_name_from(isrc, file_path)
moved_file_path = self.__copy_file(file_path, file_name)
moved_file_path = self.__copy_file(upc, file_path, file_name)
return SoundRecording('', isrc, title, self._file_parser.parse(moved_file_path), '')

def add_image(self, file_path):
file_name = self.__file_name_from(self._upc, file_path)
moved_file_path = self.__copy_file(file_path, file_name)
return Image('', self._upc, self._file_parser.parse(moved_file_path), '')
def add_image(self, upc, file_path):
file_name = self.__file_name_from(upc, file_path)
moved_file_path = self.__copy_file(upc, file_path, file_name)
return Image('', upc, self._file_parser.parse(moved_file_path), '')

def __copy_file(self, src_file_path, dst_file_name):
resources_directory = path.join(self._root_folder, self._batch_id, self._upc, 'resources')
def __copy_file(self, upc, src_file_path, dst_file_name):
resources_directory = path.join(self._root_folder, self._batch_id, upc, 'resources')
moved_file_path = path.join(resources_directory, dst_file_name)
if(not path.isdir(resources_directory)):
makedirs(resources_directory)
Expand Down

0 comments on commit 43f0968

Please sign in to comment.