尽量保留原始扩展名,未知时回退到默认值。
(self, url: str, media_type: str)
| 88 | return None |
| 89 | |
| 90 | def _guess_extension(self, url: str, media_type: str) -> str: |
| 91 | """尽量保留原始扩展名,未知时回退到默认值。""" |
| 92 | path = urlparse(url).path or "" |
| 93 | guessed, _ = mimetypes.guess_type(path) |
| 94 | suffix = Path(path).suffix.lower() |
| 95 | |
| 96 | if media_type == "video": |
| 97 | if suffix in {".mp4", ".mov", ".webm", ".mkv", ".m4v"}: |
| 98 | return suffix |
| 99 | if guessed == "video/webm": |
| 100 | return ".webm" |
| 101 | if guessed == "video/quicktime": |
| 102 | return ".mov" |
| 103 | return ".mp4" |
| 104 | |
| 105 | if media_type == "image": |
| 106 | if suffix in {".png", ".jpg", ".jpeg", ".webp", ".gif", ".avif", ".bmp"}: |
| 107 | return suffix |
| 108 | if guessed == "image/png": |
| 109 | return ".png" |
| 110 | if guessed == "image/webp": |
| 111 | return ".webp" |
| 112 | if guessed == "image/gif": |
| 113 | return ".gif" |
| 114 | if guessed == "image/avif": |
| 115 | return ".avif" |
| 116 | if guessed == "image/bmp": |
| 117 | return ".bmp" |
| 118 | return ".jpg" |
| 119 | |
| 120 | return suffix |
| 121 | |
| 122 | def _build_download_headers( |
| 123 | self, |
no outgoing calls
no test coverage detected