mirror of https://github.com/testerSunshine/12306
110 lines
2.4 KiB
Python
Executable File
110 lines
2.4 KiB
Python
Executable File
# -*- coding: utf-8 -*-
|
||
import datetime
|
||
import os
|
||
import sys
|
||
import time
|
||
|
||
saleMinDelayDay = 0
|
||
saleMaxDelayDay = 59
|
||
saleStartTime = "06:00:00"
|
||
saleStopTime = "23:00:00"
|
||
rushRefreshMinTimeIntval = 2000
|
||
rushRefreshMaxTimeIntval = 3600000
|
||
rushRefreshTimeIntval = 100
|
||
|
||
RS_SUC = 0
|
||
RS_TIMEOUT = 1
|
||
RS_JSON_ERROR = 2
|
||
RS_OTHER_ERROR = 3
|
||
|
||
seat_conf = {'商务座': 32,
|
||
'一等座': 31,
|
||
'二等座': 30,
|
||
'特等座': 25,
|
||
'软卧': 23,
|
||
'硬卧': 28,
|
||
'软座': 24,
|
||
'硬座': 29,
|
||
'无座': 26,
|
||
}
|
||
if sys.version_info.major == 2:
|
||
seat_conf_2 = dict([(v, k) for (k, v) in seat_conf.iteritems()])
|
||
else:
|
||
seat_conf_2 = dict([(v, k) for (k, v) in seat_conf.items()])
|
||
|
||
|
||
def getNowTimestamp():
|
||
return time.time()
|
||
|
||
|
||
def getMinimumDate():
|
||
return time.localtime(getNowTimestamp() + saleMinDelayDay * 24 * 3600)[:3]
|
||
|
||
|
||
def getMaximumDate():
|
||
return time.localtime(getNowTimestamp() + saleMaxDelayDay * 24 * 3600)[:3]
|
||
|
||
|
||
def getMinimumTime():
|
||
return [int(x) for x in saleStartTime.split(":")]
|
||
|
||
|
||
def getMaximumTime():
|
||
return [int(x) for x in saleStopTime.split(":")]
|
||
|
||
|
||
def decMakeDir(func):
|
||
def handleFunc(*args, **kwargs):
|
||
dirname = func(*args, **kwargs)
|
||
if not os.path.exists(dirname):
|
||
os.makedirs(dirname)
|
||
elif not os.path.isdir(dirname):
|
||
pass
|
||
|
||
return dirname
|
||
|
||
return func
|
||
|
||
|
||
def getWorkDir():
|
||
return os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||
|
||
|
||
@decMakeDir
|
||
def getTmpDir():
|
||
return os.path.join(getWorkDir(), "tmp")
|
||
|
||
|
||
@decMakeDir
|
||
def getLogDir():
|
||
return os.path.join(getTmpDir(), "log")
|
||
|
||
|
||
@decMakeDir
|
||
def getCacheDir():
|
||
return os.path.join(getTmpDir(), "cache")
|
||
|
||
|
||
@decMakeDir
|
||
def getVCodeDir():
|
||
return os.path.join(getTmpDir(), "vcode")
|
||
|
||
|
||
def getVCodeImageFile(imageName):
|
||
return os.path.join(getVCodeDir(), imageName + ".jpg")
|
||
|
||
|
||
def getCacheFile(cacheType):
|
||
return os.path.join(getCacheDir(), cacheType + ".cache")
|
||
|
||
|
||
def checkSleepTime(session):
|
||
now = datetime.datetime.now()
|
||
if now.hour >= 23 or now.hour < 6:
|
||
print(u"12306休息时间,本程序自动停止,明天早上七点将自动运行")
|
||
open_time = datetime.datetime(now.year, now.month, now.day, 6)
|
||
if open_time < now:
|
||
open_time += datetime.timedelta(1)
|
||
time.sleep((open_time - now).seconds)
|
||
session.call_login()
|