diff --git a/py12306/log/common_log.py b/py12306/log/common_log.py index 07f8bb5..9b6f3ce 100644 --- a/py12306/log/common_log.py +++ b/py12306/log/common_log.py @@ -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() diff --git a/py12306/log/order_log.py b/py12306/log/order_log.py index b8f6530..e5af681 100644 --- a/py12306/log/order_log.py +++ b/py12306/log/order_log.py @@ -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 = '排队失败,错误原因 {}' diff --git a/py12306/log/user_log.py b/py12306/log/user_log.py index 9234725..8cffee4 100644 --- a/py12306/log/user_log.py +++ b/py12306/log/user_log.py @@ -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__() diff --git a/py12306/order/order.py b/py12306/order/order.py index ba7d2cc..6df7f2d 100644 --- a/py12306/order/order.py +++ b/py12306/order/order.py @@ -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'): diff --git a/py12306/web/web.py b/py12306/web/web.py index 5bf0a0f..df9fd79 100644 --- a/py12306/web/web.py +++ b/py12306/web/web.py @@ -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