Skip to content
This repository has been archived by the owner on Dec 19, 2023. It is now read-only.

添加了开车时间段的选择 #646

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions TickerConfig.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,10 @@
"2020-01-18"
]

# 时间范围 如果所有时间段,则用 00:00-23:59
START_TIME = "00:00"
END_TIME = "23:59"

# 填入需要购买的车次(list),"G1353"
# 修改车次填入规则,注:(以前设置的车次逻辑不变),如果车次填入为空,那么就是当日乘车所有车次都纳入筛选返回
# 不填车次是整个list为空才算,如果不是为空,依然会判断车次的,这种是错误的写法 [""], 正确的写法 []
Expand Down
9 changes: 7 additions & 2 deletions init/select_ticket_info.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,8 @@ def get_ticket_info():
u" 9群: 693035807(未满)\n"
)
print(
f"当前配置:\n出发站:{TickerConfig.FROM_STATION}\n到达站:{TickerConfig.TO_STATION}\n车次: {','.join(TickerConfig.STATION_TRAINS) or '所有车次'}\n乘车日期:{','.join(TickerConfig.STATION_DATES)}\n坐席:{','.join(TickerConfig.SET_TYPE)}\n是否有票优先提交:{TickerConfig.IS_MORE_TICKET}\n乘车人:{TickerConfig.TICKET_PEOPLES}\n" \
f"当前配置:\n出发站:{TickerConfig.FROM_STATION}\n到达站:{TickerConfig.TO_STATION}\n车次: {','.join(TickerConfig.STATION_TRAINS) or '所有车次'}\n乘车日期:{','.join(TickerConfig.STATION_DATES)}\n乘车时间范围: {TickerConfig.START_TIME}-{TickerConfig.END_TIME}\n"\
f"坐席:{','.join(TickerConfig.SET_TYPE)}\n是否有票优先提交:{TickerConfig.IS_MORE_TICKET}\n乘车人:{TickerConfig.TICKET_PEOPLES}\n"\
f"刷新间隔: 随机(1-3S)\n僵尸票关小黑屋时长: {TickerConfig.TICKET_BLACK_LIST_TIME}\n下单接口: {TickerConfig.ORDER_TYPE}\n下单模式: {TickerConfig.ORDER_MODEL}\n预售踩点时间:{TickerConfig.OPEN_TIME}")
print(u"*" * 50)

Expand Down Expand Up @@ -159,6 +160,8 @@ def main(self):
station_trains=TickerConfig.STATION_TRAINS,
station_dates=TickerConfig.STATION_DATES,
ticke_peoples_num=len(TickerConfig.TICKET_PEOPLES),
start_time=TickerConfig.START_TIME,
end_time=TickerConfig.END_TIME
)
queryResult = q.sendQuery()
# 查询接口
Expand Down Expand Up @@ -217,7 +220,9 @@ def main(self):
else:
random_time = round(random.uniform(sleep_time_s, sleep_time_t), 2)
nateMsg = ' 无候补机会' if TickerConfig.ORDER_TYPE == 2 else ""
print(f"正在第{num}次查询 停留时间:{random_time} 乘车日期: {','.join(TickerConfig.STATION_DATES)} 车次:{','.join(TickerConfig.STATION_TRAINS) or '所有车次'} 下单无票{nateMsg} 耗时:{(datetime.datetime.now() - now).microseconds / 1000} {queryResult.get('cdn')}")
print(f"正在第{num}次查询 停留时间:{random_time} 乘车日期: {','.join(TickerConfig.STATION_DATES)} 车次:{','.join(TickerConfig.STATION_TRAINS) or '所有车次'}"\
f" 时间范围: {TickerConfig.START_TIME}-{TickerConfig.END_TIME}"\
f" 下单无票{nateMsg} 耗时:{(datetime.datetime.now() - now).microseconds / 1000} {queryResult.get('cdn')}")
time.sleep(random_time)
except PassengerUserException as e:
print(e)
Expand Down
10 changes: 7 additions & 3 deletions inter/Query.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import copy
import random
import wrapcache
import datetime
from config import urlConf
from config.TicketEnmu import ticket
from myUrllib.httpUtils import HTTPClient
Expand All @@ -15,7 +16,7 @@ class query:
"""

def __init__(self, selectObj, from_station, to_station, from_station_h, to_station_h, _station_seat, station_trains,
ticke_peoples_num, station_dates=None, ):
ticke_peoples_num, start_time, end_time, station_dates=None):
self.session = selectObj
self.httpClint = HTTPClient(TickerConfig.IS_PROXY)
self.httpClint.set_cookies(self.session.cookies)
Expand All @@ -29,6 +30,8 @@ def __init__(self, selectObj, from_station, to_station, from_station_h, to_stati
self.station_dates = station_dates if isinstance(station_dates, list) else list(station_dates)
self.ticket_black_list = dict()
self.ticke_peoples_num = ticke_peoples_num
self.start_time = datetime.datetime.strptime(start_time, '%H:%M')
self.end_time = datetime.datetime.strptime(end_time, '%H:%M')

def station_seat(self, index):
"""
Expand All @@ -49,14 +52,15 @@ def station_seat(self, index):

def check_is_need_train(self, ticket_info):
"""
判断车次是否为想要的车次,如果ticket_info为空,那么就不校验车次,直接返回True
判断车次是否为想要的车次,如果,如果station_trains为空,那么就验证开始结束时间
:param ticket_info:
:return:
"""
ticket_time = datetime.datetime.strptime(ticket_info[8], '%H:%M')
if self.station_dates and self.station_trains:
return ticket_info[3] in self.station_trains
else:
return True
return self.start_time <= ticket_time and ticket_time <= self.end_time

def sendQuery(self):
"""
Expand Down