增加买票时间校验逻辑,防止出现日期不对,但是报的是302错误

This commit is contained in:
out0fmemory
2019-12-27 18:44:32 +08:00
parent 95e9e8a89b
commit eee53461cf

View File

@@ -1,5 +1,6 @@
import sys
from datetime import timedelta
from datetime import datetime
from py12306.app import app_available_check
from py12306.cluster.cluster import Cluster
@@ -66,6 +67,8 @@ class Job:
INDEX_LEFT_TIME = 8
INDEX_ARRIVE_TIME = 9
max_buy_time = 32
def __init__(self, info, query):
self.cluster = Cluster()
self.query = query
@@ -136,11 +139,29 @@ class Job:
QueryLog.add_log('\n').flush(sep='\t\t', publish=False)
if Const.IS_TEST: return
def judge_date_legal(self, date):
date_now = datetime.datetime.now()
date_query = datetime.datetime.strptime(str(date), "%Y-%m-%d")
diff = (date_query - date_now).days
if date_now.day == date_query.day:
diff = 0
if diff < 0:
msg = '乘车日期错误,比当前时间还早!!'
QueryLog.add_quick_log(msg).flush(publish=False)
raise RuntimeError(msg)
elif diff > self.max_buy_time:
msg = '乘车日期错误,超出一个月预售期!!'
QueryLog.add_quick_log(msg).flush(publish=False)
raise RuntimeError(msg)
else:
pass
def query_by_date(self, date):
"""
通过日期进行查询
:return:
"""
self.judge_date_legal(date)
from py12306.helpers.cdn import Cdn
QueryLog.add_log(('\n' if not is_main_thread() else '') + QueryLog.MESSAGE_QUERY_START_BY_DATE.format(date,
self.left_station,