| import asyncio |
| import logging |
| import sys |
| import os |
|
|
| |
| sys.path.append(os.path.join(os.path.dirname(__file__), "..")) |
|
|
| from app.hunter.strategies.github import GitHubStrategy |
| from app.hunter.strategies.ai import AIStrategy |
| from app.hunter.extractor import UniversalExtractor |
|
|
| logging.basicConfig(level=logging.INFO) |
| logger = logging.getLogger("manual_verification") |
|
|
|
|
| async def verify_github(): |
| print("\n--- Verifying GitHub Strategy ---") |
| strategy = GitHubStrategy() |
| urls = await strategy.discover() |
| print(f"Found {len(urls)} URLs from GitHub") |
| if urls: |
| print(f"Sample: {urls[0]}") |
| return len(urls) > 0 |
|
|
|
|
| async def verify_ai(): |
| print("\n--- Verifying AI Strategy ---") |
| strategy = AIStrategy() |
| urls = await strategy.discover() |
| print(f"Found {len(urls)} URLs from AI") |
| if urls: |
| print(f"Sample: {urls[0]}") |
| return ( |
| True |
| ) |
|
|
|
|
| async def verify_extractor(): |
| print("\n--- Verifying Extractor ---") |
| sample_content = """ |
| Here is a proxy: 1.1.1.1:80 |
| And a vmess: vmess://eyJhZGQiOiIxMjcuMC4wLjEiLCJwb3J0Ijo0NDN9 |
| """ |
| proxies = UniversalExtractor.extract_proxies(sample_content) |
| print(f"Extracted {len(proxies)} proxies") |
| for p in proxies: |
| print(f"- {p.protocol}://{p.ip}:{p.port}") |
| return len(proxies) >= 1 |
|
|
|
|
| async def main(): |
| print("STARTING MANUAL VERIFICATION") |
|
|
| gh_ok = await verify_github() |
| ai_ok = await verify_ai() |
| ext_ok = await verify_extractor() |
|
|
| print("\n--- SUMMARY ---") |
| print(f"GitHub Strategy: {'[OK]' if gh_ok else '[FAILED/Auth]'}") |
| print(f"AI Strategy: {'[OK]' if ai_ok else '[FAILED/Auth]'}") |
| print(f"Extractor: {'[OK]' if ext_ok else '[FAILED]'}") |
|
|
|
|
| if __name__ == "__main__": |
| asyncio.run(main()) |
|
|