Adam Tauber преди 10 години
родител
ревизия
727c7226d9
променени са 1 файла, в които са добавени 4 реда и са изтрити 10 реда
  1. 4
    10
      searx/engines/wikidata.py

+ 4
- 10
searx/engines/wikidata.py Целия файл

1
 import json
1
 import json
2
 from requests import get
2
 from requests import get
3
 from urllib import urlencode
3
 from urllib import urlencode
4
-from datetime import datetime
5
 
4
 
6
 resultCount=2
5
 resultCount=2
7
 urlSearch = 'https://www.wikidata.org/w/api.php?action=query&list=search&format=json&srnamespace=0&srprop=sectiontitle&{query}'
6
 urlSearch = 'https://www.wikidata.org/w/api.php?action=query&list=search&format=json&srnamespace=0&srprop=sectiontitle&{query}'
10
 
9
 
11
 def request(query, params):
10
 def request(query, params):
12
     params['url'] = urlSearch.format(query=urlencode({'srsearch': query, 'srlimit': resultCount}))
11
     params['url'] = urlSearch.format(query=urlencode({'srsearch': query, 'srlimit': resultCount}))
13
-    print params['url']
14
     return params
12
     return params
15
 
13
 
16
 
14
 
27
         language = 'en'
25
         language = 'en'
28
     url = urlDetail.format(query=urlencode({'ids': '|'.join(wikidata_ids), 'languages': language + '|en'}))
26
     url = urlDetail.format(query=urlencode({'ids': '|'.join(wikidata_ids), 'languages': language + '|en'}))
29
 
27
 
30
-    before = datetime.now()
31
     htmlresponse = get(url)
28
     htmlresponse = get(url)
32
-    print datetime.now() - before
33
     jsonresponse = json.loads(htmlresponse.content)
29
     jsonresponse = json.loads(htmlresponse.content)
34
     for wikidata_id in wikidata_ids:
30
     for wikidata_id in wikidata_ids:
35
         results = results + getDetail(jsonresponse, wikidata_id, language)
31
         results = results + getDetail(jsonresponse, wikidata_id, language)
38
 
34
 
39
 def getDetail(jsonresponse, wikidata_id, language):
35
 def getDetail(jsonresponse, wikidata_id, language):
40
     result = jsonresponse.get('entities', {}).get(wikidata_id, {})
36
     result = jsonresponse.get('entities', {}).get(wikidata_id, {})
41
-    
37
+
42
     title = result.get('labels', {}).get(language, {}).get('value', None)
38
     title = result.get('labels', {}).get(language, {}).get('value', None)
43
     if title == None:
39
     if title == None:
44
         title = result.get('labels', {}).get('en', {}).get('value', wikidata_id)
40
         title = result.get('labels', {}).get('en', {}).get('value', wikidata_id)
86
     musicbrainz_release_group_id = get_string(claims, 'P436')
82
     musicbrainz_release_group_id = get_string(claims, 'P436')
87
     if musicbrainz_release_group_id != None:
83
     if musicbrainz_release_group_id != None:
88
         add_url(urls, 'MusicBrainz', 'http://musicbrainz.org/release-group/' + musicbrainz_release_group_id)
84
         add_url(urls, 'MusicBrainz', 'http://musicbrainz.org/release-group/' + musicbrainz_release_group_id)
89
-    
85
+
90
     musicbrainz_label_id = get_string(claims, 'P966')
86
     musicbrainz_label_id = get_string(claims, 'P966')
91
     if musicbrainz_label_id != None:
87
     if musicbrainz_label_id != None:
92
         add_url(urls, 'MusicBrainz', 'http://musicbrainz.org/label/' + musicbrainz_label_id)
88
         add_url(urls, 'MusicBrainz', 'http://musicbrainz.org/label/' + musicbrainz_label_id)
111
 
107
 
112
 
108
 
113
     results.append({
109
     results.append({
114
-            'infobox' : title, 
110
+            'infobox' : title,
115
             'id' : wikipedia_en_link,
111
             'id' : wikipedia_en_link,
116
             'content' : description,
112
             'content' : description,
117
             'attributes' : attributes,
113
             'attributes' : attributes,
144
     for e in propValue:
140
     for e in propValue:
145
         mainsnak = e.get('mainsnak', {})
141
         mainsnak = e.get('mainsnak', {})
146
 
142
 
147
-        datatype = mainsnak.get('datatype', '')
148
         datavalue = mainsnak.get('datavalue', {})
143
         datavalue = mainsnak.get('datavalue', {})
149
         if datavalue != None:
144
         if datavalue != None:
150
             result.append(datavalue.get('value', ''))
145
             result.append(datavalue.get('value', ''))
164
     for e in propValue:
159
     for e in propValue:
165
         mainsnak = e.get('mainsnak', {})
160
         mainsnak = e.get('mainsnak', {})
166
 
161
 
167
-        datatype = mainsnak.get('datatype', '')
168
         datavalue = mainsnak.get('datavalue', {})
162
         datavalue = mainsnak.get('datavalue', {})
169
         if datavalue != None:
163
         if datavalue != None:
170
             value = datavalue.get('value', '')
164
             value = datavalue.get('value', '')
192
 
186
 
193
     precision = value.get('precision', 0.0002)
187
     precision = value.get('precision', 0.0002)
194
 
188
 
195
-    # there is no zoom information, deduce from precision (error prone)    
189
+    # there is no zoom information, deduce from precision (error prone)
196
     # samples :
190
     # samples :
197
     # 13 --> 5
191
     # 13 --> 5
198
     # 1 --> 6
192
     # 1 --> 6