Files
vollerei/vollerei/common/telemetry.py
tretrauit 4eba9e595b feat: implement telemetry blocking
Proper Linux support for telemetry blocking now.
2023-06-21 04:33:56 +07:00

32 lines
891 B
Python

import requests
import concurrent
from vollerei.utils import write_hosts
from vollerei.constants import TELEMETRY_HOSTS
def _check_telemetry(host: str) -> str | None:
try:
requests.get(f"https://{host}/", timeout=15)
except (requests.ConnectionError, requests.Timeout, requests.HTTPError):
return
return host
def check_telemetry() -> list[str]:
futures = []
with concurrent.futures.ThreadPoolExecutor() as executor:
for host in TELEMETRY_HOSTS:
futures.append(executor.submit(_check_telemetry, host))
hosts = []
for future in concurrent.futures.as_completed(futures):
host = future.result()
if host:
hosts.append(host)
return hosts
def block_telemetry(telemetry_list: list[str] = None):
if not telemetry_list:
telemetry_list = check_telemetry()
write_hosts(telemetry_list)