Allow to search for images on 500px. It doesn't use the official API, but the page result. Less stable, but less API key to possess... Two engines were necessary for Searchcode because there are to search mode : search for documentation or search for code example. Both use open APIs.
		
			
				
	
	
		
			50 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
## Searchcode (It)
 | 
						|
#
 | 
						|
# @website     https://searchcode.com/
 | 
						|
# @provide-api yes (https://searchcode.com/api/)
 | 
						|
#
 | 
						|
# @using-api   yes
 | 
						|
# @results     JSON
 | 
						|
# @stable      yes
 | 
						|
# @parse       url, title, content
 | 
						|
 | 
						|
from urllib import urlencode
 | 
						|
from json import loads
 | 
						|
 | 
						|
# engine dependent config
 | 
						|
categories = ['it']
 | 
						|
paging = True
 | 
						|
 | 
						|
# search-url
 | 
						|
url = 'https://searchcode.com/'
 | 
						|
search_url = url+'api/search_IV/?{query}&p={pageno}'
 | 
						|
 | 
						|
 | 
						|
# do search-request
 | 
						|
def request(query, params):
 | 
						|
    params['url'] = search_url.format(query=urlencode({'q': query}),
 | 
						|
                                      pageno=params['pageno']-1)
 | 
						|
 | 
						|
    return params
 | 
						|
 | 
						|
 | 
						|
# get response from search-request
 | 
						|
def response(resp):
 | 
						|
    results = []
 | 
						|
    
 | 
						|
    search_results = loads(resp.text)
 | 
						|
 | 
						|
    # parse results
 | 
						|
    for result in search_results['results']:
 | 
						|
        href = result['url']
 | 
						|
        title = "[" + result['type'] + "] " + result['namespace'] + " " + result['name']
 | 
						|
        content = '<span class="highlight">[' + result['type'] + "] " + result['name'] + " " + result['synopsis'] + "</span><br />" + result['description']
 | 
						|
        
 | 
						|
        # append result
 | 
						|
        results.append({'url': href,
 | 
						|
                        'title': title,
 | 
						|
                        'content': content})
 | 
						|
 | 
						|
    # return results
 | 
						|
    return results
 |