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})
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': {}})