import requests from flask import Flask, request, jsonify import socket from requests.adapters import HTTPAdapter from urllib3.util.retry import Retry app = Flask(__name__) # Define the request URLs token_url = "https://spuckhogycrxcbomznwo.supabase.co/auth/v1/token?grant_type=refresh_token" gpt_url = "https://not-diamond-workers.t7-cc4.workers.dev/stream-message" # Define the headers headerss = { "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InNwdWNraG9neWNyeGNib216bndvIiwicm9sZSI6ImFub24iLCJpYXQiOjE3MDcyNDYwMzksImV4cCI6MjAyMjgyMjAzOX0.tvlGT7NZY8bijMjNIu1WhAtPnSKuDeYhtveo4DRt6xg", "apikey": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InNwdWNraG9neWNyeGNib216bndvIiwicm9sZSI6ImFub24iLCJpYXQiOjE3MDcyNDYwMzksImV4cCI6MjAyMjgyMjAzOX0.tvlGT7NZY8bijMjNIu1WhAtPnSKuDeYhtveo4DRt6xg", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "Content-Type": "application/json;charset=UTF-8" } headers = {"Content-Type": "application/json"} # Initial tokens access_token = "eyJhbGciOiJIUzI1NiIsImtpZCI6Im1ZMmorY1dRdWFNTEp3d1AiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJodHRwczovL3NwdWNraG9neWNyeGNib216bndvLnN1cGFiYXNlLmNvL2F1dGgvdjEiLCJzdWIiOiI1NzRjZDQ1OS1jNDFiLTQ3MTgtODRlNi0xZWRhNGZiZDI2MWUiLCJhdWQiOiJhdXRoZW50aWNhdGVkIiwiZXhwIjoxNzMyMzY0NzEwLCJpYXQiOjE3MzIzNjExMTAsImVtYWlsIjoiYWxob29yc2hvcHBAZ21haWwuY29tIiwicGhvbmUiOiIiLCJhcHBfbWV0YWRhdGEiOnsicHJvdmlkZXIiOiJnb29nbGUiLCJwcm92aWRlcnMiOlsiZ29vZ2xlIl19LCJ1c2VyX21ldGFkYXRhIjp7ImF2YXRhcl91cmwiOiJodHRwczovL2xoMy5nb29nbGV1c2VyY29udGVudC5jb20vYS9BQ2c4b2NMeVN2MUtwakxHMnNTMm44bGtwNzBqSWRid1ZDRTFqWjNEOWQ4c3RSNm5Xb1JVb3c9czk2LWMiLCJlbWFpbCI6ImFsaG9vcnNob3BwQGdtYWlsLmNvbSIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJmdWxsX25hbWUiOiJBbGhvb3IgU2hvcHAiLCJpc3MiOiJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20iLCJuYW1lIjoiQWxob29yIFNob3BwIiwicGhvbmVfdmVyaWZpZWQiOmZhbHNlLCJwaWN0dXJlIjoiaHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EvQUNnOG9jTHlTdjFLcGpMRzJzUzJuOGxrcDcwaklkYndWQ0UxalozRDlkOHN0UjZuV29SVW93PXM5Ni1jIiwicHJvdmlkZXJfaWQiOiIxMDE3NjY0MjA3Nzk0MjU0OTgwNDYiLCJzdWIiOiIxMDE3NjY0MjA3Nzk0MjU0OTgwNDYifSwicm9sZSI6ImF1dGhlbnRpY2F0ZWQiLCJhYWwiOiJhYWwxIiwiYW1yIjpbeyJtZXRob2QiOiJvYXV0aCIsInRpbWVzdGFtcCI6MTczMjM2MTAxNn1dLCJzZXNzaW9uX2lkIjoiZWZlNTRmMzgtYjFhYS00NjNmLThhODgtM2JiOWVjMTVmYTlkIiwiaXNfYW5vbnltb3VzIjpmYWxzZX0.l753c1oBa75Y7EoW1ZikQ7ki5BBm3AQWT7bL18sziFM" refresh_token = "VW2ol3sRN7S_-LqLtBE_fQ" # Custom DNS resolver function def set_custom_dns(): original_create_connection = socket.create_connection def custom_create_connection(address, *args, **kwargs): host, port = address if host == "not-diamond-workers.t7-cc4.workers.dev": host = "8.8.8.8" # Google's DNS server return original_create_connection((host, port), *args, **kwargs) socket.create_connection = custom_create_connection # Apply the custom DNS resolver set_custom_dns() # Create a session with retries def create_session(): session = requests.Session() retries = Retry(total=5, backoff_factor=1, status_forcelist=[500, 502, 503, 504]) adapter = HTTPAdapter(max_retries=retries) session.mount("http://", adapter) session.mount("https://", adapter) return session session = create_session() # Route to refresh tokens and handle GPT requests @app.route('/get-response', methods=['POST']) def get_response(): data = request.json user_input = data.get('message', '') if not user_input: return jsonify({"error": "Message cannot be empty"}), 400 try: gpt_headers = { "Authorization": f"Bearer {access_token}", "Content-Type": "application/json" } payload = { "messages": user_input, "model": "chatgpt-4o-latest", "temperature": 0.9 } response = session.post(gpt_url, headers=gpt_headers, json=payload) response.raise_for_status() return jsonify({"response": response.json()}), 200 except requests.exceptions.HTTPError as e: return jsonify({"error": "HTTP error", "details": str(e)}), e.response.status_code except requests.exceptions.RequestException as e: return jsonify({"error": "Request failed", "details": str(e)}), 500 except Exception as e: return jsonify({"error": "An unexpected error occurred", "details": str(e)}), 500 # Route to test DNS resolution @app.route('/test-dns', methods=['GET']) def test_dns(): try: # Force resolve the domain socket.gethostbyname('not-diamond-workers.t7-cc4.workers.dev') return jsonify({"status": "success", "message": "DNS resolution successful"}), 200 except socket.gaierror as e: return jsonify({"status": "failure", "error": str(e)}), 500 if __name__ == '__main__': app.run(host='0.0.0.0', port=7860)