Merge pull request #352 from IronXiao/master

增加使用浏览器缓存RAIL_EXPIRATION 和 RAIL_DEVICEID 配置,解决临时无法登录问题
This commit is contained in:
pjialin
2020-01-07 14:49:39 +08:00
committed by GitHub
6 changed files with 35 additions and 9 deletions

View File

@@ -28,7 +28,8 @@ QUERY_JOB_THREAD_ENABLED = 0 # 是否开启多线程查询,开启后第个任
# 打码平台账号
# 目前只支持免费打码接口 和 若快打码注册地址http://www.ruokuai.com/login
AUTO_CODE_PLATFORM = 'free' # 免费填写 free 若快 ruokuai # 免费打码无法保证持续可用,如失效请手动切换
AUTO_CODE_PLATFORM = 'free' # 免费填写 free 若快 ruokuai # 免费打码无法保证持续可用,如失效请手动切换 #个人本地打码填写 user,并修改 API_USER_CODE_QCR_API
API_USER_CODE_QCR_API = ''
AUTO_CODE_ACCOUNT = {
'user': 'your user name',
'pwd': 'your password'

View File

@@ -28,7 +28,8 @@ QUERY_JOB_THREAD_ENABLED = 0 # 是否开启多线程查询,开启后第个任
# 打码平台账号
# 目前只支持免费打码接口 和 若快打码注册地址http://www.ruokuai.com/login
AUTO_CODE_PLATFORM = 'free' # 免费填写 free 若快 ruokuai # 免费打码无法保证持续可用,如失效请手动切换
AUTO_CODE_PLATFORM = 'free' # 免费填写 free 若快 ruokuai # 免费打码无法保证持续可用,如失效请手动切换; 个人打码填写 user 并修改API_USER_CODE_QCR_API 为自己地址
API_USER_CODE_QCR_API = ''
AUTO_CODE_ACCOUNT = { # 使用 free 可用省略
'user': 'your user name',
'pwd': 'your password'
@@ -109,6 +110,11 @@ WEB_PORT = 8008 # 监听端口
CDN_ENABLED = 0
CDN_CHECK_TIME_OUT = 1 # 检测单个 cdn 是否可用超时时间
# 是否使用浏览器缓存中的RAIL_EXPIRATION 和 RAIL_DEVICEID
CACHE_RAIL_ID_ENABLED = 0
RAIL_EXPIRATION = '' #浏览12306 网站中的Cache的RAIL_EXPIRATION 值
RAIL_DEVICEID = '' #浏览12306 网站中的Cache的RAIL_DEVICEID 值
# 查询任务
QUERY_JOBS = [
{

View File

@@ -81,7 +81,7 @@ class App:
@classmethod
def check_auto_code(cls):
if Config().AUTO_CODE_PLATFORM == 'free': return True
if Config().AUTO_CODE_PLATFORM == 'free' or Config().AUTO_CODE_PLATFORM == 'user': return True
if not Config().AUTO_CODE_ACCOUNT.get('user') or not Config().AUTO_CODE_ACCOUNT.get('pwd'):
return False
return True

View File

@@ -22,6 +22,8 @@ class Config:
QUERY_JOB_THREAD_ENABLED = 0
# 打码平台账号
AUTO_CODE_PLATFORM = ''
#用户打码平台地址
API_USER_CODE_QCR_API = ''
AUTO_CODE_ACCOUNT = {'user': '', 'pwd': ''}
# 输出日志到文件
OUT_PUT_LOG_TO_FILE_ENABLED = 0
@@ -94,6 +96,10 @@ class Config:
CDN_ITEM_FILE = PROJECT_DIR + 'data/cdn.txt'
CDN_ENABLED_AVAILABLE_ITEM_FILE = QUERY_DATA_DIR + 'available.json'
CACHE_RAIL_ID_ENABLED = 0
RAIL_EXPIRATION = ''
RAIL_DEVICEID = ''
# Default time out
TIME_OUT_OF_REQUEST = 5
@@ -213,6 +219,10 @@ class Config:
def is_cdn_enabled():
return Config().CDN_ENABLED
@staticmethod
def is_cache_rail_id_enabled():
return Config().CACHE_RAIL_ID_ENABLED
class EnvLoader:
envs = []

View File

@@ -25,7 +25,7 @@ class OCR:
:return:
"""
self = cls()
if Config().AUTO_CODE_PLATFORM == 'free':
if Config().AUTO_CODE_PLATFORM == 'free' or Config().AUTO_CODE_PLATFORM == 'user':
return self.get_image_by_free_site(img)
return self.get_img_position_by_ruokuai(img)
@@ -58,7 +58,10 @@ class OCR:
data = {
'img': img
}
response = self.session.post(API_FREE_CODE_QCR_API, data=data, timeout=30)
if Config().AUTO_CODE_PLATFORM == 'free':
response = self.session.post(API_FREE_CODE_QCR_API, data=data, timeout=30)
else:
response = self.session.post(Config().API_USER_CODE_QCR_API, data=data, timeout=30)
result = response.json()
if result.get('msg') == 'success':
pos = result.get('result')

View File

@@ -197,10 +197,16 @@ class UserJob:
if response.text.find('callbackFunction') >= 0:
result = response.text[18:-2]
result = json.loads(result)
self.session.cookies.update({
'RAIL_EXPIRATION': result.get('exp'),
'RAIL_DEVICEID': result.get('dfp'),
})
if not Config().is_cache_rail_id_enabled():
self.session.cookies.update({
'RAIL_EXPIRATION': result.get('exp'),
'RAIL_DEVICEID': result.get('dfp'),
})
else:
self.session.cookies.update({
'RAIL_EXPIRATION': Config().RAIL_EXPIRATION,
'RAIL_DEVICEID': Config().RAIL_DEVICEID,
})
except:
return False