[nuevo] Generalize nuevo extractor and add support for trollvids
Supports only the nuevo player for now (most common). [trollvids] convert duration to an int [trollvids] added a test [trollvids] made flake8 shut up Generalized the Nuevo extractor Affects: anitube, trollvids, trutube [nuevo] Complied with the code comments.
This commit is contained in:
		
				
					committed by
					
						
						Sergey M․
					
				
			
			
				
	
			
			
			
						parent
						
							4fcd9d147d
						
					
				
				
					commit
					d570746e45
				
			
							
								
								
									
										37
									
								
								youtube_dl/extractor/nuevo.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								youtube_dl/extractor/nuevo.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,37 @@
 | 
			
		||||
# encoding: utf-8
 | 
			
		||||
from __future__ import unicode_literals
 | 
			
		||||
 | 
			
		||||
from .common import InfoExtractor
 | 
			
		||||
 | 
			
		||||
from ..utils import (
 | 
			
		||||
    float_or_none,
 | 
			
		||||
    xpath_text
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class NuevoBaseIE(InfoExtractor):
 | 
			
		||||
    def _extract_nuevo(self, config_url, video_id):
 | 
			
		||||
        tree = self._download_xml(config_url, video_id, transform_source=lambda s: s.strip())
 | 
			
		||||
 | 
			
		||||
        title = xpath_text(tree, './title')
 | 
			
		||||
        if title:
 | 
			
		||||
            title = title.strip()
 | 
			
		||||
 | 
			
		||||
        thumbnail = xpath_text(tree, './image')
 | 
			
		||||
        duration = float_or_none(xpath_text(tree, './duration'))
 | 
			
		||||
 | 
			
		||||
        formats = []
 | 
			
		||||
        for element_name, format_id in (('file', 'sd'), ('filehd', 'hd')):
 | 
			
		||||
            video_url = tree.find(element_name)
 | 
			
		||||
            video_url is None or formats.append({
 | 
			
		||||
                'format_id': format_id,
 | 
			
		||||
                'url': video_url.text
 | 
			
		||||
            })
 | 
			
		||||
 | 
			
		||||
        return {
 | 
			
		||||
            'id': video_id,
 | 
			
		||||
            'title': title,
 | 
			
		||||
            'thumbnail': thumbnail,
 | 
			
		||||
            'duration': duration,
 | 
			
		||||
            'formats': formats
 | 
			
		||||
        }
 | 
			
		||||
		Reference in New Issue
	
	Block a user