|
@@ -40,13 +40,10 @@ class Project(ObservableDict):
|
|
|
# save data as MediaFile objects
|
|
|
if obj['unmanaged'] is None:
|
|
|
for key in obj['data'].keys():
|
|
|
- obj['data'][key] = self.create_media_file(obj['data'][key])
|
|
|
-
|
|
|
- # initialize super
|
|
|
- super().__init__(obj, parent)
|
|
|
+ obj['data'][key] = self.create_media_file(obj['data'][key], project=obj)
|
|
|
|
|
|
# handle unmanaged files
|
|
|
- if obj['unmanaged'] is not None:
|
|
|
+ else:
|
|
|
prev = None
|
|
|
for file in listdir(obj['unmanaged']):
|
|
|
uuid, ext = splitext(file)
|
|
@@ -55,7 +52,7 @@ class Project(ObservableDict):
|
|
|
'id': uuid,
|
|
|
'extension': ext
|
|
|
}
|
|
|
- next = self.create_media_file(next, unmanaged=True)
|
|
|
+ next = self.create_media_file(next, project=obj)
|
|
|
|
|
|
if prev is not None:
|
|
|
next.prev(prev)
|
|
@@ -70,6 +67,9 @@ class Project(ObservableDict):
|
|
|
for key in self.unmanaged_files:
|
|
|
self.unmanaged_files[key].length(length)
|
|
|
|
|
|
+ # initialize super
|
|
|
+ super().__init__(obj, parent)
|
|
|
+
|
|
|
# create data and temp
|
|
|
data_path = path.join('projects', self['id'], 'data')
|
|
|
if not path.exists(data_path):
|
|
@@ -100,20 +100,20 @@ class Project(ObservableDict):
|
|
|
def new_media_file_path(self):
|
|
|
return path.join('projects', self['id'], 'data'), str(uuid1())
|
|
|
|
|
|
- def create_media_file(self, file, unmanaged=False):
|
|
|
- # TODO check file extension
|
|
|
- # TODO determine type
|
|
|
- # TODO filter supported types
|
|
|
+ def create_media_file(self, file, project=None):
|
|
|
+ if project is None:
|
|
|
+ project = self
|
|
|
+
|
|
|
if file['extension'] in ['.jpg', '.png']:
|
|
|
- if unmanaged:
|
|
|
- return UnmanagedImageFile(file, self)
|
|
|
+ if project['unmanaged']:
|
|
|
+ return UnmanagedImageFile(file, project)
|
|
|
else:
|
|
|
- return ImageFile(file, self)
|
|
|
+ return ImageFile(file, project)
|
|
|
if file['extension'] in ['.mp4']:
|
|
|
- if unmanaged:
|
|
|
- return UnmanagedVideoFile(file, self)
|
|
|
+ if project['unmanaged']:
|
|
|
+ return UnmanagedVideoFile(file, project)
|
|
|
else:
|
|
|
- return VideoFile(file, self)
|
|
|
+ return VideoFile(file, project)
|
|
|
|
|
|
raise NotImplementedError
|
|
|
|