searx/searx/engines/imdb.py

56 lines
1.4 KiB
Python

# SPDX-License-Identifier: AGPL-3.0-or-later
"""
IMDB - Internet Movie Database
Retrieves results from a basic search
Advanced search options are not supported
"""
import json
about = {
"website": 'https://imdb.com/',
"wikidata_id": 'Q37312',
"official_api_documentation": None,
"use_official_api": False,
"require_api_key": False,
"results": 'HTML',
}
categories = ['general']
paging = False
base_url = 'https://imdb.com/{category}/{id}'
suggestion_url = "https://v2.sg.media-imdb.com/suggestion/{letter}/{query}.json"
search_categories = {
"nm": "name",
"tt": "title",
"kw": "keyword",
"co": "company",
"ep": "episode"
}
def request(query, params):
query = query.replace(" ", "_").lower()
params['url'] = suggestion_url.format(letter=query[0], query=query)
return params
def response(resp):
suggestions = json.loads(resp.text)
results = []
for entry in suggestions['d']:
content = ""
if entry['id'][:2] in search_categories:
href = base_url.format(category=search_categories[entry['id'][:2]], id=entry['id'])
if 'y' in entry:
content += str(entry['y']) + " - "
if 's' in entry:
content += entry['s']
results.append({
"title": entry['l'],
"url": href,
"content": content
})
return results