@@ -4,7 +4,7 @@
44 @website http://www.faroo.com
55 @provide-api yes (http://www.faroo.com/hp/api/api.html), require API-key
66
7− @using-api yes
7+ @using-api no
88 @results JSON
99 @stable yes
1010 @parse url, title, content, publishedDate, img_src
@@ -20,18 +20,16 @@ categories = ['general', 'news']
2020paging = True
2121language_support = True
2222number_of_results = 10
23−api_key = None
2423
2524# search-url
2625url = 'http://www.faroo.com/'
27−search_url = url + 'api?{query}'\
26+search_url = url + 'instant.json?{query}'\
2827 '&start={offset}'\
2928 '&length={number_of_results}'\
3029 '&l={language}'\
3130 '&src={categorie}'\
3231 '&i=false'\
33− '&f=json'\
34− '&key={api_key}' # noqa
32+ '&c=false'
3533
3634search_category = {'general': 'web',
3735 'news': 'news'}
@@ -57,21 +55,15 @@ def request(query, params):
5755 number_of_results=number_of_results,
5856 query=urlencode({'q': query}),
5957 language=language,
60− categorie=categorie,
61− api_key=api_key)
58+ categorie=categorie)
6259
63− # using searx User-Agent
64− params['headers']['User-Agent'] = searx_useragent()
60+ params['headers']['Referer'] = url
6561
6662 return params
6763
6864
6965# get response from search-request
7066def response(resp):
71− # HTTP-Code 401: api-key is not valide
72− if resp.status_code == 401:
73− raise Exception("API key is not valide")
74−
7567 # HTTP-Code 429: rate limit exceeded
7668 if resp.status_code == 429:
7769 raise Exception("rate limit has been exceeded!")
@@ -86,31 +78,20 @@ def response(resp):
8678
8779 # parse results
8880 for result in search_res['results']:
81+ publishedDate = None
82+ result_json = {'url': result['url'],
83+ 'title': result['title'],
84+ 'content': result['kwic']}
8985 if result['news']:
90− # timestamp (milliseconds since 1970)
91− publishedDate = datetime.datetime.fromtimestamp(result['date'] / 1000.0) # noqa
92−
93− # append news result
94− results.append({'url': result['url'],
95− 'title': result['title'],
96− 'publishedDate': publishedDate,
97− 'content': result['kwic']})
98−
99− else:
100− # append general result
101− # TODO, publishedDate correct?
102− results.append({'url': result['url'],
103− 'title': result['title'],
104− 'content': result['kwic']})
86+ result_json['publishedDate'] = \
87+ datetime.datetime.fromtimestamp(result['date'] / 1000.0)
10588
10689 # append image result if image url is set
107− # TODO, show results with an image like in faroo
10890 if result['iurl']:
109− results.append({'template': 'images.html',
110− 'url': result['url'],
111− 'title': result['title'],
112− 'content': result['kwic'],
113− 'img_src': result['iurl']})
91+ result_json['template'] ='videos.html'
92+ result_json['thumbnail'] = result['iurl']
93+
94+ results.append(result_json)
11495
11596 # return results
11697 return results