Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
D
doudian-py
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
baiquan
doudian-py
Commits
532411b1
Commit
532411b1
authored
Jul 15, 2025
by
baiquan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
优化上传图片与视频
parent
b98669ea
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
12 additions
and
14 deletions
+12
-14
service/doudian_service.py
+7
-13
service/upload_image_and_video.py
+2
-1
service/upload_video.py
+3
-0
No files found.
service/doudian_service.py
View file @
532411b1
...
@@ -31,6 +31,7 @@ def generate_a_bogus(params:str | dict,data: dict,ua: str, params_type: int=1):
...
@@ -31,6 +31,7 @@ def generate_a_bogus(params:str | dict,data: dict,ua: str, params_type: int=1):
def
get_schema
(
headers
:
dict
,
proxy_url
:
str
,
category_id
:
str
):
def
get_schema
(
headers
:
dict
,
proxy_url
:
str
,
category_id
:
str
):
"""获取商品类目"""
params
=
{
params
=
{
'appid'
:
'1'
,
'appid'
:
'1'
,
'_bid'
:
'ffa_goods'
,
'_bid'
:
'ffa_goods'
,
...
@@ -59,6 +60,7 @@ def get_schema(headers: dict, proxy_url: str, category_id: str):
...
@@ -59,6 +60,7 @@ def get_schema(headers: dict, proxy_url: str, category_id: str):
return
response
return
response
def
create_global_promotion
(
params
:
str
|
dict
,
data
:
dict
,
headers
:
dict
,
proxy_url
:
str
):
def
create_global_promotion
(
params
:
str
|
dict
,
data
:
dict
,
headers
:
dict
,
proxy_url
:
str
):
"""创建全域推广"""
proxies
=
check_proxy
(
proxy_url
)
proxies
=
check_proxy
(
proxy_url
)
if
headers
.
get
(
"User-Agent"
):
if
headers
.
get
(
"User-Agent"
):
ua
=
headers
[
'User-Agent'
]
ua
=
headers
[
'User-Agent'
]
...
@@ -74,7 +76,7 @@ def create_global_promotion(params:str | dict,data: dict,headers: dict, proxy_ur
...
@@ -74,7 +76,7 @@ def create_global_promotion(params:str | dict,data: dict,headers: dict, proxy_ur
return
response
return
response
def
search_category
(
product_name
,
cookies
,
headers
,
proxies
):
def
search_category
(
product_name
,
cookies
,
headers
,
proxies
):
"""
you
"""
"""
搜索商品分类
"""
if
15
>
len
(
product_name
)
>
60
:
if
15
>
len
(
product_name
)
>
60
:
raise
Exception
(
'商品标题长度必须在15-60字符之间'
)
raise
Exception
(
'商品标题长度必须在15-60字符之间'
)
params
=
{
params
=
{
...
@@ -87,8 +89,8 @@ def search_category(product_name, cookies, headers, proxies):
...
@@ -87,8 +89,8 @@ def search_category(product_name, cookies, headers, proxies):
response
=
doudian_request
(
"GET"
,
url
,
proxies
,
params
,
headers
=
headers
,
cookies
=
cookies
)
response
=
doudian_request
(
"GET"
,
url
,
proxies
,
params
,
headers
=
headers
,
cookies
=
cookies
)
return
response
[
'data'
]
return
response
[
'data'
]
# AI视频生成
def
generate_video
(
task
:
dict
):
def
generate_video
(
task
:
dict
):
"""生成视频"""
if
type
(
task
.
get
(
"proxies"
))
==
dict
:
if
type
(
task
.
get
(
"proxies"
))
==
dict
:
addr
=
task
.
get
(
"proxies"
)[
"addr"
]
addr
=
task
.
get
(
"proxies"
)[
"addr"
]
port
=
task
.
get
(
"proxies"
)[
"port"
]
port
=
task
.
get
(
"proxies"
)[
"port"
]
...
@@ -105,24 +107,15 @@ def generate_video(task: dict):
...
@@ -105,24 +107,15 @@ def generate_video(task: dict):
generate_video_data
=
task
.
get
(
'generate_video_data'
)
generate_video_data
=
task
.
get
(
'generate_video_data'
)
if
not
generate_video_data
:
if
not
generate_video_data
:
raise
ParamsError
(
'缺少generate_video_data参数'
)
raise
ParamsError
(
'缺少generate_video_data参数'
)
# generate_video_data = {
# 'product_name': "自粘地板贴家用瓷砖加厚耐磨防水地胶地垫",
# 'customized_images': [
# "https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_9ce719a34608aff3b11827271a67da85_sx_99050_www810-1080",
# "https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_4e88344c8a6746ab6bd79cebd34778a1_sx_187733_www1080-980",
# "https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_995815fcd3378e7f48765b3ef3fc9bec_sx_119123_www810-1080",
# "https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_b1fe80bb8228d713eabc880561120823_sx_53964_www810-1080",
# "https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_cc78dc386c3359945173fc9cb57297c4_sx_137165_www810-1080"],
# }
params
=
{
params
=
{
'appid'
:
'1'
,
'appid'
:
'1'
,
'_bid'
:
'ffa_goods'
,
'_bid'
:
'ffa_goods'
,
}
}
product_name
=
generate_video_data
[
'product_name'
]
product_name
=
generate_video_data
[
'product_name'
]
customized_images
=
generate_video_data
[
'customized_images'
]
customized_images
=
generate_video_data
[
'customized_images'
]
logger
.
info
(
len
(
customized_images
))
if
len
(
customized_images
)
<
3
:
if
len
(
customized_images
)
<
3
:
raise
Exception
(
'生成视频的图片数量至少为3张'
)
raise
Exception
(
'生成视频的图片数量至少为3张'
)
logger
.
info
(
f
"商品名称 --> {product_name}"
)
category_list
=
search_category
(
product_name
,
cookies
,
headers
,
proxies
)
category_list
=
search_category
(
product_name
,
cookies
,
headers
,
proxies
)
if
not
category_list
:
if
not
category_list
:
raise
Exception
(
'未找到商品分类'
)
raise
Exception
(
'未找到商品分类'
)
...
@@ -131,7 +124,7 @@ def generate_video(task: dict):
...
@@ -131,7 +124,7 @@ def generate_video(task: dict):
third_name
=
category_list
[
0
]
.
get
(
'third_name'
,
''
)
third_name
=
category_list
[
0
]
.
get
(
'third_name'
,
''
)
fourth_name
=
category_list
[
0
]
.
get
(
'fourth_name'
,
''
)
fourth_name
=
category_list
[
0
]
.
get
(
'fourth_name'
,
''
)
product_industrys
=
[
first_name
,
second_name
,
third_name
,
fourth_name
]
product_industrys
=
[
first_name
,
second_name
,
third_name
,
fourth_name
]
logger
.
info
(
f
"商品分类
:
{product_industrys}"
)
logger
.
info
(
f
"商品分类
-->
{product_industrys}"
)
json_data
=
{
json_data
=
{
'product_id'
:
''
,
'product_id'
:
''
,
'optimize_strategy'
:
'视频一键生成'
,
'optimize_strategy'
:
'视频一键生成'
,
...
@@ -165,6 +158,7 @@ def generate_video(task: dict):
...
@@ -165,6 +158,7 @@ def generate_video(task: dict):
return
result
return
result
def
get_task_result
(
task_id
:
str
,
headers
:
dict
,
tool_source
:
str
,
ua
,
proxies
,
cookies
):
def
get_task_result
(
task_id
:
str
,
headers
:
dict
,
tool_source
:
str
,
ua
,
proxies
,
cookies
):
"""获取任务结果"""
params
=
{
params
=
{
'task_id'
:
task_id
,
'task_id'
:
task_id
,
'app_id'
:
''
,
'app_id'
:
''
,
...
...
service/upload_image_and_video.py
View file @
532411b1
...
@@ -223,7 +223,8 @@ async def upload_single_video(task: dict, local_path: any, original_url: str, cu
...
@@ -223,7 +223,8 @@ async def upload_single_video(task: dict, local_path: any, original_url: str, cu
"""上传单个视频"""
"""上传单个视频"""
task
[
'file_path'
]
=
local_path
task
[
'file_path'
]
=
local_path
task
[
'video_url'
]
=
original_url
task
[
'video_url'
]
=
original_url
product_name
=
task
[
'title'
]
.
encode
(
'utf-8'
)
.
decode
(
'unicode_escape'
)
product_name
=
repr
(
task
[
'title'
])
logger
.
info
(
f
"product_name:{product_name}"
)
task
[
'generate_video_data'
]
=
{
task
[
'generate_video_data'
]
=
{
"product_name"
:
product_name
,
"product_name"
:
product_name
,
"customized_images"
:
customized_images
"customized_images"
:
customized_images
...
...
service/upload_video.py
View file @
532411b1
...
@@ -681,6 +681,9 @@ def upload_video_with_multithreading(task):
...
@@ -681,6 +681,9 @@ def upload_video_with_multithreading(task):
def
prepare_video_file
(
task
):
def
prepare_video_file
(
task
):
"""准备视频文件"""
"""准备视频文件"""
video_url
=
task
.
get
(
"video_url"
)
if
not
video_url
:
raise
VideoError
(
"video_url is None"
)
if
not
task
.
get
(
"file_path"
):
if
not
task
.
get
(
"file_path"
):
if
not
os
.
path
.
exists
(
VIDEO_PATH
):
if
not
os
.
path
.
exists
(
VIDEO_PATH
):
os
.
makedirs
(
VIDEO_PATH
)
os
.
makedirs
(
VIDEO_PATH
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment