forked from zaclys/searxng
		
	Merge pull request #2541 from return42/mediathekviewweb
[enh] add engine MediathekViewWeb (API)
This commit is contained in:
		
						commit
						74c8b5606f
					
				
					 3 changed files with 74 additions and 1 deletions
				
			
		
							
								
								
									
										3
									
								
								Makefile
									
										
									
									
									
								
							
							
						
						
									
										3
									
								
								Makefile
									
										
									
									
									
								
							|  | @ -193,7 +193,8 @@ PYLINT_FILES=\ | |||
| 	searx/engines/google.py \
 | ||||
| 	searx/engines/google_news.py \
 | ||||
| 	searx/engines/google_videos.py \
 | ||||
| 	searx/engines/google_images.py | ||||
| 	searx/engines/google_images.py \
 | ||||
| 	searx/engines/mediathekviewweb.py | ||||
| 
 | ||||
| test.pylint: pyenvinstall | ||||
| 	$(call cmd,pylint,$(PYLINT_FILES)) | ||||
|  |  | |||
							
								
								
									
										68
									
								
								searx/engines/mediathekviewweb.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										68
									
								
								searx/engines/mediathekviewweb.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,68 @@ | |||
| # SPDX-License-Identifier: AGPL-3.0-or-later | ||||
| """MediathekViewWeb (API) | ||||
| 
 | ||||
| """ | ||||
| 
 | ||||
| # pylint: disable=missing-function-docstring | ||||
| 
 | ||||
| import datetime | ||||
| from json import loads, dumps | ||||
| 
 | ||||
| about = { | ||||
|     "website": 'https://mediathekviewweb.de/', | ||||
|     "wikidata_id": 'Q27877380', | ||||
|     "official_api_documentation": 'https://gist.github.com/bagbag/a2888478d27de0e989cf777f81fb33de', | ||||
|     "use_official_api": True, | ||||
|     "require_api_key": False, | ||||
|     "results": 'JSON', | ||||
| } | ||||
| 
 | ||||
| categories = ['videos'] | ||||
| paging = True | ||||
| time_range_support = False | ||||
| safesearch = False | ||||
| 
 | ||||
| def request(query, params): | ||||
| 
 | ||||
|     params['url'] = 'https://mediathekviewweb.de/api/query' | ||||
|     params['method'] = 'POST' | ||||
|     params['headers']['Content-type'] = 'text/plain' | ||||
|     params['data'] = dumps({ | ||||
|         'queries' : [ | ||||
| 	    { | ||||
| 	        'fields' : [ | ||||
| 		    'title', | ||||
| 		    'topic', | ||||
| 	        ], | ||||
| 	    'query' : query | ||||
| 	    }, | ||||
|         ], | ||||
|         'sortBy' : 'timestamp', | ||||
|         'sortOrder' : 'desc', | ||||
|         'future' : True, | ||||
|         'offset' : (params['pageno'] - 1 )* 10, | ||||
|         'size' : 10 | ||||
|     }) | ||||
|     return params | ||||
| 
 | ||||
| def response(resp): | ||||
| 
 | ||||
|     resp = loads(resp.text) | ||||
| 
 | ||||
|     mwv_result = resp['result'] | ||||
|     mwv_result_list = mwv_result['results'] | ||||
| 
 | ||||
|     results = [] | ||||
| 
 | ||||
|     for item in mwv_result_list: | ||||
| 
 | ||||
|         item['hms'] = str(datetime.timedelta(seconds=item['duration'])) | ||||
| 
 | ||||
|         results.append({ | ||||
|             'url' : item['url_video_hd'], | ||||
|             'title' : "%(channel)s: %(title)s (%(hms)s)" % item, | ||||
|             'length' : item['hms'], | ||||
|             'content' : "%(description)s" % item, | ||||
|         }) | ||||
| 
 | ||||
|     return results | ||||
|  | @ -1258,6 +1258,10 @@ engines: | |||
|     categories: videos | ||||
|     disabled : True | ||||
| 
 | ||||
|   - name : mediathekviewweb | ||||
|     engine : mediathekviewweb | ||||
|     shortcut : mvw | ||||
| 
 | ||||
| #  - name : yacy | ||||
| #    engine : yacy | ||||
| #    shortcut : ya | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Alexandre Flament
						Alexandre Flament