2.0 KiB
2.0 KiB
| inclusion |
|---|
| always |
Project Structure
Root Directory Layout
├── fetch_proxies.py # Main Python script - core functionality
├── pr.sh # Shell script for manual API testing
├── .env # Environment variables (API keys)
├── user_info.txt # User account information
├── README.md # Project documentation
└── .gitignore # Git ignore rules
Generated Output Files
├── proxies_raw.txt # Raw proxy format (host:port:user:pass)
├── proxies_http.txt # HTTP proxy URLs
├── proxies_socks5.txt # SOCKS5 proxy URLs
├── clash_config.yaml # Clash client configuration
├── singbox_config.json # SingBox client configuration
├── v2ray_config.json # V2Ray client configuration
└── v2ray_subscription.txt # Base64 encoded V2Ray subscription
Code Organization
Main Script (fetch_proxies.py)
- API Functions:
load_api_key(),get_download_token(),download_proxies() - Parsing Functions:
parse_proxies(),format_proxy_list() - Output Functions:
save_proxies(),save_*_config()for each client type - Config Generators:
generate_clash_config(),generate_singbox_config(),generate_v2ray_config()
Configuration Patterns
- All functions use UTF-8 encoding
- Error handling with descriptive Chinese messages
- Modular design - each client type has dedicated generator functions
- Consistent proxy data structure:
{'host', 'port', 'username', 'password'}
File Naming Conventions
- Snake_case for Python files and generated outputs
- Descriptive prefixes:
proxies_*for proxy lists,*_config.*for client configs - Standard extensions:
.py,.yaml,.json,.txt,.sh
Environment Management
.envfile for sensitive API keys- Environment variables as fallback:
TOKENorWEBSHARE_API_KEY - All sensitive data excluded from version control via
.gitignore