예제 #1
0
def _get_closest_memento_url(url, when=None, timegate_uri=None):
    """Get most recent memento for url."""
    if isinstance(memento_client, ImportError):
        raise memento_client

    if not when:
        when = datetime.datetime.now()

    mc = memento_client.MementoClient()
    if timegate_uri:
        mc.timegate_uri = timegate_uri

    retry_count = 0
    while retry_count <= config2.max_retries:
        try:
            memento_info = mc.get_memento_info(url, when)
            break
        except (requests.ConnectionError, MementoClientException) as e:
            error = e
            retry_count += 1
            sleep(config2.retry_wait)
    else:
        raise error

    mementos = memento_info.get('mementos')
    if not mementos:
        raise Exception('mementos not found for {0} via {1}'.format(
            url, timegate_uri))
    if 'closest' not in mementos:
        raise Exception('closest memento not found for {0} via {1}'.format(
            url, timegate_uri))
    if 'uri' not in mementos['closest']:
        raise Exception('closest memento uri not found for {0} via {1}'.format(
            url, timegate_uri))
    return mementos['closest']['uri'][0]
예제 #2
0
def _get_closest_memento_url(url, when=None, timegate_uri=None):
    """Get most recent memento for url."""
    if isinstance(memento_client, ImportError):
        raise memento_client

    if not when:
        when = datetime.datetime.now()

    mc = memento_client.MementoClient()
    if timegate_uri:
        mc.timegate_uri = timegate_uri

    memento_info = mc.get_memento_info(url, when)
    return memento_info.get('mementos').get('closest').get('uri')[0]
예제 #3
0
def _get_closest_memento_url(url, when=None, timegate_uri=None):
    """Get most recent memento for url."""
    if isinstance(memento_client, ImportError):
        raise memento_client

    if not when:
        when = datetime.datetime.now()

    mc = memento_client.MementoClient()
    if timegate_uri:
        mc.timegate_uri = timegate_uri

    memento_info = mc.get_memento_info(url, when)
    mementos = memento_info.get('mementos')
    if not mementos:
        raise Exception('mementos not found for {0} via {1}'.format(
            url, timegate_uri))
    if 'closest' not in mementos:
        raise Exception('closest memento not found for {0} via {1}'.format(
            url, timegate_uri))
    if 'uri' not in mementos['closest']:
        raise Exception('closest memento uri not found for {0} via {1}'.format(
            url, timegate_uri))
    return mementos['closest']['uri'][0]