Browse Source

Adds the Unsplash image engine

Denis Wernert 6 years ago
parent
commit
cd7849ffc8
2 changed files with 44 additions and 0 deletions
  1. 39 0
      searx/engines/unsplash.py
  2. 5 0
      searx/settings.yml

+ 39 - 0
searx/engines/unsplash.py

@@ -0,0 +1,39 @@
+"""
+ Unsplash
+
+ @website     https://unsplash.com
+ @provide-api yes (https://unsplash.com/developers)
+
+ @using-api   no
+ @results     JSON (using search portal's infiniscroll API)
+ @stable      no (JSON format could change any time)
+ @parse       url, title, img_src, thumbnail_src
+"""
+
+from searx.url_utils import urlencode
+from json import loads
+
+url = 'https://unsplash.com/'
+search_url = url + 'napi/search/photos?'
+categories = ['images']
+page_size = 20
+paging = True
+
+
+def request(query, params):
+    params['url'] = search_url + urlencode({'query': query, 'page': params['pageno'], 'per_page': page_size})
+    return params
+
+
+def response(resp):
+    results = []
+    json_data = loads(resp.text)
+
+    for result in json_data['results']:
+        results.append({'template': 'images.html',
+                        'url': result['links']['html'],
+                        'thumbnail_src': result['urls']['thumb'],
+                        'img_src': result['urls']['full'],
+                        'title': result['description'],
+                        'content': ''})
+    return results

+ 5 - 0
searx/settings.yml

@@ -642,6 +642,11 @@ engines:
 #    content_xpath : //*[@class="meaning"]
 #    content_xpath : //*[@class="meaning"]
 #    shortcut : ud
 #    shortcut : ud
 
 
+  - name : unsplash
+    engine : unsplash
+    disabled: True
+    shortcut : us
+
   - name : yahoo
   - name : yahoo
     engine : yahoo
     engine : yahoo
     shortcut : yh
     shortcut : yh