ypedz-api / app.py
ypedz's picture
Update app.py
0191be6 verified
from flask import Flask, jsonify
from flask_socketio import SocketIO, emit, join_room, leave_room
from flask_cors import CORS
import os
import requests # Tambahan untuk nembak API KBBI
app = Flask(__name__)
app.config['SECRET_KEY'] = 'ypedz_private_key'
CORS(app, resources={r"/*": {"origins": "*"}})
socketio = SocketIO(app, cors_allowed_origins="*", async_mode='eventlet', max_http_buffer_size=110 * 1024 * 1024)
@app.route('/api-kbbi/api/v1/entry/<word>', methods=['GET'])
def get_kbbi(word):
try:
# Gunakan link asli yang kamu pakai di localhost (SUDAH TERBUKTI HIDUP)
target_url = f"https://kbbi.raf555.dev/api/v1/entry/{word}"
response = requests.get(target_url, timeout=5)
# Kirim balik datanya ke game Sekata
return response.text, response.status_code, {'Content-Type': 'application/json'}
except Exception as e:
return jsonify({"error": str(e)}), 500
# --- BAGIAN CHAT (SOCKET.IO) ---
@socketio.on('join_room')
def handle_join(data):
room = str(data.get('room', 'PUBLIC')).upper()
join_room(room)
@socketio.on('leave_room')
def handle_leave(data):
room = str(data.get('room', 'PUBLIC')).upper()
leave_room(room)
@socketio.on('broadcast_message')
def handle_message(data):
target_room = str(data.get('room', 'PUBLIC')).upper()
socketio.emit('receive_message', data, to=target_room)
if __name__ == '__main__':
# Paksa port 7860 dan hapus parameter unsafe yang tidak perlu untuk eventlet
socketio.run(app, host='0.0.0.0', port=7860)