from flask import Flask, render_template_string, Response import requests import base64 import csv app = Flask(__name__) # Timeout kam kar diya taake app latkay nahi VPNGATE_API_URL = "http://www.vpngate.net/api/iphone/" def get_vpn_servers(): servers = [] try: headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"} # Timeout sirf 3 second rakha hai response = requests.get(VPNGATE_API_URL, headers=headers, timeout=3) if response.status_code != 200: return [], "Server Busy (Error 200)" text_data = response.text lines = [line for line in text_data.split('\n') if not line.startswith('*')] reader = csv.DictReader(lines) for row in reader: if row and 'OpenVPN_ConfigData_Base64' in row: try: servers.append({ 'host': row['HostName'], 'ip': row['IP'], 'country': row['CountryLong'], 'speed': "Fast", 'ping': row['Ping'], 'config': row['OpenVPN_ConfigData_Base64'] }) except: pass return servers[:20], "" # Sirf top 20 servers layega taake load kam ho except Exception as e: # Agar error aaye to console mein dikhaye print(f"ERROR AYA HAI: {e}") return [], f"Connection Failed: {str(e)}" # HTML Design HTML_TEMPLATE = """
⚠️ Status: {{ error }}
Agar list nahi aa rahi, to 'Refresh' karein.
{% endif %} {% for server in servers %} {% endfor %} """ @app.route('/') def index(): servers, error = get_vpn_servers() return render_template_string(HTML_TEMPLATE, servers=servers, error=error) @app.route('/download/