mirror of
				https://gitlab.com/ytdl-org/youtube-dl.git
				synced 2025-11-03 22:37:07 -05:00 
			
		
		
		
	[pluralsight] Add support for alternative webpage layout (Closes #7607)
This commit is contained in:
		@@ -104,19 +104,29 @@ class PluralsightIE(PluralsightBaseIE):
 | 
			
		||||
 | 
			
		||||
        webpage = self._download_webpage(url, display_id)
 | 
			
		||||
 | 
			
		||||
        collection = self._parse_json(
 | 
			
		||||
            self._search_regex(
 | 
			
		||||
                r'moduleCollection\s*:\s*new\s+ModuleCollection\((\[.+?\])\s*,\s*\$rootScope\)',
 | 
			
		||||
                webpage, 'modules'),
 | 
			
		||||
            display_id)
 | 
			
		||||
        modules = self._search_regex(
 | 
			
		||||
            r'moduleCollection\s*:\s*new\s+ModuleCollection\((\[.+?\])\s*,\s*\$rootScope\)',
 | 
			
		||||
            webpage, 'modules', default=None)
 | 
			
		||||
 | 
			
		||||
        if modules:
 | 
			
		||||
            collection = self._parse_json(modules, display_id)
 | 
			
		||||
        else:
 | 
			
		||||
            # Webpage may be served in different layout (see
 | 
			
		||||
            # https://github.com/rg3/youtube-dl/issues/7607)
 | 
			
		||||
            collection = self._parse_json(
 | 
			
		||||
                self._search_regex(
 | 
			
		||||
                    r'var\s+initialState\s*=\s*({.+?});\n', webpage, 'initial state'),
 | 
			
		||||
                display_id)['course']['modules']
 | 
			
		||||
 | 
			
		||||
        module, clip = None, None
 | 
			
		||||
 | 
			
		||||
        for module_ in collection:
 | 
			
		||||
            if module_.get('moduleName') == name:
 | 
			
		||||
            if name in (module_.get('moduleName'), module_.get('name')):
 | 
			
		||||
                module = module_
 | 
			
		||||
                for clip_ in module_.get('clips', []):
 | 
			
		||||
                    clip_index = clip_.get('clipIndex')
 | 
			
		||||
                    if clip_index is None:
 | 
			
		||||
                        clip_index = clip_.get('index')
 | 
			
		||||
                    if clip_index is None:
 | 
			
		||||
                        continue
 | 
			
		||||
                    if compat_str(clip_index) == clip_id:
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user