Beispiel #1
0
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
Beispiel #2
0
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
Beispiel #3
0
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
Beispiel #4
0
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