def build_extractor_list(): """Generate a sorted list of lists of extractor classes""" categories = collections.defaultdict(lambda: collections.defaultdict(list)) default = categories[""] domains = {} for extr in extractor._list_classes(): category = extr.category if category in IGNORE_LIST: continue if category: default[category].append(extr.subcategory) if category not in domains: domains[category] = domain(extr) else: base = categories[extr.basecategory] for category, root in extr.instances: base[category].append(extr.subcategory) if category not in domains: domains[category] = root + "/" # sort subcategory lists for base in categories.values(): for subcategories in base.values(): subcategories.sort(key=subcategory_key) # add e-hentai.org default["e-hentai"] = default["exhentai"] domains["e-hentai"] = domains["exhentai"].replace("x", "-") return categories, domains
def build_extractor_list(): """Generate a sorted list of lists of extractor classes""" categories = collections.defaultdict(lambda: collections.defaultdict(list)) default = categories[""] domains = {} for extr in extractor._list_classes(): category = extr.category if category in IGNORE_LIST: continue if category: default[category].append(extr.subcategory) if category not in domains: domains[category] = domain(extr) else: base = categories[extr.basecategory] for category, root in extr.instances: base[category].append(extr.subcategory) if category not in domains: if not root: # use domain from first matching test for url, _ in extr._get_tests(): if extr.from_url(url).category == category: root = url[:url.index("/", 8)] break else: continue domains[category] = root + "/" # sort subcategory lists for base in categories.values(): for subcategories in base.values(): subcategories.sort(key=subcategory_key) # add e-hentai.org default["e-hentai"] = default["exhentai"] domains["e-hentai"] = domains["exhentai"].replace("x", "-") # add hentai-cosplays sister sites (hentai-img, p**n-images-xxx) default["hentaiimg"] = default["hentaicosplays"] domains["hentaiimg"] = "https://hentai-img.com/" default["pornimagesxxx"] = default["hentaicosplays"] domains["pornimagesxxx"] = "https://p**n-images-xxx.com/" return categories, domains