93 lines
2.1 KiB
Python
93 lines
2.1 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
GODCWAK v1.0
|
|
GPU-accelerated password recovery tool with proxy rotation.
|
|
|
|
Usage:
|
|
python main.py
|
|
GODCWAK.bat
|
|
"""
|
|
import logging
|
|
import sys
|
|
import os
|
|
|
|
# Add project root to path
|
|
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
|
|
|
|
# Configure logging
|
|
logging.basicConfig(
|
|
level=logging.INFO,
|
|
format="[%(asctime)s] %(levelname)s: %(message)s",
|
|
datefmt="%H:%M:%S",
|
|
)
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
def check_dependencies():
|
|
"""Check that critical dependencies are available."""
|
|
missing = []
|
|
|
|
try:
|
|
import customtkinter
|
|
except ImportError:
|
|
missing.append("customtkinter")
|
|
|
|
try:
|
|
import requests
|
|
except ImportError:
|
|
missing.append("requests")
|
|
|
|
try:
|
|
import numpy
|
|
except ImportError:
|
|
missing.append("numpy")
|
|
|
|
# GPU libraries are optional
|
|
try:
|
|
import cupy
|
|
logger.info("✅ CuPy detected — GPU acceleration available")
|
|
except ImportError:
|
|
logger.warning("⚠️ CuPy not installed — GPU acceleration disabled")
|
|
logger.warning(" Install with: pip install cupy-cuda12x")
|
|
|
|
try:
|
|
import numba
|
|
logger.info("✅ Numba detected")
|
|
except ImportError:
|
|
logger.warning("⚠️ Numba not installed — some optimizations disabled")
|
|
|
|
if missing:
|
|
logger.error(f"Missing required dependencies: {', '.join(missing)}")
|
|
logger.error("Install with: pip install -r requirements.txt")
|
|
return False
|
|
|
|
return True
|
|
|
|
|
|
def main():
|
|
"""Application entry point."""
|
|
logger.info("=" * 60)
|
|
logger.info(" GODCWAK v1.0")
|
|
logger.info("=" * 60)
|
|
|
|
if not check_dependencies():
|
|
input("\nPress Enter to exit...")
|
|
sys.exit(1)
|
|
|
|
try:
|
|
from src.gui.app import GODCWAKApp
|
|
|
|
app = GODCWAKApp()
|
|
logger.info("Application started successfully")
|
|
app.mainloop()
|
|
|
|
except Exception as e:
|
|
logger.error(f"Fatal error: {e}", exc_info=True)
|
|
input("\nPress Enter to exit...")
|
|
sys.exit(1)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|