Commit b6476db

benny-dou <60535774+benny-dou@users.noreply.github.com>
2025-05-15 03:34:58
fix(thumbnail): force thumb to JPG format
1 parent 8160091
Changed files (2)
src/others/download_external.py
@@ -65,7 +65,7 @@ async def download_url_in_message(client: Client, message: Message, **kwargs):
         if Path(path).suffix != suffix:
             Path(path).rename(Path(path).with_suffix(suffix))
             path = Path(path).with_suffix(suffix)
-        if img := validate_img(path, delete=False):
+        if img := validate_img(path, force_jpg=False, delete=False):
             await modify_progress(text=f"πŸžε›Ύη‰‡δΈ‹θ½½ζˆεŠŸ: {readable_size(path=img)}", force_update=True, **kwargs)
             success = await send2tg(client, message, target_chat, reply_msg_id, texts=url, media=[{"photo": img}])
         elif Path(path).suffix in [".m4a", ".mp3", ".wav", ".ogg", ".opus", ".flac", ".aac"]:
src/multimedia.py
@@ -275,7 +275,7 @@ def generate_cover(path: Path | str) -> str:
     for ext in [".webp", ".png", ".heic", ".bmp"]:
         cover_path = Path(path).with_suffix(ext)
         if cover_path.is_file():
-            converted = convert_img_to_telegram_format(cover_path, force_jpg=True)
+            converted = convert_img_to_telegram_format(cover_path)
             logger.debug(f"Converted cover image: {cover_path.name} -> {converted.name}")
             return converted.as_posix()
 
@@ -336,7 +336,7 @@ def convert_jpg_via_ffmpeg(path: str | Path | None, *, delete: bool = True) -> t
     return True, save_path
 
 
-def convert_img_to_telegram_format(path: str | Path | None, *, force_jpg: bool = False, delete: bool = True) -> Path:
+def convert_img_to_telegram_format(path: str | Path | None, *, force_jpg: bool = True, delete: bool = True) -> Path:
     if path is None or not Path(path).expanduser().resolve().is_file():
         return Path("")
     path = Path(path).expanduser().resolve()
@@ -403,7 +403,7 @@ def convert_img_match_telegram_rules(path: str | Path, num_bytes: int = 10485760
     return convert_img_match_telegram_rules(save_path, num_bytes, wh_total, max_ratio, delete=delete)
 
 
-def validate_img(path: str | Path | None, *, delete: bool = True) -> str:
+def validate_img(path: str | Path | None, *, force_jpg: bool = True, delete: bool = True) -> str:
     """Check if the image is valid.
 
     0. format must be in ["heic", "jpg", "jpeg", "png", "webp"]
@@ -421,7 +421,7 @@ def validate_img(path: str | Path | None, *, delete: bool = True) -> str:
     if path.suffix.lower() not in [".heic", ".jpg", ".jpeg", ".png", ".webp", ".bmp", ".gif"]:
         logger.warning(f"Invalid image format: {path.name}")
         return ""
-    path = convert_img_to_telegram_format(path, delete=delete)
+    path = convert_img_to_telegram_format(path, force_jpg=force_jpg, delete=delete)
 
     if not path.is_file():
         logger.warning(f"Invalid image: {path}")