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]
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]
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]