Merge pull request #317 from out0fmemory/master

增加时间判断逻辑
This commit is contained in:
pjialin
2019-12-30 10:27:30 +08:00
committed by GitHub
2 changed files with 23 additions and 2 deletions

View File

@@ -117,8 +117,8 @@ QUERY_JOBS = [
# 'job_name': 'bj -> sz', # 任务名称,不填默认会以车站名命名,不可重复
'account_key': 0, # 将会使用指定账号下单
'left_dates': [ # 出发日期 :Array
"2019-01-25",
"2019-01-26",
"2020-01-25",
"2020-01-26",
],
'stations': { # 车站 支持多个车站同时查询 :Dict or :List
'left': '北京',

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,