def METHOD_NAME(cls):
    """Pull down Tor exit node list and save to internal attribute."""
    if cls._cache_lock.locked():
        return
    now = datetime.now(timezone.utc)
    if not cls._nodelist or (now - cls._last_cached).days > 1:
        with contextlib.suppress(ConnectionError):
            resp = httpx.get(
                cls._BASE_URL, timeout=get_http_timeout(), headers=mp_ua_header()
            )
            tor_raw_list = resp.content.decode()
            with cls._cache_lock:
                cls._nodelist = dict(cls._tor_splitter(tor_raw_list))
                cls._last_cached = datetime.now(timezone.utc)
    if not cls._nodelist:
        with contextlib.suppress(ConnectionError):
            resp = httpx.get(
                cls._ALT_URL, timeout=get_http_timeout(), headers=mp_ua_header()
            )
            tor_raw_list = resp.content.decode()
            with cls._cache_lock:
                node_dict = {"ExitNode": True, "LastStatus": now}
                cls._nodelist = {
                    node: node_dict for node in tor_raw_list.split("\n")
                }
                cls._last_cached = datetime.now(timezone.utc)