'Downloads the present consensus and configures ourselves to use directory
mirrors, in addition to authorities.
:returns: :class:`~stem.descriptor.networkstatus.NetworkStatusDocumentV3`
from which we got the directory mirrors
:raises: **Exception** if unable to determine the directory mirrors'

def use_directory_mirrors(self):

    authorities = filter(HAS_V3IDENT, get_authorities().values())
    new_endpoints = set([(auth.address, auth.dir_port) for auth in authorities])
    consensus = list(self.get_consensus(document_handler=stem.descriptor.DocumentHandler.DOCUMENT).run())[0]
    for desc in consensus.routers.values():
        if (Flag.V2DIR in desc.flags):
            new_endpoints.add((desc.address, desc.dir_port))
    self._endpoints = list(new_endpoints)
    return consensus
