Banking / app.py
Luisnguyen1
lounder
c3421ec
from flask import Flask, request, send_file, jsonify
from gtts import gTTS
import io
from pydub import AudioSegment
app = Flask(__name__)
chuyenkhoan = []
@app.route('/webhook', methods=['POST'])
def webhook():
# Lấy dữ liệu JSON gửi đến
data = request.get_json()
# In dữ liệu nhận được ra console (hoặc xử lý theo nhu cầu)
print("Received webhook data:", data)
chuyenkhoan.append(data)
# Trả về phản hồi JSON cho phía gửi
return jsonify({"status": "success"}), 200
@app.route('/currentCK', methods=['GET'])
def currentCK():
# Trả về số lượng chuyển khoản hiện tại
return jsonify({"currentCK": len(chuyenkhoan)}), 200
@app.route('/lastCK', methods=['GET'])
def lastCK():
# trả về chuyển khoản cuối cùng
if len(chuyenkhoan) == 0:
return jsonify({"status": "no data"}), 404
last_transaction = chuyenkhoan[-1]
return jsonify(last_transaction), 200
# giao dien index kiem tra danh sach chuyen khoan
@app.route('/chuyenkhoan', methods=['GET'])
def get_chuyenkhoan():
# Trả về danh sách chuyển khoản dưới dạng JSON
return jsonify(chuyenkhoan), 200
# Giao diện chính
@app.route('/')
def index():
return '''
<h1>Chuyển Khoản</h1>
<p>Để xem danh sách chuyển khoản, hãy truy cập <a href="/chuyenkhoan">/chuyenkhoan</a></p>
'''
@app.route('/tts', methods=['GET'])
def tts():
text = request.args.get('text', '').strip()
if not text:
return jsonify({"error": "Bạn cần truyền tham số 'text'"}), 400
try:
# 1) Generate MP3 from gTTS
tts = gTTS(text=text, lang='vi')
mp3_buffer = io.BytesIO()
tts.write_to_fp(mp3_buffer)
mp3_buffer.seek(0)
# 2) Load into pydub, tăng gain +20 dB (tuỳ chỉnh)
sound = AudioSegment.from_file(mp3_buffer, format="mp3")
loud_sound = sound + 30 # +20 dB, bạn có thể tăng thêm nếu cần
# 3) Xuất lại MP3 vào buffer
out_buffer = io.BytesIO()
loud_sound.export(out_buffer, format="mp3")
out_buffer.seek(0)
# 4) Trả về buffer đã tăng gain
return send_file(
out_buffer,
mimetype='audio/mpeg',
as_attachment=False,
download_name='tts.mp3'
)
except Exception as e:
return jsonify({"error": str(e)}), 500
if __name__ == '__main__':
app.run(port=7860, host='0.0.0.0', debug=True)