- Add isDraft parameter to TencentVideo class to control publishing behavior - Modify click_publish method to click "保存草稿" instead of "发表" when isDraft is true - Update post_video_tencent function to accept and pass is_draft parameter - Add is_draft parameter to /postVideo API endpoint to receive frontend data - Add "视频号上传草稿" checkbox in frontend that appears only for video channel platform - Update defaultTabInit to include isDraft property with default value false - Include isDraft in publishData sent to backend API - Implement proper URL checking for draft vs publish success confirmation The new functionality allows users to save WeChat Channel videos as drafts instead of immediately publishing them when the checkbox is selected.
92 lines
4.5 KiB
Python
92 lines
4.5 KiB
Python
import asyncio
|
||
from pathlib import Path
|
||
|
||
from conf import BASE_DIR
|
||
from uploader.douyin_uploader.main import DouYinVideo
|
||
from uploader.ks_uploader.main import KSVideo
|
||
from uploader.tencent_uploader.main import TencentVideo
|
||
from uploader.xiaohongshu_uploader.main import XiaoHongShuVideo
|
||
from utils.constant import TencentZoneTypes
|
||
from utils.files_times import generate_schedule_time_next_day
|
||
|
||
|
||
def post_video_tencent(title,files,tags,account_file,category=TencentZoneTypes.LIFESTYLE.value,enableTimer=False,videos_per_day = 1, daily_times=None,start_days = 0, is_draft=False):
|
||
# 生成文件的完整路径
|
||
account_file = [Path(BASE_DIR / "cookiesFile" / file) for file in account_file]
|
||
files = [Path(BASE_DIR / "videoFile" / file) for file in files]
|
||
if enableTimer:
|
||
publish_datetimes = generate_schedule_time_next_day(len(files), videos_per_day, daily_times,start_days)
|
||
else:
|
||
publish_datetimes = [0 for i in range(len(files))]
|
||
for index, file in enumerate(files):
|
||
for cookie in account_file:
|
||
print(f"文件路径{str(file)}")
|
||
# 打印视频文件名、标题和 hashtag
|
||
print(f"视频文件名:{file}")
|
||
print(f"标题:{title}")
|
||
print(f"Hashtag:{tags}")
|
||
app = TencentVideo(title, str(file), tags, publish_datetimes[index], cookie, category, is_draft)
|
||
asyncio.run(app.main(), debug=False)
|
||
|
||
|
||
def post_video_DouYin(title,files,tags,account_file,category=TencentZoneTypes.LIFESTYLE.value,enableTimer=False,videos_per_day = 1, daily_times=None,start_days = 0,
|
||
thumbnail_path = '',
|
||
productLink = '', productTitle = ''):
|
||
# 生成文件的完整路径
|
||
account_file = [Path(BASE_DIR / "cookiesFile" / file) for file in account_file]
|
||
files = [Path(BASE_DIR / "videoFile" / file) for file in files]
|
||
if enableTimer:
|
||
publish_datetimes = generate_schedule_time_next_day(len(files), videos_per_day, daily_times,start_days)
|
||
else:
|
||
publish_datetimes = [0 for i in range(len(files))]
|
||
for index, file in enumerate(files):
|
||
for cookie in account_file:
|
||
print(f"文件路径{str(file)}")
|
||
# 打印视频文件名、标题和 hashtag
|
||
print(f"视频文件名:{file}")
|
||
print(f"标题:{title}")
|
||
print(f"Hashtag:{tags}")
|
||
app = DouYinVideo(title, str(file), tags, publish_datetimes[index], cookie, thumbnail_path, productLink, productTitle)
|
||
asyncio.run(app.main(), debug=False)
|
||
|
||
|
||
def post_video_ks(title,files,tags,account_file,category=TencentZoneTypes.LIFESTYLE.value,enableTimer=False,videos_per_day = 1, daily_times=None,start_days = 0):
|
||
# 生成文件的完整路径
|
||
account_file = [Path(BASE_DIR / "cookiesFile" / file) for file in account_file]
|
||
files = [Path(BASE_DIR / "videoFile" / file) for file in files]
|
||
if enableTimer:
|
||
publish_datetimes = generate_schedule_time_next_day(len(files), videos_per_day, daily_times,start_days)
|
||
else:
|
||
publish_datetimes = [0 for i in range(len(files))]
|
||
for index, file in enumerate(files):
|
||
for cookie in account_file:
|
||
print(f"文件路径{str(file)}")
|
||
# 打印视频文件名、标题和 hashtag
|
||
print(f"视频文件名:{file}")
|
||
print(f"标题:{title}")
|
||
print(f"Hashtag:{tags}")
|
||
app = KSVideo(title, str(file), tags, publish_datetimes[index], cookie)
|
||
asyncio.run(app.main(), debug=False)
|
||
|
||
def post_video_xhs(title,files,tags,account_file,category=TencentZoneTypes.LIFESTYLE.value,enableTimer=False,videos_per_day = 1, daily_times=None,start_days = 0):
|
||
# 生成文件的完整路径
|
||
account_file = [Path(BASE_DIR / "cookiesFile" / file) for file in account_file]
|
||
files = [Path(BASE_DIR / "videoFile" / file) for file in files]
|
||
file_num = len(files)
|
||
if enableTimer:
|
||
publish_datetimes = generate_schedule_time_next_day(file_num, videos_per_day, daily_times,start_days)
|
||
else:
|
||
publish_datetimes = 0
|
||
for index, file in enumerate(files):
|
||
for cookie in account_file:
|
||
# 打印视频文件名、标题和 hashtag
|
||
print(f"视频文件名:{file}")
|
||
print(f"标题:{title}")
|
||
print(f"Hashtag:{tags}")
|
||
app = XiaoHongShuVideo(title, file, tags, publish_datetimes, cookie)
|
||
asyncio.run(app.main(), debug=False)
|
||
|
||
|
||
|
||
# post_video("333",["demo.mp4"],"d","d")
|
||
# post_video_DouYin("333",["demo.mp4"],"d","d") |