[hentaifoundry] extract 'categories' metadata (#8656)

* [hentaifoundry] Add support for categories
* rename 'hf_categories' to 'categories'
* move code into '_extract_categories()' method
* update tests

---------

Co-authored-by: Mike Fährmann <mike_faehrmann@web.de>
This commit is contained in:
icelit4
2025-12-08 01:15:59 -08:00
committed by GitHub
parent 9a8746f12d
commit 2ab74dfbf1
2 changed files with 16 additions and 4 deletions

View File

@@ -86,6 +86,7 @@ class HentaifoundryExtractor(Extractor):
.replace("\r\n", "\n")),
"ratings" : [text.unescape(r) for r in text.extract_iter(extr(
"class='ratings_box'", "</div>"), "title='", "'")],
"categories" : self._extract_categories(extr),
"date" : self.parse_datetime_iso(extr("datetime='", "'")),
"views" : text.parse_int(extr(">Views</span>", "<")),
"score" : text.parse_int(extr(">Vote Score</span>", "<")),
@@ -141,11 +142,17 @@ class HentaifoundryExtractor(Extractor):
path = extr('class="pdfLink" href="', '"')
data["src"] = self.root + path
data["index"] = text.parse_int(path.rsplit("/", 2)[1])
data["categories"] = self._extract_categories(extr)
data["ratings"] = [text.unescape(r) for r in text.extract_iter(extr(
"class='ratings_box'", "</div>"), "title='", "'")]
return text.nameext_from_url(data["src"], data)
def _extract_categories(self, extr):
return [text.unescape(text.extr(c, ">", "<"))
for c in extr('class="categoryBreadcrumbs">', "</span>")
.split("&raquo;")]
def _request_check(self, url, **kwargs):
self.request = self._request_original