rename old
This commit is contained in:
82
old_py12306/helpers/OCR.py
Normal file
82
old_py12306/helpers/OCR.py
Normal file
@@ -0,0 +1,82 @@
|
||||
import math
|
||||
import random
|
||||
|
||||
from py12306.config import Config
|
||||
from py12306.helpers.api import *
|
||||
from py12306.helpers.request import Request
|
||||
from py12306.log.common_log import CommonLog
|
||||
from py12306.vender.ruokuai.main import RKClient
|
||||
|
||||
|
||||
class OCR:
|
||||
"""
|
||||
图片识别
|
||||
"""
|
||||
session = None
|
||||
|
||||
def __init__(self):
|
||||
self.session = Request()
|
||||
|
||||
@classmethod
|
||||
def get_img_position(cls, img):
|
||||
"""
|
||||
获取图像坐标
|
||||
:param img_path:
|
||||
:return:
|
||||
"""
|
||||
self = cls()
|
||||
if Config().AUTO_CODE_PLATFORM == 'free':
|
||||
return self.get_image_by_free_site(img)
|
||||
return self.get_img_position_by_ruokuai(img)
|
||||
|
||||
def get_img_position_by_ruokuai(self, img):
|
||||
ruokuai_account = Config().AUTO_CODE_ACCOUNT
|
||||
soft_id = '119671'
|
||||
soft_key = '6839cbaca1f942f58d2760baba5ed987'
|
||||
rc = RKClient(ruokuai_account.get('user'), ruokuai_account.get('pwd'), soft_id, soft_key)
|
||||
result = rc.rk_create(img, 6113)
|
||||
if "Result" in result:
|
||||
return self.get_image_position_by_offset(list(result['Result']))
|
||||
CommonLog.print_auto_code_fail(result.get("Error", CommonLog.MESSAGE_RESPONSE_EMPTY_ERROR))
|
||||
return None
|
||||
|
||||
def get_image_position_by_offset(self, offsets):
|
||||
positions = []
|
||||
width = 75
|
||||
height = 75
|
||||
for offset in offsets:
|
||||
random_x = random.randint(-5, 5)
|
||||
random_y = random.randint(-5, 5)
|
||||
offset = int(offset)
|
||||
x = width * ((offset - 1) % 4 + 1) - width / 2 + random_x
|
||||
y = height * math.ceil(offset / 4) - height / 2 + random_y
|
||||
positions.append(int(x))
|
||||
positions.append(int(y))
|
||||
return positions
|
||||
|
||||
def get_image_by_free_site(self, img):
|
||||
data = {
|
||||
'base64': img
|
||||
}
|
||||
response = self.session.post(API_FREE_CODE_QCR_API, json=data)
|
||||
result = response.json()
|
||||
if result.get('success') and result.get('data.check'):
|
||||
check_data = {
|
||||
'check': result.get('data.check'),
|
||||
'img_buf': img,
|
||||
'logon': 1,
|
||||
'type': 'D'
|
||||
}
|
||||
check_response = self.session.post(API_FREE_CODE_QCR_API_CHECK, json=check_data)
|
||||
check_result = check_response.json()
|
||||
if check_result.get('res'):
|
||||
position = check_result.get('res')
|
||||
return position.replace('(', '').replace(')', '').split(',')
|
||||
|
||||
CommonLog.print_auto_code_fail(CommonLog.MESSAGE_GET_RESPONSE_FROM_FREE_AUTO_CODE)
|
||||
return None
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
pass
|
||||
# code_result = AuthCode.get_auth_code()
|
||||
Reference in New Issue
Block a user