瀏覽代碼

use dateparser for parsing, let it handle error

apkallum 5 年之前
父節點
當前提交
b7785c4138
共有 3 個文件被更改,包括 7 次插入6 次删除
  1. 4 4
      archivebox/index/schema.py
  2. 2 2
      archivebox/util.py
  3. 1 0
      setup.py

+ 4 - 4
archivebox/index/schema.py

@@ -190,10 +190,10 @@ class Link:
             for key, val in json_info.items()
             if key in cls.field_names()
         }
-        try:
-            info['updated'] = int(parse_date(info.get('updated'))) # Cast to int which comes with rounding down
-        except (ValueError, TypeError):
-            info['updated'] = None
+        # try:
+        info['updated'] = parse_date(info.get('updated')) # Cast to int which comes with rounding down
+        # except (ValueError, TypeError):
+        #     info['updated'] = None
         info['sources'] = info.get('sources') or []
 
         json_history = info.get('history') or {}

+ 2 - 2
archivebox/util.py

@@ -9,7 +9,7 @@ from hashlib import sha256
 from urllib.parse import urlparse, quote, unquote
 from html import escape, unescape
 from datetime import datetime
-from dateutil import parser as dateparser
+from dateparser import parse as dateparser
 
 import requests
 from base32_crockford import encode as base32_encode                            # type: ignore
@@ -144,7 +144,7 @@ def parse_date(date: Any) -> Optional[datetime]:
         date = str(date)
 
     if isinstance(date, str):
-        return dateparser.parse(date)
+        return dateparser(date)
 
     raise ValueError('Tried to parse invalid date! {}'.format(date))
 

+ 1 - 0
setup.py

@@ -43,6 +43,7 @@ setuptools.setup(
         "django==3.0.7",
         "django-extensions==2.2.9",
 
+        "dateparser",
         "ipython",
         "youtube-dl",
         "python-crontab==2.5.1",