mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2025-08-02 11:10:18 +03:00
applied suggestions
This commit is contained in:
parent
f21a76ebce
commit
0acb67fa3e
|
@ -601,27 +601,39 @@ def get_message_id(message):
|
||||||
|
|
||||||
|
|
||||||
def _get_metadata(file):
|
def _get_metadata(file):
|
||||||
|
if not hachoir:
|
||||||
|
return
|
||||||
|
|
||||||
|
stream = None
|
||||||
|
close_stream = True
|
||||||
|
|
||||||
# The parser may fail and we don't want to crash if
|
# The parser may fail and we don't want to crash if
|
||||||
# the extraction process fails.
|
# the extraction process fails.
|
||||||
if hachoir:
|
|
||||||
try:
|
try:
|
||||||
original_filetype = type(file)
|
if isinstance(file, str):
|
||||||
file = io.BytesIO(file) if isinstance(file, bytes) else file
|
stream = open(file, 'rb')
|
||||||
file = open(file, 'rb') if isinstance(file, str) else file
|
elif isinstance(file, bytes):
|
||||||
|
stream = io.BytesIO(file)
|
||||||
|
else:
|
||||||
|
stream = file
|
||||||
|
close_stream = False
|
||||||
|
|
||||||
filename = getattr(file, 'name', '')
|
filename = getattr(file, 'name', '')
|
||||||
stream = hachoir.stream.InputIOStream(file,
|
parser = hachoir.parser.guess.guessParser(hachoir.stream.InputIOStream(
|
||||||
|
stream,
|
||||||
source='file:' + filename,
|
source='file:' + filename,
|
||||||
tags=[],
|
tags=[],
|
||||||
filename=filename)
|
filename=filename
|
||||||
parser = hachoir.parser.guess.guessParser(stream)
|
))
|
||||||
metadata = hachoir.metadata.extractMetadata(parser)
|
return hachoir.metadata.extractMetadata(parser)
|
||||||
if original_filetype is str:
|
|
||||||
file.close()
|
|
||||||
return metadata
|
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
_log.warning('Failed to analyze %s: %s %s', file, e.__class__, e)
|
_log.warning('Failed to analyze %s: %s %s', file, e.__class__, e)
|
||||||
|
|
||||||
|
finally:
|
||||||
|
if stream and close_stream:
|
||||||
|
stream.close()
|
||||||
|
|
||||||
|
|
||||||
def get_attributes(file, *, attributes=None, mime_type=None,
|
def get_attributes(file, *, attributes=None, mime_type=None,
|
||||||
force_document=False, voice_note=False, video_note=False,
|
force_document=False, voice_note=False, video_note=False,
|
||||||
|
|
Loading…
Reference in New Issue
Block a user