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
9462e0d7
Commit
9462e0d7
authored
Jan 27, 2019
by
Breeze Chen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加:发车时间段筛选
parent
696f888a
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
35 additions
and
1 deletion
+35
-1
env.py.example
env.py.example
+5
-1
job.py
py12306/query/job.py
+30
-0
No files found.
env.py.example
View file @
9462e0d7
...
@@ -142,7 +142,11 @@ QUERY_JOBS = [
...
@@ -142,7 +142,11 @@ QUERY_JOBS = [
"K4184"
"K4184"
],
],
'except_train_numbers': [ # 筛选车次,排除车次 train_numbers 和 except_train_numbers 不可同时存在
'except_train_numbers': [ # 筛选车次,排除车次 train_numbers 和 except_train_numbers 不可同时存在
]
],
'period': { # 筛选时间
'from': '00:00',
'to': '24:00'
}
},
},
# {
# {
...
...
py12306/query/job.py
View file @
9462e0d7
import
sys
import
sys
from
datetime
import
timedelta
from
py12306.app
import
app_available_check
from
py12306.app
import
app_available_check
from
py12306.cluster.cluster
import
Cluster
from
py12306.cluster.cluster
import
Cluster
...
@@ -28,6 +29,8 @@ class Job:
...
@@ -28,6 +29,8 @@ class Job:
arrive_station
=
''
arrive_station
=
''
left_station_code
=
''
left_station_code
=
''
arrive_station_code
=
''
arrive_station_code
=
''
from_time
=
timedelta
(
hours
=
0
)
to_time
=
timedelta
(
hours
=
24
)
account_key
=
0
account_key
=
0
allow_seats
=
[]
allow_seats
=
[]
...
@@ -60,6 +63,8 @@ class Job:
...
@@ -60,6 +63,8 @@ class Job:
INDEX_ARRIVE_STATION
=
7
INDEX_ARRIVE_STATION
=
7
INDEX_ORDER_TEXT
=
1
# 下单文字
INDEX_ORDER_TEXT
=
1
# 下单文字
INDEX_SECRET_STR
=
0
INDEX_SECRET_STR
=
0
INDEX_LEFT_TIME
=
8
INDEX_ARRIVE_TIME
=
9
def
__init__
(
self
,
info
,
query
):
def
__init__
(
self
,
info
,
query
):
self
.
cluster
=
Cluster
()
self
.
cluster
=
Cluster
()
...
@@ -84,6 +89,18 @@ class Job:
...
@@ -84,6 +89,18 @@ class Job:
self
.
member_num
=
len
(
self
.
members
)
self
.
member_num
=
len
(
self
.
members
)
self
.
member_num_take
=
self
.
member_num
self
.
member_num_take
=
self
.
member_num
self
.
allow_less_member
=
bool
(
info
.
get
(
'allow_less_member'
))
self
.
allow_less_member
=
bool
(
info
.
get
(
'allow_less_member'
))
period
=
info
.
get
(
'period'
)
if
isinstance
(
period
,
dict
):
if
'from'
in
period
:
parts
=
period
[
'from'
]
.
split
(
':'
)
if
len
(
parts
)
==
2
:
self
.
from_time
=
timedelta
(
hours
=
int
(
parts
[
0
]),
seconds
=
int
(
parts
[
1
]))
if
'to'
in
period
:
parts
=
period
[
'to'
]
.
split
(
':'
)
if
len
(
parts
)
==
2
:
self
.
to_time
=
timedelta
(
hours
=
int
(
parts
[
0
]),
seconds
=
int
(
parts
[
1
]))
def
update_interval
(
self
):
def
update_interval
(
self
):
self
.
interval
=
self
.
query
.
interval
self
.
interval
=
self
.
query
.
interval
...
@@ -239,6 +256,13 @@ class Job:
...
@@ -239,6 +256,13 @@ class Job:
return
seat
!=
''
and
seat
!=
'无'
and
seat
!=
'*'
return
seat
!=
''
and
seat
!=
'无'
and
seat
!=
'*'
def
is_trains_number_valid
(
self
):
def
is_trains_number_valid
(
self
):
train_left_time
=
self
.
get_info_of_train_left_time
()
time_parts
=
train_left_time
.
split
(
':'
)
left_time
=
timedelta
(
hours
=
int
(
time_parts
[
0
]),
seconds
=
int
(
time_parts
[
1
]))
if
left_time
<
self
.
from_time
or
left_time
>
self
.
to_time
:
return
False
if
self
.
except_train_numbers
:
if
self
.
except_train_numbers
:
return
self
.
get_info_of_train_number
()
.
upper
()
not
in
map
(
str
.
upper
,
self
.
except_train_numbers
)
return
self
.
get_info_of_train_number
()
.
upper
()
not
in
map
(
str
.
upper
,
self
.
except_train_numbers
)
if
self
.
allow_train_numbers
:
if
self
.
allow_train_numbers
:
...
@@ -324,3 +348,9 @@ class Job:
...
@@ -324,3 +348,9 @@ class Job:
def
get_info_of_secret_str
(
self
):
def
get_info_of_secret_str
(
self
):
return
self
.
ticket_info
[
self
.
INDEX_SECRET_STR
]
return
self
.
ticket_info
[
self
.
INDEX_SECRET_STR
]
def
get_info_of_train_left_time
(
self
):
return
self
.
ticket_info
[
self
.
INDEX_LEFT_TIME
]
def
get_info_of_train_arrive_time
(
self
):
return
self
.
ticket_info
[
self
.
INDEX_ARRIVE_TIME
]
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