#!/usr/bin/env python3 import re, subprocess, sys t = open("/var/www/wifi-otantik/config.php").read() def g(k): m = re.search(r"\$" + k + r"\s*=\s*['\"]([^'\"]+)", t) return m.group(1) if m else "" host = g("db_host") or "localhost" user = g("db_user") pw = g("db_pass") name = g("db_name") sqls = [ "SHOW COLUMNS FROM tbl_plans", "SHOW COLUMNS FROM tbl_routers", "SHOW COLUMNS FROM tbl_otantik_peers", "SHOW COLUMNS FROM tbl_bandwidth", "SHOW COLUMNS FROM tbl_pool", "SELECT id,name,slug,owner_id,ip_address,username,ssid,ros_version,pppoe_interface,enabled FROM tbl_routers", "SELECT id,router_id,owner_id,wg_ip,status FROM tbl_otantik_peers", "SELECT id,name_plan,type,routers,price,validity,validity_unit,shared_users FROM tbl_plans WHERE routers LIKE '%enjoy%' OR routers LIKE '%Otantik%' OR routers LIKE '%Hub%'", "SELECT id,pool_name,local_ip,range_ip,routers FROM tbl_pool", "SELECT id,username,owner_id FROM tbl_users WHERE id IN (1,8) OR owner_id IN (1,8) LIMIT 20", ] for sql in sqls: print("====", sql[:80]) r = subprocess.run(["mysql","-h",host,"-u",user,f"-p{pw}",name,"-e",sql], capture_output=True, text=True) sys.stdout.write(r.stdout) if r.returncode: sys.stderr.write(r.stderr.replace(pw,"***")) print()