client.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import asyncio
  2. import httpx
  3. import sys
  4. from pathlib import Path
  5. sys.path.append(str(Path(__file__).parent.parent.absolute()))
  6. print(sys.path)
  7. from config.logu import get_logger
  8. from routers.mihomo import MihomoMetaWithURL
  9. logger = get_logger('client',file=False)
  10. BASE_URL = "http://localhost:5010"
  11. def get_proxies() -> dict:
  12. url = f"{BASE_URL}/subscriptions/proxies"
  13. response = httpx.get(url)
  14. return response.json()
  15. def startup():
  16. url = f"{BASE_URL}/mihomo/startup"
  17. response = httpx.post(url,timeout=30)
  18. response.raise_for_status() # 确保请求成功
  19. return response.json()
  20. def proxy_delay(provider_name, external_controller: str):
  21. '''
  22. 失败: {'message': 'get delay: all proxies timeout'}
  23. 成功: {'自动选择': 34, '🇦🇺澳大利亚悉尼': 159, '🇦🇺澳大利亚悉尼2': 1577,...}
  24. '''
  25. # http://127.0.0.1:9351/group/FSCloud/delay?url=https%3A%2F%2Fwww.gstatic.com%2Fgenerate_204&timeout=2000
  26. url = f"http://{external_controller}/group/{provider_name}/delay?url=https%3A%2F%2Fwww.gstatic.com%2Fgenerate_204&timeout=2000"
  27. response = httpx.get(url,timeout=30)
  28. return response.json()
  29. def main():
  30. res = startup()
  31. for item in res:
  32. logger.info(f"服务商: {item}")
  33. res = proxy_delay(item.get('provider_name'),item.get('external_controller'))
  34. logger.info(f"延迟: {res}")
  35. if __name__ == "__main__":
  36. main()