1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- # 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
|