Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
P
py12306
Project
Project
Details
Activity
Releases
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
python
py12306
Commits
d98c9806
Commit
d98c9806
authored
Jan 15, 2019
by
Jalin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修复提交订单成功后不停止排队 #35
parent
e4f20350
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
38 additions
and
16 deletions
+38
-16
common_log.py
py12306/log/common_log.py
+2
-0
order_log.py
py12306/log/order_log.py
+1
-0
user_log.py
py12306/log/user_log.py
+1
-1
order.py
py12306/order/order.py
+30
-11
web.py
py12306/web/web.py
+4
-4
No files found.
py12306/log/common_log.py
View file @
d98c9806
...
...
@@ -47,6 +47,8 @@ class CommonLog(BaseLog):
MESSAGE_GET_RESPONSE_FROM_FREE_AUTO_CODE
=
'从免费打码获取结果失败'
MESSAGE_RESPONSE_EMPTY_ERROR
=
'网络错误'
def
__init__
(
self
):
super
()
.
__init__
()
self
.
init_data
()
...
...
py12306/log/order_log.py
View file @
d98c9806
...
...
@@ -17,6 +17,7 @@ class OrderLog(BaseLog):
MESSAGE_CHECK_ORDER_INFO_FAIL
=
'检查订单失败,错误原因 {}
\n
'
MESSAGE_CHECK_ORDER_INFO_SUCCESS
=
'检查订单成功'
MESSAGE_GET_QUEUE_INFO_SUCCESS
=
'获取排队信息成功,目前排队人数 {}, 余票还剩余 {} 张'
MESSAGE_GET_QUEUE_COUNT_SUCCESS
=
'排队成功,你当前排在第 {} 位, 余票还剩余 {} 张'
MESSAGE_GET_QUEUE_LESS_TICKET
=
'排队失败,目前排队人数已经超过余票张数'
MESSAGE_GET_QUEUE_COUNT_FAIL
=
'排队失败,错误原因 {}'
...
...
py12306/log/user_log.py
View file @
d98c9806
...
...
@@ -29,7 +29,7 @@ class UserLog(BaseLog):
MESSAGE_USER_BEING_DESTROY
=
'用户 {} 已退出'
MESSAGE_USER_COOKIE_NOT_FOUND_FROM_REMOTE
=
'用户 {} 状态加载中...'
MESSAGE_WAIT_USER_INIT_COMPLETE
=
'账号正在
初始化
,{} 秒后自动重试'
MESSAGE_WAIT_USER_INIT_COMPLETE
=
'账号正在
登录中
,{} 秒后自动重试'
def
__init__
(
self
):
super
()
.
__init__
()
...
...
py12306/order/order.py
View file @
d98c9806
...
...
@@ -83,8 +83,9 @@ class Order:
Notification
.
send_email
(
Config
()
.
EMAIL_RECEIVER
,
OrderLog
.
MESSAGE_ORDER_SUCCESS_NOTIFICATION_TITLE
,
OrderLog
.
MESSAGE_ORDER_SUCCESS_NOTIFICATION_OF_EMAIL_CONTENT
.
format
(
self
.
order_id
))
if
Config
()
.
DINGTALK_ENABLED
:
# 钉钉通知
Notification
.
dingtalk_webhook
(
OrderLog
.
MESSAGE_ORDER_SUCCESS_NOTIFICATION_OF_EMAIL_CONTENT
.
format
(
self
.
order_id
))
if
Config
()
.
TELEGRAM_ENABLED
:
# Telegram推送
Notification
.
dingtalk_webhook
(
OrderLog
.
MESSAGE_ORDER_SUCCESS_NOTIFICATION_OF_EMAIL_CONTENT
.
format
(
self
.
order_id
))
if
Config
()
.
TELEGRAM_ENABLED
:
# Telegram推送
Notification
.
send_to_telegram
(
OrderLog
.
MESSAGE_ORDER_SUCCESS_NOTIFICATION_OF_EMAIL_CONTENT
.
format
(
self
.
order_id
))
if
Config
()
.
SERVERCHAN_ENABLED
:
# ServerChan通知
...
...
@@ -235,12 +236,12 @@ class Order:
current_position
=
int
(
result
.
get
(
'data.countT'
,
0
))
OrderLog
.
add_quick_log
(
OrderLog
.
MESSAGE_GET_QUEUE_
COUNT
_SUCCESS
.
format
(
current_position
,
ticket_number
))
.
flush
()
OrderLog
.
MESSAGE_GET_QUEUE_
INFO
_SUCCESS
.
format
(
current_position
,
ticket_number
))
.
flush
()
return
True
else
:
# 加入小黑屋
OrderLog
.
add_quick_log
(
OrderLog
.
MESSAGE_GET_QUEUE_COUNT_FAIL
.
format
(
result
.
get
(
'messages'
,
result
.
get
(
'validateMessages'
,
'-'
))))
.
flush
()
result
.
get
(
'messages'
,
result
.
get
(
'validateMessages'
,
CommonLog
.
MESSAGE_RESPONSE_EMPTY_ERROR
))))
.
flush
()
return
False
def
confirm_single_for_queue
(
self
):
...
...
@@ -297,10 +298,11 @@ class Order:
else
:
# 加入小黑屋 TODO
OrderLog
.
add_quick_log
(
OrderLog
.
MESSAGE_CONFIRM_SINGLE_FOR_QUEUE_ERROR
.
format
(
result
.
get
(
'data.errMsg'
,
'-'
)))
.
flush
()
OrderLog
.
MESSAGE_CONFIRM_SINGLE_FOR_QUEUE_ERROR
.
format
(
result
.
get
(
'data.errMsg'
,
CommonLog
.
MESSAGE_RESPONSE_EMPTY_ERROR
)))
.
flush
()
else
:
OrderLog
.
add_quick_log
(
OrderLog
.
MESSAGE_CONFIRM_SINGLE_FOR_QUEUE_FAIL
.
format
(
result
.
get
(
'messages'
,
'-'
)))
.
flush
()
result
.
get
(
'messages'
,
CommonLog
.
MESSAGE_RESPONSE_EMPTY_ERROR
)))
.
flush
()
return
False
def
query_order_wait_time
(
self
):
...
...
@@ -344,14 +346,31 @@ class Order:
order_id
=
result_data
.
get
(
'orderId'
)
if
order_id
:
# 成功
return
order_id
elif
result_data
.
get
(
'waitTime'
)
!=
-
100
:
OrderLog
.
add_quick_log
(
OrderLog
.
MESSAGE_QUERY_ORDER_WAIT_TIME_WAITING
.
format
(
result_data
.
get
(
'waitCount'
,
0
),
result_data
.
get
(
'waitTime'
)))
.
flush
()
elif
'waitTime'
in
result_data
:
# 计算等待时间
wait_time
=
int
(
result_data
.
get
(
'waitTime'
))
if
wait_time
==
-
1
or
wait_time
==
-
100
:
# 成功
# /otn/confirmPassenger/resultOrderForDcQueue 请求订单状态 目前不需要
# 不应该走到这
return
order_id
elif
wait_time
>=
0
:
# 等待
OrderLog
.
add_quick_log
(
OrderLog
.
MESSAGE_QUERY_ORDER_WAIT_TIME_WAITING
.
format
(
result_data
.
get
(
'waitCount'
,
0
),
wait_time
))
.
flush
()
else
:
if
wait_time
==
-
2
or
wait_time
==
-
3
:
# -2 失败 -3 订单已撤销
OrderLog
.
add_quick_log
(
OrderLog
.
MESSAGE_QUERY_ORDER_WAIT_TIME_FAIL
.
format
(
result_data
.
get
(
'msg'
)))
.
flush
()
else
:
# 未知原因
OrderLog
.
add_quick_log
(
OrderLog
.
MESSAGE_QUERY_ORDER_WAIT_TIME_FAIL
.
format
(
result_data
.
get
(
'msg'
,
wait_time
)))
.
flush
()
elif
result_data
.
get
(
'msg'
):
# 失败 对不起,由于您取消次数过多,今日将不能继续受理您的订票请求。1月8日您可继续使用订票功能。
# TODO 需要增加判断 直接结束
OrderLog
.
add_quick_log
(
OrderLog
.
MESSAGE_QUERY_ORDER_WAIT_TIME_FAIL
.
format
(
result_data
.
get
(
'msg'
,
'-'
)))
.
flush
()
OrderLog
.
MESSAGE_QUERY_ORDER_WAIT_TIME_FAIL
.
format
(
result_data
.
get
(
'msg'
,
CommonLog
.
MESSAGE_RESPONSE_EMPTY_ERROR
)))
.
flush
()
stay_second
(
self
.
retry_time
)
return
False
elif
result
.
get
(
'messages'
)
or
result
.
get
(
'validateMessages'
):
...
...
py12306/web/web.py
View file @
d98c9806
...
...
@@ -45,10 +45,10 @@ class Web:
def
start
(
self
):
if
not
Config
()
.
WEB_ENABLE
or
Config
()
.
is_slave
():
return
if
Config
()
.
IS_DEBUG
:
self
.
run_session
()
else
:
create_thread_and_run
(
self
,
'run_session'
,
wait
=
False
)
#
if Config().IS_DEBUG:
#
self.run_session()
#
else:
create_thread_and_run
(
self
,
'run_session'
,
wait
=
False
)
def
run_session
(
self
):
debug
=
False
...
...
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