def _respond(data, mimetype, status=200): response = Response(data, mimetype=mimetype) response.charset = app.config['CHARSET'] response.status_code = status response.headers.add('Expires', 'Thu, 01 Jan 1970 00:00:00 GMT') response.headers.add('Cache-control', 'no-cache, must-revalidate') return response
def _respond(data, mimetype, status=200): response = Response(data, mimetype=mimetype) response.charset = app.config['CHARSET'] response.status_code = status response.headers.add('Expires', 'Thu, 01 Jan 1970 00:00:00 GMT') response.headers.add('Cache-control', 'no-cache, must-revalidate') response.headers.add('Access-Control-Allow-Origin', '*') response.headers.add('Access-Control-Allow-Headers', 'Content-Type, Content-Length') return response
def check_dialog_record(): response = Response() trick = request.args.get("trick") if trick is None: return str({ "state": "error", "sentence": "parameter [trick] not exist." }) file_names = os.listdir(TRICKS_PATH) if trick not in file_names: return str({"state": "error", "sentence": "not exist [trick]."}) else: domain_file = os.listdir(TRICKS_PATH + '/' + trick + '/domain/') domain_file_info = {} writer = csv.writer(response.stream) fileHeader = ['场景', '话术文本', '录音名'] writer.writerow(fileHeader) writer.writerow( ["开场声音", "喂?您好~", trick + get_hash_code("喂?您好~") + '.pcm']) writer.writerow( ["等待超时", "您能听的清楚么", trick + get_hash_code("您能听的清楚么") + '.pcm']) for file in domain_file: with open(TRICKS_PATH + '/' + trick + '/domain/' + file) as json_file: data = json.load(json_file) for k, v in data.items(): stage = (file.split('.')[0] + '' + k) sentence = v['sentence'] name = trick + get_hash_code(sentence) + '.pcm' domain_file_info.update({stage: sentence}) writer.writerow([stage, sentence, name]) json_file.close() with open(TRICKS_PATH + '/' + trick + '/qa/qa.json') as qa: data = json.load(qa) for k, v in data.items(): stage1 = 'qa' + k sentence1 = v['sentence'] for k, v in domain_file_info.items(): stage = stage1 + '+' + k sentence = sentence1 + v name = trick + get_hash_code(sentence) + '.pcm' writer.writerow([stage, sentence, name]) qa.close() response.mimetype = 'text/csv' response.charset = 'UTF-8' response.headers = { 'Content-disposition': 'attachment; filename=' + trick + datetime.datetime.today().strftime('%Y%m%d') + '.csv;' } return response
def get_dialog_record(): response = Response() trick = request.args.get("trick") file_format = request.args.get("file_format") if trick is None: return str({ "state": "error", "sentence": "parameter [trick] not exist." }) file_names = os.listdir(TRICKS_PATH) if trick not in file_names: return str({"state": "error", "sentence": "not exist [trick]."}) else: domain_file = os.listdir(TRICKS_PATH + '/' + trick + '/domain/') domain_file_info = {} fileHeader = ['场景', '话术文本', '录音名'] rows = [] rows.append(fileHeader) rows.append(["开场声音", "喂?您好~", trick + get_hash_code("喂?您好~") + '.pcm']) rows.append( ["等待超时", "您能听的清楚么", trick + get_hash_code("您能听的清楚么") + '.pcm']) for file in domain_file: with open(TRICKS_PATH + '/' + trick + '/domain/' + file) as json_file: data = json.load(json_file) for k, v in data.items(): stage = (file.split('.')[0] + '' + k) sentence = v['sentence'] name = trick + get_hash_code(sentence) + '.pcm' domain_file_info.update({stage: sentence}) rows.append([stage, sentence, name]) json_file.close() with open(TRICKS_PATH + '/' + trick + '/qa/qa.json') as qa: data = json.load(qa) for k, v in data.items(): stage1 = 'qa' + k sentence = v['sentence'] name = trick + get_hash_code(sentence) + '.pcm' rows.append([stage1, sentence, name]) qa.close() if file_format == "csv": writer = csv.writer(response.stream) for i in rows: writer.writerow(i) response.mimetype = 'text/csv' response.charset = 'gbk' response.headers = { 'Content-disposition': 'attachment; filename=' + trick + datetime.datetime.today().strftime('%Y%m%d') + '.csv;' } elif file_format == "xls": wb = xlwt.Workbook() sheet = wb.add_sheet("1") rows.insert(0, ['场景', '话术文本', '录音名']) for i in range(len(rows)): sheet.write(i, 0, rows[i][0]) sheet.write(i, 1, rows[i][1]) sheet.write(i, 2, rows[i][2]) wb.save(response.stream) response.mimetype = 'application/x-xls' response.charset = 'gbk' response.headers = { 'Content-disposition': 'attachment; filename=' + trick + datetime.datetime.today().strftime('%Y%m%d') + '.xls;' } elif file_format == "xlsx": output = io.BytesIO() wb = xlsxwriter.Workbook(output, {'in_memory': True}) sheet = wb.add_worksheet() rows.insert(0, ['场景', '话术文本', '录音名']) for i in range(len(rows)): sheet.write(i, 0, rows[i][0]) sheet.write(i, 1, rows[i][1]) sheet.write(i, 2, rows[i][2]) wb.close() output.seek(0) response.stream.write(output.read()) response.mimetype = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' response.charset = 'gbk' response.headers = { 'Content-disposition': 'attachment; filename=' + trick + datetime.datetime.today().strftime('%Y%m%d') + '.xlsx;' } else: return str({"state": "error", "sentence": "no this file format."}) return response