from flask import Flask, render_template, request, jsonify
import base64
import proj_utils.utils as utils # 导入你的工具模块

app = Flask(__name__)


@app.route('/')
def index():
    """渲染主页模板"""
    return render_template('index.html')

@app.route('/en-de-code')
def index():
    """渲染主页模板"""
    return render_template('en-de-code-index.html')

@app.route('/decode', methods=['POST'])
def decode_endpoint():
    """处理解码请求的 API 端点"""
    data = request.get_json()
    base64_input = data.get('input_text', '').strip()

    if not base64_input:
        return jsonify({'success': False, 'error': '输入不能为空。'})

    try:
        # 1. Base64 解码
        decoded_bytes = base64.b64decode(base64_input)
    except Exception as e:
        return jsonify({'success': False, 'error': f'Base64 解码失败: {str(e)}'})

    # 2. 使用 utils 模块中的 detect_and_decode 函数进行编码检测和解码
    decoded_result = utils.detect_and_decode(decoded_bytes)
    # 返回成功的 JSON 响应
    return jsonify({
        'success': True,
        'result': decoded_result,
    })

@app.route('/encode', methods=['POST'])
def encode_endpoint():
    """处理编码请求的 API 端点"""
    data = request.get_json()
    text_to_encode = data.get('text_to_encode', '')
    encoding = data.get('encoding', 'utf-8') # 默认使用 UTF-8

    if text_to_encode is None:
         return jsonify({'success': False, 'error': '输入不能为空。'})

    try:
        # 1. 根据指定编码格式将文本转换为字节数组
        encoded_bytes = text_to_encode.encode(encoding)
    except LookupError:
        return jsonify({'success': False, 'error': f'未知的编码格式: {encoding}'})
    except UnicodeEncodeError as e:
        return jsonify({'success': False, 'error': f'编码失败: {str(e)}'})

    # 2. 将字节数组进行 Base64 编码
    encoded_string = base64.b64encode(encoded_bytes).decode('ascii')

    # 返回成功的 JSON 响应
    return jsonify({
        'success': True,
        'result': encoded_string
    })
# pip install pipreqs
# pipreqs D:\UserData\Desktop\demo\python_script\base64-de-in-code
if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0', port=5000)