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.py \
 | ||||||
| 	searx/engines/google_news.py \
 | 	searx/engines/google_news.py \
 | ||||||
| 	searx/engines/google_videos.py \
 | 	searx/engines/google_videos.py \
 | ||||||
| 	searx/engines/google_images.py | 	searx/engines/google_images.py \
 | ||||||
|  | 	searx/engines/mediathekviewweb.py | ||||||
| 
 | 
 | ||||||
| test.pylint: pyenvinstall | test.pylint: pyenvinstall | ||||||
| 	$(call cmd,pylint,$(PYLINT_FILES)) | 	$(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 |     categories: videos | ||||||
|     disabled : True |     disabled : True | ||||||
| 
 | 
 | ||||||
|  |   - name : mediathekviewweb | ||||||
|  |     engine : mediathekviewweb | ||||||
|  |     shortcut : mvw | ||||||
|  | 
 | ||||||
| #  - name : yacy | #  - name : yacy | ||||||
| #    engine : yacy | #    engine : yacy | ||||||
| #    shortcut : ya | #    shortcut : ya | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Alexandre Flament
						Alexandre Flament