|
@@ -1,6 +1,7 @@
|
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
-"""
|
|
|
|
- Searchcode (IT)
|
|
|
|
|
|
+# lint: pylint
|
|
|
|
+"""Searchcode (IT)
|
|
|
|
+
|
|
"""
|
|
"""
|
|
|
|
|
|
from json import loads
|
|
from json import loads
|
|
@@ -18,24 +19,29 @@ about = {
|
|
|
|
|
|
# engine dependent config
|
|
# engine dependent config
|
|
categories = ['it']
|
|
categories = ['it']
|
|
-paging = True
|
|
|
|
-
|
|
|
|
-# search-url
|
|
|
|
-url = 'https://searchcode.com/'
|
|
|
|
-search_url = url + 'api/codesearch_I/?{query}&p={pageno}'
|
|
|
|
|
|
+search_api = 'https://searchcode.com/api/codesearch_I/?'
|
|
|
|
|
|
# special code-endings which are not recognised by the file ending
|
|
# special code-endings which are not recognised by the file ending
|
|
code_endings = {'cs': 'c#', 'h': 'c', 'hpp': 'cpp', 'cxx': 'cpp'}
|
|
code_endings = {'cs': 'c#', 'h': 'c', 'hpp': 'cpp', 'cxx': 'cpp'}
|
|
|
|
|
|
|
|
+# paging is broken in searchcode.com's API .. not sure it will ever been fixed
|
|
|
|
+# paging = True
|
|
|
|
|
|
-# do search-request
|
|
|
|
-def request(query, params):
|
|
|
|
- params['url'] = search_url.format(query=urlencode({'q': query}), pageno=params['pageno'] - 1)
|
|
|
|
|
|
|
|
|
|
+def request(query, params):
|
|
|
|
+ args = urlencode(
|
|
|
|
+ {
|
|
|
|
+ 'q': query,
|
|
|
|
+ # paging is broken in searchcode.com's API
|
|
|
|
+ # 'p': params['pageno'] - 1,
|
|
|
|
+ # 'per_page': 10,
|
|
|
|
+ }
|
|
|
|
+ )
|
|
|
|
+ params['url'] = search_api + args
|
|
|
|
+ logger.debug("query_url --> %s", params['url'])
|
|
return params
|
|
return params
|
|
|
|
|
|
|
|
|
|
-# get response from search-request
|
|
|
|
def response(resp):
|
|
def response(resp):
|
|
results = []
|
|
results = []
|
|
|
|
|
|
@@ -47,7 +53,7 @@ def response(resp):
|
|
title = "" + result['name'] + " - " + result['filename']
|
|
title = "" + result['name'] + " - " + result['filename']
|
|
repo = result['repo']
|
|
repo = result['repo']
|
|
|
|
|
|
- lines = dict()
|
|
|
|
|
|
+ lines = {}
|
|
for line, code in result['lines'].items():
|
|
for line, code in result['lines'].items():
|
|
lines[int(line)] = code
|
|
lines[int(line)] = code
|
|
|
|
|