Pārlūkot izejas kodu

add time range search for flickr

Noémi Ványi 8 gadus atpakaļ
vecāks
revīzija
1490d6bc93

+ 14
- 3
searx/engines/flickr_noapi.py Parādīt failu

14
 
14
 
15
 from urllib import urlencode
15
 from urllib import urlencode
16
 from json import loads
16
 from json import loads
17
+from time import time
17
 import re
18
 import re
18
 from searx.engines import logger
19
 from searx.engines import logger
19
 
20
 
24
 
25
 
25
 url = 'https://www.flickr.com/'
26
 url = 'https://www.flickr.com/'
26
 search_url = url + 'search?{query}&page={page}'
27
 search_url = url + 'search?{query}&page={page}'
28
+time_range_url = '&min_upload_date={start}&max_upload_date={end}'
27
 photo_url = 'https://www.flickr.com/photos/{userid}/{photoid}'
29
 photo_url = 'https://www.flickr.com/photos/{userid}/{photoid}'
28
 regex = re.compile(r"\"search-photos-lite-models\",\"photos\":(.*}),\"totalItems\":", re.DOTALL)
30
 regex = re.compile(r"\"search-photos-lite-models\",\"photos\":(.*}),\"totalItems\":", re.DOTALL)
29
 image_sizes = ('o', 'k', 'h', 'b', 'c', 'z', 'n', 'm', 't', 'q', 's')
31
 image_sizes = ('o', 'k', 'h', 'b', 'c', 'z', 'n', 'm', 't', 'q', 's')
30
 
32
 
31
 paging = True
33
 paging = True
34
+time_range_support = True
35
+time_range_dict = {'day': 60 * 60 * 24,
36
+                   'week': 60 * 60 * 24 * 7,
37
+                   'month': 60 * 60 * 24 * 7 * 4}
32
 
38
 
33
 
39
 
34
 def build_flickr_url(user_id, photo_id):
40
 def build_flickr_url(user_id, photo_id):
35
     return photo_url.format(userid=user_id, photoid=photo_id)
41
     return photo_url.format(userid=user_id, photoid=photo_id)
36
 
42
 
37
 
43
 
38
-def request(query, params):
39
-    params['url'] = search_url.format(query=urlencode({'text': query}),
40
-                                      page=params['pageno'])
44
+def _get_time_range_url(time_range):
45
+    if time_range in time_range_dict:
46
+        return time_range_url.format(start=time(), end=str(int(time()) - time_range_dict[time_range]))
47
+    return ''
48
+
41
 
49
 
50
+def request(query, params):
51
+    params['url'] = (search_url.format(query=urlencode({'text': query}), page=params['pageno'])
52
+                     + _get_time_range_url(params['time_range']))
42
     return params
53
     return params
43
 
54
 
44
 
55
 

+ 1
- 0
tests/unit/engines/test_flickr_noapi.py Parādīt failu

15
         query = 'test_query'
15
         query = 'test_query'
16
         dicto = defaultdict(dict)
16
         dicto = defaultdict(dict)
17
         dicto['pageno'] = 1
17
         dicto['pageno'] = 1
18
+        dicto['time_range'] = ''
18
         params = flickr_noapi.request(query, dicto)
19
         params = flickr_noapi.request(query, dicto)
19
         self.assertIn('url', params)
20
         self.assertIn('url', params)
20
         self.assertIn(query, params['url'])
21
         self.assertIn(query, params['url'])