Example #1
0
File: app.py Project: zxjlm/Poirot
def font_file_cracker():
    try:
        file = request.files.get('font_file')
        type_ = request.form.get('type')
    except Exception as _e:
        return jsonify({'code': 400, 'msg': f'lose args,{_e}', 'res': {}})

    filename = re.sub('[(()) ]', '', file.filename)
    if not os.path.exists('./font_collection'):
        os.mkdir('./font_collection')

    file.save('./font_collection/' + filename)

    if config.is_online and not check_file('./font_collection/' + filename):
        return jsonify({'code': 300, 'msg': 'Please use example file(*^_^*)'})

    ProgressBar.init()

    res = ocr_processor('./font_collection/' + filename)

    if type_ == 'html':
        font_dict = {}
        for foo in res:
            font_dict[foo['name']] = foo['ocr_result']

        return jsonify({
            'code': 200,
            'html': render_template('images.html', result=res),
            'font_dict': font_dict
        })
    else:
        return jsonify({'code': 200, 'msg': 'success', 'res': res})
Example #2
0
def font_file_cracker():
    """
    接受字体文件,返回破解结果
    :return:
    """
    file_suffix = None
    try:
        file = request.files.get('font_file')
        type_ = request.form.get('type')
    except Exception as _e:
        return jsonify({'code': 400, 'msg': f'lose args,{_e}', 'res': {}})

    filename = re.sub('[(()) ]', '', file.filename)
    file.save('./font_collection/' + filename)

    if config.is_online and not check_file('./font_collection/' + filename):
        return jsonify({'code': 300, 'msg': 'Please use example file(*^_^*)'})

    ProgressBar.init()

    try:
        res = ocr_processor(filename, request.remote_addr, has_pic_detail=True)

        if type_ == 'html':
            font_dict = {}
            for idx, foo in enumerate(res):
                if foo['ocr_result']:
                    res[idx]['ocr_result'] = foo['ocr_result'][0]['simPred']
                    font_dict[foo['name']] = foo['ocr_result']
                else:
                    res[idx]['ocr_result'] = 'undefined'
                    font_dict[foo['name']] = 'undefined'

            return jsonify({
                'code': 200,
                'html': render_template('images.html', result=res),
                'font_dict': font_dict
            })
        else:
            return jsonify({'code': 200, 'msg': 'success', 'res': res})

    except Exception as _e:
        if file_suffix:
            shutil.rmtree('./fontforge_output/' + file_suffix)
        return jsonify({'code': 400, 'msg': f'{_e}', 'res': {}})