ProxyCat/config/getip.py
本间白猫 1dec6f4d8d Update
2025-02-06 09:43:24 +08:00

48 lines
1.5 KiB
Python

from modules.modules import get_message, load_config
import requests
import time
def newip():
config = load_config()
language = config.get('language', 'cn')
def handle_error(error_type, details=None):
error_msg = 'whitelist_error' if error_type == 'whitelist' else 'proxy_file_not_found'
print(get_message(error_msg, language, str(details)))
raise ValueError(f"{error_type}: {details}")
try:
url = config.get('getip_url', '')
username = config.get('proxy_username', '')
password = config.get('proxy_password', '')
if not url:
raise ValueError('getip_url')
def get_proxy():
response = requests.get(url)
response.raise_for_status()
return response.text.split("\r\n")[0]
proxy = get_proxy()
if proxy == "error000x-13":
appKey = ""
anquanma = ""
whitelist_url = f"https://sch.shanchendaili.com/api.html?action=addWhiteList&appKey={appKey}&anquanma={anquanma}"
requests.get(whitelist_url).raise_for_status()
time.sleep(1)
proxy = get_proxy()
if username and password:
return f"socks5://{username}:{password}@{proxy}"
return f"socks5://{proxy}"
except requests.RequestException as e:
handle_error('request', e)
except ValueError as e:
handle_error('config', e)
except Exception as e:
handle_error('unknown', e)