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/', 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)