mirror of
				https://github.com/searxng/searxng.git
				synced 2025-11-04 03:27:06 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			72 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
# SPDX-License-Identifier: AGPL-3.0-or-later
 | 
						|
"""Engine for Il Post, a largely independent online Italian newspaper.
 | 
						|
 | 
						|
To use this engine add the following entry to your engines
 | 
						|
list in ``settings.yml``:
 | 
						|
 | 
						|
.. code:: yaml
 | 
						|
 | 
						|
  - name: il post
 | 
						|
    engine: il_post
 | 
						|
    shortcut: pst
 | 
						|
    disabled: false
 | 
						|
 | 
						|
"""
 | 
						|
 | 
						|
from urllib.parse import urlencode
 | 
						|
from searx.result_types import EngineResults
 | 
						|
 | 
						|
engine_type = "online"
 | 
						|
language_support = False
 | 
						|
categories = ["news"]
 | 
						|
paging = True
 | 
						|
page_size = 10
 | 
						|
 | 
						|
time_range_support = True
 | 
						|
time_range_args = {"month": "pub_date:ultimi_30_giorni", "year": "pub_date:ultimo_anno"}
 | 
						|
 | 
						|
search_api = "https://api.ilpost.org/search/api/site_search/?"
 | 
						|
 | 
						|
about = {
 | 
						|
    "website": "https://www.ilpost.it",
 | 
						|
    "wikidata_id": "Q3792882",
 | 
						|
    "official_api_documentation": None,
 | 
						|
    "use_official_api": True,
 | 
						|
    "require_api_key": False,
 | 
						|
    "results": "JSON",
 | 
						|
    "language": "it",
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
def request(query, params):
 | 
						|
    query_params = {
 | 
						|
        "qs": query,
 | 
						|
        "pg": params["pageno"],
 | 
						|
        "sort": "date_d",
 | 
						|
        "filters": "ctype:articoli",
 | 
						|
    }
 | 
						|
 | 
						|
    if params["time_range"]:
 | 
						|
        if params["time_range"] not in time_range_args:
 | 
						|
            return None
 | 
						|
        query_params["filters"] += f";{time_range_args.get(params['time_range'], 'pub_date:da_sempre')}"
 | 
						|
    params["url"] = search_api + urlencode(query_params)
 | 
						|
    return params
 | 
						|
 | 
						|
 | 
						|
def response(resp) -> EngineResults:
 | 
						|
    res = EngineResults()
 | 
						|
    json_data = resp.json()
 | 
						|
 | 
						|
    for result in json_data["docs"]:
 | 
						|
        res.add(
 | 
						|
            res.types.MainResult(
 | 
						|
                url=result["link"],
 | 
						|
                title=result["title"],
 | 
						|
                content=result.get("summary", ""),
 | 
						|
                thumbnail=result.get("image"),
 | 
						|
            )
 | 
						|
        )
 | 
						|
 | 
						|
    return res
 |