mirror of https://gitlab.com/litecord/litecord.git
images: clean temporary files on gif processing
This commit is contained in:
parent
d2bedb75a4
commit
6c9d1559f1
|
|
@ -168,6 +168,13 @@ def _invalid(kwargs: dict):
|
||||||
return Icon(None, None, '')
|
return Icon(None, None, '')
|
||||||
|
|
||||||
|
|
||||||
|
def _try_unlink(path: str):
|
||||||
|
try:
|
||||||
|
os.remove(path)
|
||||||
|
except FileNotFoundError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
class IconManager:
|
class IconManager:
|
||||||
"""Main icon manager."""
|
"""Main icon manager."""
|
||||||
def __init__(self, app):
|
def __init__(self, app):
|
||||||
|
|
@ -249,7 +256,9 @@ class IconManager:
|
||||||
image.size, target)
|
image.size, target)
|
||||||
|
|
||||||
# insert image info on input_handler
|
# insert image info on input_handler
|
||||||
|
# close it to make it ready for consumption by gifsicle
|
||||||
input_handler.write(raw_data)
|
input_handler.write(raw_data)
|
||||||
|
input_handler.close()
|
||||||
|
|
||||||
# call gifsicle under subprocess
|
# call gifsicle under subprocess
|
||||||
log.debug('input: {}', input_path)
|
log.debug('input: {}', input_path)
|
||||||
|
|
@ -270,6 +279,13 @@ class IconManager:
|
||||||
output_handler = open(output_path, 'rb')
|
output_handler = open(output_path, 'rb')
|
||||||
data_fd.write(output_handler.read())
|
data_fd.write(output_handler.read())
|
||||||
|
|
||||||
|
# close unused handlers
|
||||||
|
output_handler.close()
|
||||||
|
|
||||||
|
# delete the files we created with mkstemp
|
||||||
|
_try_unlink(input_path)
|
||||||
|
_try_unlink(output_path)
|
||||||
|
|
||||||
# reseek, save to raw_data, reseek again.
|
# reseek, save to raw_data, reseek again.
|
||||||
# TODO: remove raw_data altogether as its inefficient
|
# TODO: remove raw_data altogether as its inefficient
|
||||||
# to have two representations of the same bytes
|
# to have two representations of the same bytes
|
||||||
|
|
@ -277,6 +293,7 @@ class IconManager:
|
||||||
raw_data = data_fd.read()
|
raw_data = data_fd.read()
|
||||||
data_fd.seek(0)
|
data_fd.seek(0)
|
||||||
|
|
||||||
|
|
||||||
return data_fd, raw_data
|
return data_fd, raw_data
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue