Fix logic for checking metadata of temporary movie before copying over source file
This commit is contained in:
parent
8221e3c020
commit
88ce6627d4
|
@ -195,6 +195,24 @@ class Video(Media):
|
||||||
result = self.__update_using_plist(latitude=latitude, longitude=longitude)
|
result = self.__update_using_plist(latitude=latitude, longitude=longitude)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
|
Updates video metadata using avmetareadwrite.
|
||||||
|
This method is a does a lot more than it should.
|
||||||
|
The general steps are...
|
||||||
|
1) Check if avmetareadwrite is installed
|
||||||
|
2) Export a plist file to a temporary location from the source file
|
||||||
|
3) Regex replace values in the plist file
|
||||||
|
4) Update the source file using the updated plist and save it to a temporary location
|
||||||
|
5) Validate that the metadata in the updated temorary movie is valid
|
||||||
|
6) Copystat permission and time bits from the source file to the temporary movie
|
||||||
|
7) Move the temporary file to overwrite the source file
|
||||||
|
|
||||||
|
@param, latitude, float, Latitude of the file
|
||||||
|
@param, longitude, float, Longitude of the file
|
||||||
|
|
||||||
|
@returns, boolean
|
||||||
|
"""
|
||||||
def __update_using_plist(self, **kwargs):
|
def __update_using_plist(self, **kwargs):
|
||||||
if('latitude' not in kwargs and 'longitude' not in kwargs):
|
if('latitude' not in kwargs and 'longitude' not in kwargs):
|
||||||
print 'No lat/lon passed into __create_plist'
|
print 'No lat/lon passed into __create_plist'
|
||||||
|
@ -258,9 +276,10 @@ class Video(Media):
|
||||||
|
|
||||||
# We create a temporary file to save the modified file to.
|
# We create a temporary file to save the modified file to.
|
||||||
# If the modification is successful we will update the existing file.
|
# If the modification is successful we will update the existing file.
|
||||||
|
metadata = self.get_metadata()
|
||||||
temp_movie = None
|
temp_movie = None
|
||||||
with tempfile.NamedTemporaryFile() as temp_file:
|
with tempfile.NamedTemporaryFile() as temp_file:
|
||||||
temp_movie = temp_file.name
|
temp_movie = '%s.%s' % (temp_file.name, metadata['extension'])
|
||||||
|
|
||||||
# We need to block until the child process completes.
|
# We need to block until the child process completes.
|
||||||
# http://stackoverflow.com/a/5631819/1318758
|
# http://stackoverflow.com/a/5631819/1318758
|
||||||
|
@ -273,8 +292,9 @@ class Video(Media):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
# Before we do anything destructive we confirm that the file is in tact.
|
# Before we do anything destructive we confirm that the file is in tact.
|
||||||
metadata = self.get_metadata()
|
check_media = Video(temp_movie)
|
||||||
if(metadata['latitude'] is None or metadata['longitude'] is None or metadata['date_taken'] is None):
|
check_metadata = check_media.get_metadata()
|
||||||
|
if(check_metadata['latitude'] is None or check_metadata['longitude'] is None or check_metadata['date_taken'] is None):
|
||||||
print 'Something went wrong updating video metadata'
|
print 'Something went wrong updating video metadata'
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue