This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Utility functions for ParentZone Downloader
|
||||
|
||||
This module contains shared utility functions used across multiple modules.
|
||||
"""
|
||||
|
||||
|
||||
def sanitize_filename(filename: str) -> str:
|
||||
"""
|
||||
Sanitize filename by removing invalid characters.
|
||||
|
||||
Args:
|
||||
filename: The filename to sanitize
|
||||
|
||||
Returns:
|
||||
Sanitized filename safe for filesystem use
|
||||
"""
|
||||
# Remove or replace invalid characters
|
||||
invalid_chars = '<>:"/\\|?*'
|
||||
for char in invalid_chars:
|
||||
filename = filename.replace(char, "_")
|
||||
|
||||
# Remove leading/trailing spaces and dots
|
||||
filename = filename.strip(". ")
|
||||
|
||||
# Ensure filename is not empty
|
||||
if not filename:
|
||||
filename = "file"
|
||||
|
||||
return filename
|
||||
|
||||
|
||||
def get_extension_from_mime(mime_type: str) -> str:
|
||||
"""
|
||||
Get file extension from MIME type.
|
||||
|
||||
Args:
|
||||
mime_type: The MIME type string (e.g., 'image/jpeg')
|
||||
|
||||
Returns:
|
||||
File extension including the dot (e.g., '.jpg')
|
||||
"""
|
||||
mime_to_ext = {
|
||||
"image/jpeg": ".jpg",
|
||||
"image/jpg": ".jpg",
|
||||
"image/png": ".png",
|
||||
"image/gif": ".gif",
|
||||
"image/webp": ".webp",
|
||||
"image/bmp": ".bmp",
|
||||
"image/tiff": ".tiff",
|
||||
"image/svg+xml": ".svg",
|
||||
}
|
||||
return mime_to_ext.get(mime_type.lower(), ".jpg")
|
||||
|
||||
Reference in New Issue
Block a user