Browse Source

Make url schemes more robust against alternate formats

CURA-12282
c.lamboo 4 months ago
parent
commit
38b496102f
1 changed files with 7 additions and 10 deletions
  1. 7 10
      cura/CuraApplication.py

+ 7 - 10
cura/CuraApplication.py

@@ -1895,23 +1895,20 @@ class CuraApplication(QtApplication):
                 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")
 
                     tmp = tempfile.NamedTemporaryFile(suffix=filename, delete=False)
                     with open(tmp.name, "wb") as f: