| """ | |
| Sherlock OSINT Tool - Main Application | |
| A modular OSINT tool for username searching across multiple platforms. | |
| """ | |
| import sys | |
| import os | |
| from pathlib import Path | |
| # Add src to path for imports | |
| sys.path.insert(0, str(Path(__file__).parent / "src")) | |
| from sherlock.web.gradio_interface import SherlockGradioInterface | |
| from sherlock.config.settings import settings | |
| def main(): | |
| """Main function to launch the Sherlock OSINT tool.""" | |
| print("π Starting Sherlock OSINT Tool...") | |
| print(f"π Configuration:") | |
| print(f" - Debug Mode: {settings.debug}") | |
| print(f" - Max Concurrent Requests: {settings.max_concurrent_requests}") | |
| print(f" - Request Timeout: {settings.request_timeout}s") | |
| print(f" - Server: {settings.gradio_server_name}:{settings.gradio_server_port}") | |
| print(f" - Share: {settings.gradio_share}") | |
| print() | |
| try: | |
| # Create and launch interface | |
| interface = SherlockGradioInterface() | |
| # For Hugging Face Spaces, use default settings | |
| interface.launch( | |
| server_name="0.0.0.0", | |
| server_port=7860, | |
| share=False, | |
| debug=False | |
| ) | |
| except KeyboardInterrupt: | |
| print("\nπ Sherlock OSINT Tool stopped by user") | |
| except Exception as e: | |
| print(f"β Error starting Sherlock OSINT Tool: {e}") | |
| sys.exit(1) | |
| if __name__ == "__main__": | |
| main() | |