mirror of
https://github.com/searxng/searxng.git
synced 2024-05-19 11:58:05 +00:00
[mod] update package template
This commit is contained in:
parent
ac430a9eaf
commit
baf5a446ce
|
@ -33,10 +33,10 @@ def response(resp):
|
|||
results = []
|
||||
for package in resp.json():
|
||||
meta = package["meta"]
|
||||
publishedDate = package.get("inserted_at")
|
||||
if publishedDate:
|
||||
publishedDate = parser.parse(publishedDate)
|
||||
tags = meta.get("licenses", [])
|
||||
published_date = package.get("inserted_at")
|
||||
published_date = parser.parse(published_date)
|
||||
links = {"documentation_url": package["docs_html_url"]}
|
||||
links = {**links, **meta.get("links", {})}
|
||||
results.append(
|
||||
{
|
||||
"template": "packages.html",
|
||||
|
@ -46,10 +46,9 @@ def response(resp):
|
|||
"content": meta.get("description", ""),
|
||||
"version": meta.get("latest_version"),
|
||||
"maintainer": ", ".join(meta.get("maintainers", [])),
|
||||
"publishedDate": publishedDate,
|
||||
"tags": tags,
|
||||
"homepage": meta.get("links", {}).get("homepage"),
|
||||
"source_code_url": meta.get("links", {}).get("github"),
|
||||
"published_date": published_date,
|
||||
"license_name": ", ".join(meta.get("licenses", [])),
|
||||
"links": links,
|
||||
}
|
||||
)
|
||||
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""npms.io
|
||||
|
||||
"""
|
||||
"""npms.io"""
|
||||
|
||||
from urllib.parse import urlencode
|
||||
from dateutil import parser
|
||||
|
@ -16,7 +14,7 @@ about = {
|
|||
"results": "JSON",
|
||||
}
|
||||
|
||||
categories = ['it', 'packages']
|
||||
categories = ["it", "packages"]
|
||||
|
||||
|
||||
# engine dependent config
|
||||
|
@ -26,15 +24,14 @@ search_api = "https://api.npms.io/v2/search?"
|
|||
|
||||
|
||||
def request(query: str, params):
|
||||
|
||||
args = urlencode(
|
||||
{
|
||||
'from': (params["pageno"] - 1) * page_size,
|
||||
'q': query,
|
||||
'size': page_size,
|
||||
"from": (params["pageno"] - 1) * page_size,
|
||||
"q": query,
|
||||
"size": page_size,
|
||||
}
|
||||
)
|
||||
params['url'] = search_api + args
|
||||
params["url"] = search_api + args
|
||||
return params
|
||||
|
||||
|
||||
|
@ -43,23 +40,26 @@ def response(resp):
|
|||
content = resp.json()
|
||||
for entry in content["results"]:
|
||||
package = entry["package"]
|
||||
publishedDate = package.get("date")
|
||||
if publishedDate:
|
||||
publishedDate = parser.parse(publishedDate)
|
||||
published_date = package.get("date")
|
||||
if published_date:
|
||||
published_date = parser.parse(published_date)
|
||||
tags = list(entry.get("flags", {}).keys()) + package.get("keywords", [])
|
||||
links = {
|
||||
"homepage": package["links"].get("homepage"),
|
||||
"source_code_url": package["links"].get("repository"),
|
||||
}
|
||||
results.append(
|
||||
{
|
||||
"template": "packages.html",
|
||||
"url": package["links"]["npm"],
|
||||
"title": package["name"],
|
||||
'package_name': package["name"],
|
||||
"package_name": package["name"],
|
||||
"content": package.get("description", ""),
|
||||
"version": package.get("version"),
|
||||
"maintainer": package.get("author", {}).get("name"),
|
||||
'publishedDate': publishedDate,
|
||||
"published_date": published_date,
|
||||
"tags": tags,
|
||||
"homepage": package["links"].get("homepage"),
|
||||
"source_code_url": package["links"].get("repository"),
|
||||
"links": links,
|
||||
}
|
||||
)
|
||||
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""pypi.org
|
||||
|
||||
"""
|
||||
"""pypi.org"""
|
||||
|
||||
from urllib.parse import urlencode
|
||||
from dateutil import parser
|
||||
|
@ -23,21 +21,21 @@ about = {
|
|||
"results": "HTML",
|
||||
}
|
||||
|
||||
categories = ['it', 'packages']
|
||||
categories = ["it", "packages"]
|
||||
|
||||
|
||||
# engine dependent config
|
||||
first_page_num = 1
|
||||
base_url = "https://pypi.org"
|
||||
search_url = base_url + '/search/?{query}'
|
||||
search_url = base_url + "/search/?{query}"
|
||||
|
||||
|
||||
def request(query, params):
|
||||
args = {
|
||||
"q": query,
|
||||
"page": params['pageno'],
|
||||
"page": params["pageno"],
|
||||
}
|
||||
params['url'] = search_url.format(query=urlencode(args))
|
||||
params["url"] = search_url.format(query=urlencode(args))
|
||||
return params
|
||||
|
||||
|
||||
|
@ -45,22 +43,22 @@ def response(resp):
|
|||
results = []
|
||||
dom = html.fromstring(resp.text)
|
||||
for entry in eval_xpath_list(dom, '/html/body/main/div/div/div/form/div/ul/li/a[@class="package-snippet"]'):
|
||||
url = base_url + extract_text(eval_xpath_getindex(entry, './@href', 0)) # type: ignore
|
||||
url = base_url + extract_text(eval_xpath_getindex(entry, "./@href", 0)) # type: ignore
|
||||
title = extract_text(eval_xpath_getindex(entry, './h3/span[@class="package-snippet__name"]', 0))
|
||||
version = extract_text(eval_xpath_getindex(entry, './h3/span[@class="package-snippet__version"]', 0))
|
||||
created_at = extract_text(
|
||||
eval_xpath_getindex(entry, './h3/span[@class="package-snippet__created"]/time/@datetime', 0)
|
||||
)
|
||||
content = extract_text(eval_xpath_getindex(entry, './p', 0))
|
||||
content = extract_text(eval_xpath_getindex(entry, "./p", 0))
|
||||
results.append(
|
||||
{
|
||||
"template": "packages.html",
|
||||
"url": url,
|
||||
"title": title,
|
||||
'package_name': title,
|
||||
"package_name": title,
|
||||
"content": content,
|
||||
"version": version,
|
||||
'publishedDate': parser.parse(created_at), # type: ignore
|
||||
"published_date": parser.parse(created_at), # type: ignore
|
||||
}
|
||||
)
|
||||
|
||||
|
|
|
@ -47,17 +47,24 @@
|
|||
{%- endif -%}
|
||||
</div>
|
||||
{%- endif -%}
|
||||
{%- if result.homepage or result.source_code_url -%}
|
||||
{%- if result.links -%}
|
||||
<div class="result_project">{{- '' -}}
|
||||
<span>{{ _('Project') }}</span>
|
||||
<span>{{- '' -}}
|
||||
{%- if result.homepage -%}
|
||||
<a href="{{ result.homepage }}" target="_blank">{{ _('Project homepage') }}</a>
|
||||
{%- endif -%}
|
||||
{%- if result.homepage and result.source_code_url %} | {% endif -%}
|
||||
{%- if result.source_code_url -%}
|
||||
<a href="{{ result.source_code_url }}" target="_blank">{{ _('Source code') }}</a>
|
||||
{%- endif -%}
|
||||
{% for name, link in result.links.items() %}
|
||||
{% if not loop.first %} | {% endif %}
|
||||
<a href="{{ link }}" target="_blank">
|
||||
{% if name == 'homepage' %}
|
||||
{{ _('Project homepage') }}
|
||||
{% elif name == 'documentation_url' %}
|
||||
{{ _('Documenation') }}
|
||||
{% elif name == 'source_code_url' %}
|
||||
{{ _('Source code') }}
|
||||
{% else %}
|
||||
{{ name }}
|
||||
{% endif %}
|
||||
</a>
|
||||
{% endfor %}
|
||||
</span>{{- '' -}}
|
||||
</div>
|
||||
{%- endif -%}
|
||||
|
|
Loading…
Reference in a new issue