mirror of
				https://github.com/searxng/searxng.git
				synced 2025-11-04 03:27:06 -05:00 
			
		
		
		
	Merge pull request #1642 from dalf/start-speed
Speed up start time and decrease CPU load
This commit is contained in:
		
						commit
						d0dd296424
					
				@ -28,8 +28,10 @@ categories = ['music']
 | 
				
			|||||||
paging = True
 | 
					paging = True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# search-url
 | 
					# search-url
 | 
				
			||||||
url = 'https://api.soundcloud.com/'
 | 
					# missing attribute: user_id, app_version, app_locale
 | 
				
			||||||
 | 
					url = 'https://api-v2.soundcloud.com/'
 | 
				
			||||||
search_url = url + 'search?{query}'\
 | 
					search_url = url + 'search?{query}'\
 | 
				
			||||||
 | 
					                         '&variant_ids='\
 | 
				
			||||||
                         '&facet=model'\
 | 
					                         '&facet=model'\
 | 
				
			||||||
                         '&limit=20'\
 | 
					                         '&limit=20'\
 | 
				
			||||||
                         '&offset={offset}'\
 | 
					                         '&offset={offset}'\
 | 
				
			||||||
@ -57,7 +59,7 @@ def get_client_id():
 | 
				
			|||||||
            # gets app_js and searches for the clientid
 | 
					            # gets app_js and searches for the clientid
 | 
				
			||||||
            response = http_get(app_js_url)
 | 
					            response = http_get(app_js_url)
 | 
				
			||||||
            if response.ok:
 | 
					            if response.ok:
 | 
				
			||||||
                cids = cid_re.search(response.text)
 | 
					                cids = cid_re.search(response.content.decode("utf-8"))
 | 
				
			||||||
                if cids is not None and len(cids.groups()):
 | 
					                if cids is not None and len(cids.groups()):
 | 
				
			||||||
                    return cids.groups()[0]
 | 
					                    return cids.groups()[0]
 | 
				
			||||||
    logger.warning("Unable to fetch guest client_id from SoundCloud, check parser!")
 | 
					    logger.warning("Unable to fetch guest client_id from SoundCloud, check parser!")
 | 
				
			||||||
 | 
				
			|||||||
@ -47,6 +47,8 @@ blocked_tags = ('script',
 | 
				
			|||||||
useragents = json.loads(open(os.path.dirname(os.path.realpath(__file__))
 | 
					useragents = json.loads(open(os.path.dirname(os.path.realpath(__file__))
 | 
				
			||||||
                             + "/data/useragents.json", 'r', encoding='utf-8').read())
 | 
					                             + "/data/useragents.json", 'r', encoding='utf-8').read())
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					lang_to_lc_cache = dict()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def searx_useragent():
 | 
					def searx_useragent():
 | 
				
			||||||
    return 'searx/{searx_version} {suffix}'.format(
 | 
					    return 'searx/{searx_version} {suffix}'.format(
 | 
				
			||||||
@ -183,7 +185,7 @@ def get_resources_directory(searx_directory, subdirectory, resources_directory):
 | 
				
			|||||||
    if not resources_directory:
 | 
					    if not resources_directory:
 | 
				
			||||||
        resources_directory = os.path.join(searx_directory, subdirectory)
 | 
					        resources_directory = os.path.join(searx_directory, subdirectory)
 | 
				
			||||||
    if not os.path.isdir(resources_directory):
 | 
					    if not os.path.isdir(resources_directory):
 | 
				
			||||||
        raise Exception(directory + " is not a directory")
 | 
					        raise Exception(resources_directory + " is not a directory")
 | 
				
			||||||
    return resources_directory
 | 
					    return resources_directory
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -314,6 +316,17 @@ def is_valid_lang(lang):
 | 
				
			|||||||
        return False
 | 
					        return False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def _get_lang_to_lc_dict(lang_list):
 | 
				
			||||||
 | 
					    key = str(lang_list)
 | 
				
			||||||
 | 
					    value = lang_to_lc_cache.get(key, None)
 | 
				
			||||||
 | 
					    if value is None:
 | 
				
			||||||
 | 
					        value = dict()
 | 
				
			||||||
 | 
					        for lc in lang_list:
 | 
				
			||||||
 | 
					            value.setdefault(lc.split('-')[0], lc)
 | 
				
			||||||
 | 
					        lang_to_lc_cache[key] = value
 | 
				
			||||||
 | 
					    return value
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# auxiliary function to match lang_code in lang_list
 | 
					# auxiliary function to match lang_code in lang_list
 | 
				
			||||||
def _match_language(lang_code, lang_list=[], custom_aliases={}):
 | 
					def _match_language(lang_code, lang_list=[], custom_aliases={}):
 | 
				
			||||||
    # replace language code with a custom alias if necessary
 | 
					    # replace language code with a custom alias if necessary
 | 
				
			||||||
@ -334,11 +347,7 @@ def _match_language(lang_code, lang_list=[], custom_aliases={}):
 | 
				
			|||||||
            return new_code
 | 
					            return new_code
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # try to get the any supported country for this language
 | 
					    # try to get the any supported country for this language
 | 
				
			||||||
    for lc in lang_list:
 | 
					    return _get_lang_to_lc_dict(lang_list).get(lang_code, None)
 | 
				
			||||||
        if lang_code == lc.split('-')[0]:
 | 
					 | 
				
			||||||
            return lc
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return None
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# get the language code from lang_list that best matches locale_code
 | 
					# get the language code from lang_list that best matches locale_code
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user