You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
from __future__ import unicode_literals
try: from .lazy_extractors import * from .lazy_extractors import _ALL_CLASSES _LAZY_LOADER = True except ImportError: _LAZY_LOADER = False from .extractors import *
_ALL_CLASSES = [ klass for name, klass in globals().items() if name.endswith('IE') and name != 'GenericIE' ] _ALL_CLASSES.append(GenericIE)
def gen_extractor_classes(): """ Return a list of supported extractors.
The order does matter; the first extractor matched is the one handling the URL. """
return _ALL_CLASSES
def gen_extractors(): """ Return a list of an instance of every supported extractor.
The order does matter; the first extractor matched is the one handling the URL. """
return [klass() for klass in gen_extractor_classes()]
def list_extractors(age_limit): """
Return a list of extractors that are suitable for the given age, sorted by extractor ID. """
return sorted( filter(lambda ie: ie.is_suitable(age_limit), gen_extractors()), key=lambda ie: ie.IE_NAME.lower())
def get_info_extractor(ie_name): """Returns the info extractor class with the given ie_name""" return globals()[ie_name + 'IE']
|