mirror of https://github.com/caronc/apprise
Auto-Delete functionality added to attachments
parent
8bff103176
commit
89509f7e65
|
@ -100,7 +100,8 @@ class AttachBase(URLBase):
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
def __init__(self, name=None, mimetype=None, cache=None, **kwargs):
|
def __init__(self, name=None, mimetype=None, cache=None,
|
||||||
|
auto_delete=False, **kwargs):
|
||||||
"""
|
"""
|
||||||
Initialize some general logging and common server arguments that will
|
Initialize some general logging and common server arguments that will
|
||||||
keep things consistent when working with the configurations that
|
keep things consistent when working with the configurations that
|
||||||
|
@ -122,6 +123,10 @@ class AttachBase(URLBase):
|
||||||
You can alternatively set the cache value to an int identifying the
|
You can alternatively set the cache value to an int identifying the
|
||||||
number of seconds the previously retrieved can exist for before it
|
number of seconds the previously retrieved can exist for before it
|
||||||
should be considered expired.
|
should be considered expired.
|
||||||
|
|
||||||
|
Set auto_delete to True if you wish the file to remove itself when
|
||||||
|
this object goes out of memory. This is more useful for remote
|
||||||
|
retrieval and should not be used for local file reference.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
super().__init__(**kwargs)
|
super().__init__(**kwargs)
|
||||||
|
@ -137,6 +142,9 @@ class AttachBase(URLBase):
|
||||||
# otherwise specified.
|
# otherwise specified.
|
||||||
self._mimetype = mimetype
|
self._mimetype = mimetype
|
||||||
|
|
||||||
|
# Set auto delete flag
|
||||||
|
self._auto_delete = auto_delete
|
||||||
|
|
||||||
# The detected_mimetype, this is only used as a fallback if the
|
# The detected_mimetype, this is only used as a fallback if the
|
||||||
# mimetype wasn't forced by the user
|
# mimetype wasn't forced by the user
|
||||||
self.detected_mimetype = None
|
self.detected_mimetype = None
|
||||||
|
@ -295,9 +303,22 @@ class AttachBase(URLBase):
|
||||||
- download_path: Must contain a absolute path to content
|
- download_path: Must contain a absolute path to content
|
||||||
- detected_mimetype: Should identify mimetype of content
|
- detected_mimetype: Should identify mimetype of content
|
||||||
"""
|
"""
|
||||||
|
if self._auto_delete and self.download_path:
|
||||||
|
try:
|
||||||
|
os.remove(self.download_path)
|
||||||
|
self.logger.debug(
|
||||||
|
'Removed temporary file: %s%s',
|
||||||
|
f':{self._name} - ' if self.__name else '',
|
||||||
|
self.download_path)
|
||||||
|
|
||||||
|
except FileNotFoundError:
|
||||||
|
# no problem
|
||||||
|
pass
|
||||||
|
|
||||||
self.detected_name = None
|
self.detected_name = None
|
||||||
self.download_path = None
|
self.download_path = None
|
||||||
self.detected_mimetype = None
|
self.detected_mimetype = None
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
def download(self):
|
def download(self):
|
||||||
|
@ -362,6 +383,12 @@ class AttachBase(URLBase):
|
||||||
|
|
||||||
return results
|
return results
|
||||||
|
|
||||||
|
def __del__(self):
|
||||||
|
"""
|
||||||
|
De-Construtor is used to tidy up files during garbage collection
|
||||||
|
"""
|
||||||
|
self.invalidate()
|
||||||
|
|
||||||
def __len__(self):
|
def __len__(self):
|
||||||
"""
|
"""
|
||||||
Returns the filesize of the attachment.
|
Returns the filesize of the attachment.
|
||||||
|
|
Loading…
Reference in New Issue