Recalculate mimetype after file rename, relocate.
This commit is contained in:
parent
4bf5b6d824
commit
27771f5763
1 changed files with 18 additions and 5 deletions
|
@ -806,11 +806,7 @@ class Photo(ObjectBase):
|
||||||
self.tagged_at = db_row['tagged_at']
|
self.tagged_at = db_row['tagged_at']
|
||||||
self.searchhidden = db_row['searchhidden']
|
self.searchhidden = db_row['searchhidden']
|
||||||
|
|
||||||
self.mimetype = helpers.get_mimetype(self.real_path.basename)
|
self._assign_mimetype()
|
||||||
if self.mimetype is None:
|
|
||||||
self.simple_mimetype = None
|
|
||||||
else:
|
|
||||||
self.simple_mimetype = self.mimetype.split('/')[0]
|
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return f'Photo:{self.id}'
|
return f'Photo:{self.id}'
|
||||||
|
@ -840,6 +836,21 @@ class Photo(ObjectBase):
|
||||||
|
|
||||||
return cleaned
|
return cleaned
|
||||||
|
|
||||||
|
def _assign_mimetype(self):
|
||||||
|
# This function is defined separately because it is a derivative
|
||||||
|
# property of the file's basename and needs to be recalculated after
|
||||||
|
# file renames. However, I decided not to write it as a @property
|
||||||
|
# because that would require either wasted computation or using private
|
||||||
|
# self._mimetype vars to help memoize, which needs to be None-capable.
|
||||||
|
# So although I normally like using @property, this is less lines of
|
||||||
|
# code and less indirection really.
|
||||||
|
self.mimetype = helpers.get_mimetype(self.real_path.basename)
|
||||||
|
|
||||||
|
if self.mimetype is None:
|
||||||
|
self.simple_mimetype = None
|
||||||
|
else:
|
||||||
|
self.simple_mimetype = self.mimetype.split('/')[0]
|
||||||
|
|
||||||
def _uncache(self):
|
def _uncache(self):
|
||||||
self.photodb.caches['photo'].remove(self.id)
|
self.photodb.caches['photo'].remove(self.id)
|
||||||
|
|
||||||
|
@ -1227,6 +1238,7 @@ class Photo(ObjectBase):
|
||||||
}
|
}
|
||||||
self.photodb.sql_update(table='photos', pairs=data, where_key='id')
|
self.photodb.sql_update(table='photos', pairs=data, where_key='id')
|
||||||
self.real_path = new_filepath
|
self.real_path = new_filepath
|
||||||
|
self._assign_mimetype()
|
||||||
self._uncache()
|
self._uncache()
|
||||||
|
|
||||||
@decorators.required_feature('photo.add_remove_tag')
|
@decorators.required_feature('photo.add_remove_tag')
|
||||||
|
@ -1317,6 +1329,7 @@ class Photo(ObjectBase):
|
||||||
}
|
}
|
||||||
self.photodb.sql_update(table='photos', pairs=data, where_key='id')
|
self.photodb.sql_update(table='photos', pairs=data, where_key='id')
|
||||||
self.real_path = new_path
|
self.real_path = new_path
|
||||||
|
self._assign_mimetype()
|
||||||
|
|
||||||
if new_path.normcase == old_path.normcase:
|
if new_path.normcase == old_path.normcase:
|
||||||
# If they are equivalent but differently cased, just rename.
|
# If they are equivalent but differently cased, just rename.
|
||||||
|
|
Loading…
Reference in a new issue