File size: 3,351 Bytes
1567f17 c93c030 9ff2ebc e1d5167 1567f17 e1d5167 383b9fb 0884e34 809fc8b 0884e34 383b9fb e1d5167 383b9fb 1567f17 6c7fa93 9e9d5fc 5b858d3 6c7fa93 36034ab d11001a 9b87428 36034ab 6c7fa93 39fc943 6c7fa93 1567f17 f00f112 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 |
from flask import Flask, jsonify
from flask_cors import CORS
import subprocess
import IP2Location
app = Flask(__name__)
CORS(app) # Enable CORS for all routes
# Load both IPv4 & IPv6 BIN databases
IPV4_BIN = "PX2.LITE.IPV4.BIN"
IPV6_BIN = "PX2.LITE.IPV6.BIN"
db_ipv4 = ip2location.IP2Location(IPV4_BIN)
db_ipv6 = ip2location.IP2Location(IPV6_BIN)
@app.route('/')
def home():
return ""
# Define ECPM values for different countries based on timezones
ECPM_VALUES = {
"America/New_York": 60, # USA (Eastern)
"America/Chicago": 58, # USA (Central)
"America/Denver": 55, # USA (Mountain)
"America/Los_Angeles": 52, # USA (Pacific)
"Europe/London": 70, # UK
"Europe/Paris": 65, # France
"Europe/Berlin": 67, # Germany
"Europe/Zurich": 66, # Switzerland
"Europe/Copenhagen": 64, # Denmark
"Europe/Madrid": 63, # Spain
"Europe/Rome": 62, # Italy
"Europe/Stockholm": 68, # Sweden
"Europe/Oslo": 69, # Norway
"America/Sao_Paulo": 45, # Brazil
"Australia/Sydney": 75, # Australia
"Europe/Chisinau": 55, # Moldova
"Europe/Amsterdam": 66, # Netherlands
"Europe/Lisbon": 61, # Portugal
"Europe/Brussels": 64, # Belgium
"Pacific/Auckland": 80 # New Zealand
}
@app.route('/get_ecpm_player', methods=['GET'])
def get_ecpm():
# Get timezone from request
user_timezone = request.args.get('timezone', 'Unknown')
# Get corresponding ECPM value
ecpm_value = ECPM_VALUES.get(user_timezone, 50) # Default to 50 if not found
return jsonify({"ecpm": ecpm_value, "timezone": user_timezone})
def check_proxy(ip):
try:
# Use correct DB for IPv4 or IPv6
db = db_ipv6 if ":" in ip else db_ipv4
rec = db.get_all(ip)
# If ProxyType is not empty, it's a proxy
return rec.proxy_type not in ["", "-"]
except:
return False
@app.route("/check-ip", methods=["GET"])
def check_ip():
user_ip = request.headers.get("X-Forwarded-For", request.remote_addr)
is_proxy = check_proxy(user_ip)
return jsonify({
"ip": user_ip,
"proxy_detected": is_proxy
})
@app.route('/get_latest_version', methods=['GET'])
def get_latest_version():
latest_version = "31.0" # Use snake_case for internal Python variables
return jsonify({'latestVersion': latest_version}) # Use camelCase in JSON response
@app.route('/get_latest_version2', methods=['GET'])
def get_latest_version2():
latest_version = "7.0" # Use snake_case for internal Python variables
return jsonify({'latestVersion': latest_version}) # Use camelCase in JSON response
# API endpoint returning hardcoded features
@app.route('/api/features')
def get_features():
features = [
# {"name": "π Fast", "description": "Quick response time with optimized performance."}
]
return jsonify(features)
# API endpoint returning hardcoded features
@app.route('/api/features2')
def get_features2():
features = [
# {"name": "π Fast", "description": "Quick response time with optimized performance."}
]
return jsonify(features)
if __name__ == '__main__':
subprocess.Popen(["python", "wk.py"]) # Start awake.py
app.run(host='0.0.0.0', port=7860) |