Просмотр исходного кода

feat: Fallback to link detail when there is an issue loading a link from main index

Cristian 5 лет назад
Родитель
Сommit
9815241b78
1 измененных файлов с 6 добавлено и 1 удалено
  1. 6 1
      archivebox/index/json.py

+ 6 - 1
archivebox/index/json.py

@@ -3,6 +3,7 @@ __package__ = 'archivebox.index'
 import os
 import sys
 import json as pyjson
+from pathlib import Path
 
 from datetime import datetime
 from typing import List, Optional, Iterator, Any
@@ -49,7 +50,11 @@ def parse_json_main_index(out_dir: str=OUTPUT_DIR) -> Iterator[Link]:
         with open(index_path, 'r', encoding='utf-8') as f:
             links = pyjson.load(f)['links']
             for link_json in links:
-                yield Link.from_json(link_json)
+                try:
+                    yield Link.from_json(link_json)
+                except KeyError:
+                    detail_index_path = OUTPUT_DIR / Path(f"archive/{link_json['timestamp']}")
+                    yield parse_json_link_details(str(detail_index_path))
 
     return ()