Commit 3141671

benny-dou <60535774+benny-dou@users.noreply.github.com>
2025-09-30 04:10:02
fix(douyin): use unique filenames for downloads to avoid conflicts
1 parent a3bfbcc
Changed files (1)
src
preview
src/preview/douyin.py
@@ -15,7 +15,7 @@ from pyrogram.parser.markdown import BLOCKQUOTE_EXPANDABLE_DELIM
 from pyrogram.types import Message
 
 from bridge.social import send_to_social_media_bridge
-from config import API, DB, PROVIDER, PROXY, TOKEN, TZ
+from config import API, DB, DOWNLOAD_DIR, PROVIDER, PROXY, TOKEN, TZ
 from database.database import get_db
 from messages.database import copy_messages_from_db, save_messages
 from messages.progress import modify_progress
@@ -23,7 +23,7 @@ from messages.sender import send2tg
 from messages.utils import summay_media
 from networking import download_file, download_first_success_urls, download_media, hx_req
 from others.emoji import emojify
-from utils import readable_count, true
+from utils import rand_number, readable_count, true
 
 
 async def preview_douyin(
@@ -132,9 +132,9 @@ async def parse_via_direct(url: str = "", platform: str = "douyin", proxy: str |
             if int(info.get("aweme_type", 4)) != 4:  # image post
                 media = [{"photo": download_first_success_urls(prefer_jpg_urls(x.get("url_list")), proxy=proxy)} for x in info.get("images", [])]
             elif platform == "douyin" and (video_url := glom(info, "video.play_addr.url_list.0", default="").replace("playwm", "play")):  # noqa: SIM114
-                media = [{"video": download_file(video_url, suffix=".mp4", proxy=proxy, stream=True)}]
+                media = [{"video": download_file(video_url, path=Path(DOWNLOAD_DIR).joinpath(f"{rand_number()}.mp4"), proxy=proxy, stream=True)}]
             elif platform == "tiktok" and (video_url := glom(info, "video.playAddr", default="")):
-                media = [{"video": download_file(video_url, suffix=".mp4", proxy=proxy, stream=True)}]
+                media = [{"video": download_file(video_url, path=Path(DOWNLOAD_DIR).joinpath(f"{rand_number()}.mp4"), proxy=proxy, stream=True)}]
             else:
                 return False, {}
             await modify_progress(text=f"⏬正在下载:\n{summay_media(media)}", force_update=True, **kwargs)
@@ -193,14 +193,14 @@ async def parse_via_tikhub(url: str = "", platform: str = "douyin", proxy: str |
                     video_urls = []
                     for key in ["play_addr_h264", "play_addr_265", "play_addr", "play_addr_lowbr"]:
                         video_urls.extend(glom(x, f"video.{key}.url_list", default=[]))
-                    media.append({"video": download_first_success_urls(video_urls, suffix=".mp4", proxy=proxy, stream=True)})
+                    media.append({"video": download_first_success_urls(video_urls, path=Path(DOWNLOAD_DIR).joinpath(f"{rand_number()}.mp4"), proxy=proxy, stream=True)})
                 else:
                     media.append({"photo": download_first_success_urls(prefer_jpg_urls(x.get("url_list")), proxy=proxy)})
         else:  # video post
             video_urls = []
             for key in ["play_addr_h264", "play_addr_265", "play_addr", "play_addr_lowbr"]:
                 video_urls.extend(glom(info, f"video.{key}.url_list", default=[]))
-            media = [{"video": download_first_success_urls(video_urls, suffix=".mp4", proxy=proxy, stream=True)}]
+            media = [{"video": download_first_success_urls(video_urls, path=Path(DOWNLOAD_DIR).joinpath(f"{rand_number()}.mp4"), proxy=proxy, stream=True)}]
         await modify_progress(text=f"⏬正在下载:\n{summay_media(media)}", force_update=True, **kwargs)
         media = await download_media(media, **kwargs)
         if not media: