Skip to content

Commit

Permalink
Merge pull request #527 from aleksandr-kotlyar/gh_362
Browse files Browse the repository at this point in the history
gh #362 Add handling Content-Disposition `filename*=%encoding%''%file%` in File
  • Loading branch information
aleksandr-kotlyar authored Jul 7, 2023
2 parents 9c0b218 + 72d93bd commit f3af8a5
Showing 1 changed file with 7 additions and 6 deletions.
13 changes: 7 additions & 6 deletions webdriver_manager/core/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,24 +8,25 @@
from tqdm import tqdm

from webdriver_manager.core.archive import Archive
from webdriver_manager.core.logger import log


class File(object):
def __init__(self, stream):
self.content = stream.content
self.__stream = stream
self.__temp_name = "driver"

self.__regex_filename = r"""filename.+"(.+)"|filename.+''(.+)"""
@property
def filename(self) -> str:
try:
filename = re.findall(
"filename=(.+)", self.__stream.headers["content-disposition"]
)[0]
# filename = re.findall('filename.*"(.+)"', self.__stream.headers["content-disposition"])[0] # TODO delete this commented code after testing new block
content = self.__stream.headers["content-disposition"]
content_disposition_list = re.split(";", content)
filenames = [re.findall(self.__regex_filename, element) for element in content_disposition_list]
filename = next(filter(None, next(filter(None, next(filter(None, filenames)))))) # type: ignore
except KeyError:
filename = f"{self.__temp_name}.zip"
except IndexError:
except (IndexError, StopIteration):
filename = f"{self.__temp_name}.exe"

if '"' in filename:
Expand Down

0 comments on commit f3af8a5

Please sign in to comment.