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
4a8a2cda
Commit
4a8a2cda
authored
Jun 28, 2025
by
baiquan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
优化登录
parent
5f045b83
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
41 additions
and
38 deletions
+41
-38
api.py
+18
-2
service/page_login.py
+3
-0
task_worker.py
+14
-29
utils/common.py
+6
-7
No files found.
api.py
View file @
4a8a2cda
...
@@ -179,8 +179,24 @@ def get_schema_request(req: GetSchemaRequest):
...
@@ -179,8 +179,24 @@ def get_schema_request(req: GetSchemaRequest):
summary
=
"创建全域推广"
,
summary
=
"创建全域推广"
,
)
)
def
create_global_promotion_request
(
req
:
CreateGlobalPromotionRequest
):
def
create_global_promotion_request
(
req
:
CreateGlobalPromotionRequest
):
return
execute_create_global_promotion
(
req
.
params
,
req
.
data
,
req
.
headers
,
req
.
proxy_url
)
try
:
return
execute_create_global_promotion
(
req
.
params
,
req
.
data
,
req
.
headers
,
req
.
proxy_url
)
except
AppError
as
e
:
logger
.
error
(
f
'获取类目参数失败-->{e}'
)
return
{
'code'
:
e
.
code
,
'msg'
:
e
.
msg
,
'data'
:
e
.
data
,
'error_type'
:
type
(
e
)
.
__name__
}
except
Exception
as
e
:
logger
.
error
(
f
'创建全局推广异常:{e}'
)
return
{
'code'
:
500
,
'msg'
:
f
'创建全局推广异常:{e}'
,
'data'
:
None
,
'error_type'
:
'InternalError'
}
# 注册路由
# 注册路由
app
.
include_router
(
sync_router
)
app
.
include_router
(
sync_router
)
...
...
service/page_login.py
View file @
4a8a2cda
...
@@ -69,6 +69,9 @@ async def page_login(browser_id):
...
@@ -69,6 +69,9 @@ async def page_login(browser_id):
em
=
"邮箱登录"
em
=
"邮箱登录"
doc_loaded
=
tab
.
wait
.
doc_loaded
(
timeout
=
10
)
doc_loaded
=
tab
.
wait
.
doc_loaded
(
timeout
=
10
)
eles_loaded
=
tab
.
wait
.
eles_loaded
(
em
)
eles_loaded
=
tab
.
wait
.
eles_loaded
(
em
)
if
tab
.
title
==
"首页"
:
logger
.
info
(
f
"{browser_id}-->当前页面为首页,已登录"
)
break
if
not
doc_loaded
or
not
eles_loaded
:
if
not
doc_loaded
or
not
eles_loaded
:
raise
AppError
(
f
"页面或元素未加载完成({retry})"
)
raise
AppError
(
f
"页面或元素未加载完成({retry})"
)
click_button
(
tab
,
em
)
# 点击邮箱登录按钮
click_button
(
tab
,
em
)
# 点击邮箱登录按钮
...
...
task_worker.py
View file @
4a8a2cda
...
@@ -2,6 +2,7 @@ import asyncio
...
@@ -2,6 +2,7 @@ import asyncio
from
celery
import
shared_task
from
celery
import
shared_task
from
loguru
import
logger
from
loguru
import
logger
from
retrying
import
retry
from
service.create_template
import
create_template
from
service.create_template
import
create_template
from
service.doudian_service
import
generate_a_bogus
,
get_schema
,
create_global_promotion
from
service.doudian_service
import
generate_a_bogus
,
get_schema
,
create_global_promotion
...
@@ -211,34 +212,19 @@ def execute_get_schema(headers: dict, proxy_url: str, category_id: str):
...
@@ -211,34 +212,19 @@ def execute_get_schema(headers: dict, proxy_url: str, category_id: str):
'error_type'
:
'InternalError'
'error_type'
:
'InternalError'
}
}
@retry
(
stop_max_attempt_number
=
3
,
wait_fixed
=
3000
)
@shared_task
(
name
=
'create_global_promotion'
)
@shared_task
(
name
=
'create_global_promotion'
)
def
execute_create_global_promotion
(
params
:
str
|
dict
,
data
:
dict
,
headers
:
dict
,
proxy_url
:
str
):
def
execute_create_global_promotion
(
params
:
str
|
dict
,
data
:
dict
,
headers
:
dict
,
proxy_url
:
str
):
"""创建全域推广"""
"""创建全域推广"""
try
:
response
=
create_global_promotion
(
params
,
data
,
headers
,
proxy_url
)
response
=
create_global_promotion
(
params
,
data
,
headers
,
proxy_url
)
response_data
=
response
.
json
()
response_data
=
response
.
json
()
if
response_data
.
get
(
'status_code'
,
-
1
)
!=
0
:
if
response_data
.
get
(
'status_code'
,
-
1
)
!=
0
:
logger
.
error
(
f
"创建全局推广失败 --> {response.text}"
)
raise
Exception
(
f
"创建全局推广失败 --> {response.text}"
)
raise
Exception
(
f
"创建全局推广失败 --> {response.text}"
)
result
=
response_data
.
get
(
'data'
,
{})
result
=
response_data
.
get
(
'data'
,
{})
return
{
return
{
'code'
:
200
,
'code'
:
200
,
'msg'
:
'success'
,
'msg'
:
'success'
,
'data'
:
result
,
'data'
:
result
,
'error_type'
:
''
'error_type'
:
''
}
}
except
AppError
as
e
:
logger
.
error
(
f
'获取类目参数失败-->{e}'
)
return
{
'code'
:
e
.
code
,
'msg'
:
e
.
msg
,
'data'
:
e
.
data
,
'error_type'
:
type
(
e
)
.
__name__
}
except
Exception
as
e
:
logger
.
error
(
f
'创建全局推广异常:{e}'
)
return
{
'code'
:
500
,
'msg'
:
f
'创建全局推广异常:{e}'
,
'data'
:
None
,
'error_type'
:
'InternalError'
}
\ No newline at end of file
utils/common.py
View file @
4a8a2cda
...
@@ -16,15 +16,14 @@ def check_proxy(proxy_url):
...
@@ -16,15 +16,14 @@ def check_proxy(proxy_url):
}
}
addr
=
urlparse
(
proxy_url
)
.
hostname
addr
=
urlparse
(
proxy_url
)
.
hostname
try
:
try
:
logger
.
info
(
"业务域名连通性验证成功"
)
test_res
=
requests
.
get
(
'http://httpbin.org/ip'
,
timeout
=
10
,
proxies
=
proxies
)
.
json
()
test_res
=
requests
.
get
(
'http://httpbin.org/ip'
,
timeout
=
10
,
proxies
=
proxies
)
.
json
()
if
test_res
[
'origin'
]
==
addr
:
logger
.
info
(
f
"代理验证成功"
)
return
proxies
else
:
raise
AppError
(
msg
=
"代理验证失败"
)
except
Exception
as
e
:
except
Exception
as
e
:
raise
AppError
(
msg
=
f
"代理验证失败: {str(e)}"
)
raise
AppError
(
f
"{addr}-->代理验证失败-->{str(e)}"
)
if
test_res
.
get
(
'origin'
,
""
)
==
addr
:
logger
.
info
(
f
"{addr}-->代理验证成功"
)
return
proxies
else
:
raise
AppError
(
f
"{addr}-->代理验证失败"
)
def
encryptParamsId
(
login_subject_uid
,
user_identity_id
):
def
encryptParamsId
(
login_subject_uid
,
user_identity_id
):
e
=
{
e
=
{
...
...
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