on master help sign in
Add IMDB support (#2980)

Closes #1145

commitbb34685dfaf4a63566227d99180fbe6f0ee5016c authorPaul Alcock <25768075+Guilvareux@users.noreply.github.com> dateSat 2 Oct 2021, 11:41 (5 years ago) parent8ecc8c5
3 files changed+62
AUTHORS.rst+1 searx/engines/imdb.py+55 searx/settings.yml+6
AUTHORS.rst+1
@@ -165,3 +165,4 @@ generally made searx better:
165165- @jhigginbotham
166166- @xenrox
167167- @OliveiraHermogenes
168+- Paul Alcock @Guilvareux
searx/engines/imdb.pynew file+55
@@ -0,0 +1,55 @@
1+# SPDX-License-Identifier: AGPL-3.0-or-later
2+
3+"""
4+IMDB - Internet Movie Database
5+Retrieves results from a basic search
6+Advanced search options are not supported
7+"""
8+
9+import json
10+
11+about = {
12+ "website": 'https://imdb.com/',
13+ "wikidata_id": 'Q37312',
14+ "official_api_documentation": None,
15+ "use_official_api": False,
16+ "require_api_key": False,
17+ "results": 'HTML',
18+}
19+
20+categories = ['general']
21+paging = False
22+base_url = 'https://imdb.com/{category}/{id}'
23+suggestion_url = "https://v2.sg.media-imdb.com/suggestion/{letter}/{query}.json"
24+search_categories = {
25+ "nm": "name",
26+ "tt": "title",
27+ "kw": "keyword",
28+ "co": "company",
29+ "ep": "episode"
30+}
31+
32+
33+def request(query, params):
34+ query = query.replace(" ", "_").lower()
35+ params['url'] = suggestion_url.format(letter=query[0], query=query)
36+ return params
37+
38+
39+def response(resp):
40+ suggestions = json.loads(resp.text)
41+ results = []
42+ for entry in suggestions['d']:
43+ content = ""
44+ if entry['id'][:2] in search_categories:
45+ href = base_url.format(category=search_categories[entry['id'][:2]], id=entry['id'])
46+ if 'y' in entry:
47+ content += str(entry['y']) + " - "
48+ if 's' in entry:
49+ content += entry['s']
50+ results.append({
51+ "title": entry['l'],
52+ "url": href,
53+ "content": content
54+ })
55+ return results
searx/settings.yml+6
@@ -699,6 +699,12 @@ engines:
699699 require_api_key: false
700700 results: JSON
701701
702+ - name : imdb
703+ engine : imdb
704+ shortcut : imdb
705+ timeout : 6.0
706+ disabled : True
707+
702708 - name : ina
703709 engine : ina
704710 shortcut : in