Browse Source

[mod] science category: various update of about PR 1705

Alexandre Flament 2 years ago
parent
commit
d6446be38f

+ 3 - 7
docs/dev/engine_overview.rst

@@ -369,13 +369,9 @@ the parameter ``template`` must be set to the desired type.
      - :py:class:`str`
      - volume number
 
-   * - start_page
-     - :py:class:`int`
-     - page number where the article starts
-
-   * - end_page
-     - :py:class:`int`
-     - page number where the article ends
+   * - pages
+     - :py:class:`str`
+     - page range where the article is
 
    * - number
      - :py:class:`str`

+ 2 - 2
searx/engines/crossref.py

@@ -33,10 +33,10 @@ def response(resp):
         if record_type == 'book-chapter':
             title = record['container-title'][0]
             if record['title'][0].lower().strip() != title.lower().strip():
-                title = title + ' (' + record['title'][0] + ')'
+                title = html_to_text(title) + ' (' + html_to_text(record['title'][0]) + ')'
             journal = None
         else:
-            title = record['title'][0]
+            title = html_to_text(record['title'][0])
             journal = record.get('container-title', [None])[0]
         url = record.get('resource', {}).get('primary', {}).get('URL') or record['URL']
         authors = [author.get('given', '') + ' ' + author.get('family', '') for author in record.get('author', [])]

+ 1 - 2
searx/engines/semantic_scholar.py

@@ -48,7 +48,6 @@ def request(query, params):
 def response(resp):
     res = loads(resp.text)
     results = []
-
     for result in res['results']:
         url = result.get('primaryPaperLink', {}).get('url')
         if not url and result.get('links'):
@@ -72,7 +71,7 @@ def response(resp):
         # pick for the first alternate link, but not from the crawler
         pdf_url = None
         for doc in result.get('alternatePaperLinks', []):
-            if doc['linkType'] != 'crawler':
+            if doc['linkType'] not in ('crawler', 'doi'):
                 pdf_url = doc['url']
                 break
 

+ 1 - 2
searx/engines/springer.py

@@ -58,8 +58,7 @@ def response(resp):
                 'authors': authors,
                 'doi': record.get('doi'),
                 'journal': record.get('publicationName'),
-                'start_page': record.get('start_page'),
-                'end_page': record.get('end_page'),
+                'pages': record.get('start_page') + '-' + record.get('end_page'),
                 'tags': tags,
                 'issn': [record.get('issn')],
                 'isbn': [record.get('isbn')],

+ 2 - 1
searx/settings.yml

@@ -412,7 +412,8 @@ engines:
   - name: crossref
     engine: crossref
     shortcut: cr
-    timeout: 10
+    timeout: 30
+    disable: true
 
   - name: yep
     engine: json_engine

+ 2 - 2
searx/templates/simple/result_templates/paper.html

@@ -13,8 +13,8 @@
           .{{- result.number -}}
         {%- endif -%}
       {%- endif -%}
-      {%- if result.start_page -%}
-         {{- result.start_page -}} / {{- result.end_page -}}
+      {%- if result.pages -%}
+         {{- result.pages -}}
       {%- endif -%}
       </span>
     </div>

+ 2 - 2
searx/webapp.py

@@ -77,7 +77,7 @@ from searx.webutils import (
     is_hmac_of,
     is_flask_run_cmdline,
     group_engines_in_tab,
-    searxng_format_date,
+    searxng_l10n_timespan,
 )
 from searx.webadapter import (
     get_search_query_from_webapp,
@@ -723,7 +723,7 @@ def search():
             except ValueError:
                 result['publishedDate'] = None
             else:
-                result['publishedDate'] = searxng_format_date(result['publishedDate'])
+                result['publishedDate'] = searxng_l10n_timespan(result['publishedDate'])
 
         # set result['open_group'] = True when the template changes from the previous result
         # set result['close_group'] = True when the template changes on the next result

+ 7 - 1
searx/webutils.py

@@ -141,7 +141,13 @@ def highlight_content(content, query):
     return content
 
 
-def searxng_format_date(dt: datetime):  # pylint: disable=invalid-name
+def searxng_l10n_timespan(dt: datetime) -> str:  # pylint: disable=invalid-name
+    """Returns a human-readable and translated string indicating how long ago
+    a date was in the past / the time span of the date to the present.
+
+    On January 1st, midnight, the returned string only indicates how many years
+    ago the date was.
+    """
     # TODO, check if timezone is calculated right  # pylint: disable=fixme
     d = dt.date()
     t = dt.time()