mirror of
				https://github.com/searxng/searxng
				synced 2024-01-01 19:24:07 +01:00 
			
		
		
		
	fix dailymotion engine and add comments to it
This commit is contained in:
		
							parent
							
								
									144f89bf78
								
							
						
					
					
						commit
						90dcfc1ddd
					
				
					 1 changed files with 37 additions and 21 deletions
				
			
		|  | @ -1,45 +1,61 @@ | ||||||
|  | ## Dailymotion (Videos) | ||||||
|  | #  | ||||||
|  | # @website     https://www.dailymotion.com | ||||||
|  | # @provide-api yes (http://www.dailymotion.com/developer) | ||||||
|  | #  | ||||||
|  | # @using-api   yes | ||||||
|  | # @results     JSON | ||||||
|  | # @stable      yes | ||||||
|  | # @parse       url, title, thumbnail | ||||||
|  | # | ||||||
|  | # @todo        set content-parameter with correct data | ||||||
|  | 
 | ||||||
| from urllib import urlencode | from urllib import urlencode | ||||||
| from json import loads | from json import loads | ||||||
| from lxml import html | from lxml import html | ||||||
| 
 | 
 | ||||||
|  | # engine dependent config | ||||||
| categories = ['videos'] | categories = ['videos'] | ||||||
| locale = 'en_US' | locale = 'en_US' | ||||||
| 
 |  | ||||||
| # see http://www.dailymotion.com/doc/api/obj-video.html |  | ||||||
| search_url = 'https://api.dailymotion.com/videos?fields=title,description,duration,url,thumbnail_360_url&sort=relevance&limit=25&page={pageno}&{query}'  # noqa |  | ||||||
| 
 |  | ||||||
| # TODO use video result template |  | ||||||
| content_tpl = '<a href="{0}" title="{0}" ><img src="{1}" /></a><br />' |  | ||||||
| 
 |  | ||||||
| paging = True | paging = True | ||||||
| 
 | 
 | ||||||
|  | # search-url | ||||||
|  | # see http://www.dailymotion.com/doc/api/obj-video.html | ||||||
|  | search_url = 'https://api.dailymotion.com/videos?fields=title,description,duration,url,thumbnail_360_url&sort=relevance&limit=5&page={pageno}&{query}'  # noqa | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|  | # do search-request | ||||||
| def request(query, params): | def request(query, params): | ||||||
|     params['url'] = search_url.format( |     params['url'] = search_url.format( | ||||||
|         query=urlencode({'search': query, 'localization': locale}), |         query=urlencode({'search': query, 'localization': locale}), | ||||||
|         pageno=params['pageno']) |         pageno=params['pageno']) | ||||||
|  | 
 | ||||||
|     return params |     return params | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | # get response from search-request | ||||||
| def response(resp): | def response(resp): | ||||||
|     results = [] |     results = [] | ||||||
|  | 
 | ||||||
|     search_res = loads(resp.text) |     search_res = loads(resp.text) | ||||||
|  | 
 | ||||||
|  |     # return empty array if there are no results | ||||||
|     if not 'list' in search_res: |     if not 'list' in search_res: | ||||||
|         return results |         return [] | ||||||
|  | 
 | ||||||
|  |     # parse results | ||||||
|     for res in search_res['list']: |     for res in search_res['list']: | ||||||
|         title = res['title'] |         title = res['title'] | ||||||
|         url = res['url'] |         url = res['url'] | ||||||
|         if res['thumbnail_360_url']: |         #content = res['description'] | ||||||
|             content = content_tpl.format(url, res['thumbnail_360_url']) |  | ||||||
|         else: |  | ||||||
|         content = '' |         content = '' | ||||||
|         if res['description']: |         thumbnail = res['thumbnail_360_url'] | ||||||
|             description = text_content_from_html(res['description']) | 
 | ||||||
|             content += description[:500] |         results.append({'template': 'videos.html', | ||||||
|         results.append({'url': url, 'title': title, 'content': content}) |                         'url': url, | ||||||
|  |                         'title': title, | ||||||
|  |                         'content': content, | ||||||
|  |                         'thumbnail': thumbnail}) | ||||||
|  | 
 | ||||||
|  |     # return results | ||||||
|     return results |     return results | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| def text_content_from_html(html_string): |  | ||||||
|     desc_html = html.fragment_fromstring(html_string, create_parent=True) |  | ||||||
|     return desc_html.text_content() |  | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Thomas Pointhuber
						Thomas Pointhuber