feat(发布计划): 素材支持图片(图文)—— 上传视频/图片,发布流程共用一条 + 切号健壮性再修
用户实测反馈:"图片流程一样,现在也是点第一个" → 图片不做单独一套流程,只放开上传侧; 扩展名一路原样带到手机上(抖音按扩展名/MIME 判断视频还是图文,图片推成 .mp4 会变坏视频)。 · core/video_plan.py:VIDEO_EXTS + IMAGE_EXTS(jpg/jpeg/png/webp/heic) → MEDIA_EXTS; 报错文案改"不是视频/图片文件" · tasks/generic/publish_flow.push_video:ext 默认**从本地文件名取**(不再硬编码 .mp4); drop_old_copies 收到真实扩展名 · tasks/generic/task.py:删手机素材优先用推送时记下的 push_remote,其次按素材扩展名现算; 切号:等面板开稳再点(刚出现就点会被入场动画吞掉)、点完面板还开着(点的就是当前号) 就先关面板、一切以**回读**为准、回读窗口 12s→30s(换号会触发抖音整体重启,实测 77s 才回来); 失败时日志附带"当时屏幕上是什么"(亮屏/前台包/屏上文字)—— "点了没反应"一眼可判 · 骨架:先 stop_app 冷启动(抖音可能停在发布页/别的视频页,那种页面上没有「我」页签, 切号第一步就废);「校验账号」的选择器与「读名字」统一从 .env 取(漏了这一步会静默跳过 整个发布流程 —— 用户实际遇到的"直接完成、没发布"就是这个) · 界面:上传视频 → 上传视频/图片,accept 加 image/*,明细表"视频文件"→"素材文件",help 文案 · 文档:TASK_DEV §4.7 / API / DATA_MODEL / ARCHITECTURE / README 同步 · 测试:解析用例补图片(jpg/png/webp/大写 JPG 认,gif 不收)+ 改报错文案期望
This commit is contained in:
@@ -75,13 +75,17 @@ def _sh(d, cmd):
|
||||
|
||||
|
||||
# ================== 原语 ==================
|
||||
def push_video(d, serial, local_path, plan_id, album_dir=ALBUM_DIR, ext=".mp4"):
|
||||
def push_video(d, serial, local_path, plan_id, album_dir=ALBUM_DIR, ext=""):
|
||||
"""把平台素材推到手机相册目录,并把手机上的时间改成"现在"。返回 (remote_path, error)。
|
||||
|
||||
改时间是为了**排序**:相册/抖音的选视频页按时间倒序,
|
||||
改时间是为了**排序**:相册/抖音的选素材页按时间倒序,
|
||||
`adb push` 保留的是**本地文件的修改时间**(推一个 3 天前上传的素材 → 排在很后面),
|
||||
那"点第一个缩略图 = 刚推的那个"就不成立、可能点到别的视频。所以推完 `touch` 一下。
|
||||
那"点第一个缩略图 = 刚推的那个"就不成立、可能点到别的素材。所以推完 `touch` 一下。
|
||||
|
||||
`ext` 默认**从本地文件名上取**(视频/图片各带各的扩展名)—— 抖音是按扩展名/MIME
|
||||
判断这是视频还是图片的,把图片推成 `xxx.mp4`,相册里就成了一段坏视频。
|
||||
"""
|
||||
ext = (ext or os.path.splitext(local_path)[1] or ".mp4").lower()
|
||||
remote = f"{album_dir}/{plan_id}{ext}"
|
||||
try:
|
||||
local_size = os.path.getsize(local_path)
|
||||
@@ -178,6 +182,7 @@ def scan_media(d, remote):
|
||||
|
||||
|
||||
def drop_old_copies(d, plan_id, keep, ext=".mp4"):
|
||||
"""(`ext` 由 `push_video` 按素材真实扩展名传进来:视频/图片各删各的旧副本)"""
|
||||
"""把**同一个计划**在平台用过别的目录里的旧副本删掉(精确文件名,绝不通配)。
|
||||
|
||||
为什么要删:换了推送目录之后,老目录里的同名副本还在相册里(实测一个 plan id 躺了 3 份),
|
||||
|
||||
Reference in New Issue
Block a user