Skip to content

Commit

Permalink
Merge pull request #19898 from Ultimaker/CURA-12282-url-schemes-df
Browse files Browse the repository at this point in the history
Make urls schemes more robust against changes
  • Loading branch information
HellAholic authored Nov 15, 2024
2 parents 671247c + 7507eba commit f60090d
Showing 1 changed file with 7 additions and 10 deletions.
17 changes: 7 additions & 10 deletions cura/CuraApplication.py
Original file line number Diff line number Diff line change
Expand Up @@ -1895,23 +1895,20 @@ def _openUrl(self, url: QUrl) -> None:
def on_finish(response):
content_disposition_header_key = QByteArray("content-disposition".encode())

if not response.hasRawHeader(content_disposition_header_key):
Logger.log("w", "Could not find Content-Disposition header in response from {0}".format(
model_url.url()))
# Use the last part of the url as the filename, and assume it is an STL file
filename = model_url.path().split("/")[-1] + ".stl"
else:
filename = model_url.path().split("/")[-1] + ".stl"

if response.hasRawHeader(content_disposition_header_key):
# content_disposition is in the format
# ```
# content_disposition attachment; "filename=[FILENAME]"
# content_disposition attachment; filename="[FILENAME]"
# ```
# Use a regex to extract the filename
content_disposition = str(response.rawHeader(content_disposition_header_key).data(),
encoding='utf-8')
content_disposition_match = re.match(r'attachment; filename="(?P<filename>.*)"',
content_disposition_match = re.match(r'attachment; filename=(?P<filename>.*)',
content_disposition)
assert content_disposition_match is not None
filename = content_disposition_match.group("filename")
if content_disposition_match is not None:
filename = content_disposition_match.group("filename").strip("\"")

tmp = tempfile.NamedTemporaryFile(suffix=filename, delete=False)
with open(tmp.name, "wb") as f:
Expand Down

0 comments on commit f60090d

Please sign in to comment.