import base64
import json
import requests


class VerificationCodeOcr:
    """
    1、用于识别数字二维码
    2、本方法使用的是第三方识别接口（图鉴），因此需要账号和密码
    3、通过验证码获取接口获取到验证码之后需保存到png文件，再使用此类进行识别
    filename：文件
    username：图鉴系统用户名
    password：图鉴系统密码
    """

    def __init__(self, filename, username, password):
        self.filename = filename
        self.username = username
        self.password = password

    def base64_api(self):
        with open(self.filename, 'rb') as f:
            base64_data = base64.b64encode(f.read())
            b64 = base64_data.decode()
        data = {"username": self.username, "password": self.password, "typeid": 1, "image": b64}
        result = json.loads(requests.post(r"http://api.ttshitu.com/predict", json=data).text)
        if result['success']:
            return result["data"]["result"]
        else:
            return result["message"]
        return ""


if __name__ == '__main__':
    print(VerificationCodeOcr(r"air_case/cmdc_login/多彩商城登录.air/verifycode.png","rainbow123","rainbow123").base64_api())
