diff options
| author | 2025-01-28 19:12:09 -0500 | |
|---|---|---|
| committer | 2025-01-28 19:12:09 -0500 | |
| commit | a26df18796ff4e506b16bf32fcec9336233b9e2e (patch) | |
| tree | 876512f59831cd670a90a0bc92bc85def6ea3d82 /gallery_dl/extractor/khinsider.py | |
| parent | 0532a387ef5b7fcb4507a9b094dca37a5f635fe1 (diff) | |
New upstream version 1.28.5.upstream/1.28.5
Diffstat (limited to 'gallery_dl/extractor/khinsider.py')
| -rw-r--r-- | gallery_dl/extractor/khinsider.py | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/gallery_dl/extractor/khinsider.py b/gallery_dl/extractor/khinsider.py index d0c9c30..e779e97 100644 --- a/gallery_dl/extractor/khinsider.py +++ b/gallery_dl/extractor/khinsider.py @@ -36,22 +36,36 @@ class KhinsiderSoundtrackExtractor(AsynchronousMixin, Extractor): data = self.metadata(page) yield Message.Directory, data - for track in self.tracks(page): + + if self.config("covers", False): + for num, url in enumerate(self._extract_covers(page), 1): + cover = text.nameext_from_url( + url, {"url": url, "num": num, "type": "cover"}) + cover.update(data) + yield Message.Url, url, cover + + for track in self._extract_tracks(page): track.update(data) + track["type"] = "track" yield Message.Url, track["url"], track def metadata(self, page): extr = text.extract_from(page) return {"album": { "name" : text.unescape(extr("<h2>", "<")), - "platform": extr("Platforms: <a", "<").rpartition(">")[2], + "platform": text.split_html(extr("Platforms: ", "<br>"))[::2], + "year": extr("Year: <b>", "<"), + "catalog": extr("Catalog Number: <b>", "<"), + "developer": text.remove_html(extr(" Developed by: ", "</")), + "publisher": text.remove_html(extr(" Published by: ", "</")), "count": text.parse_int(extr("Number of Files: <b>", "<")), "size" : text.parse_bytes(extr("Total Filesize: <b>", "<")[:-1]), "date" : extr("Date Added: <b>", "<"), "type" : text.remove_html(extr("Album type: <b>", "</b>")), + "uploader": text.remove_html(extr("Uploaded by: ", "</")), }} - def tracks(self, page): + def _extract_tracks(self, page): fmt = self.config("format", ("mp3",)) if fmt and isinstance(fmt, str): if fmt == "all": @@ -75,3 +89,9 @@ class KhinsiderSoundtrackExtractor(AsynchronousMixin, Extractor): yield track if first: yield first + + def _extract_covers(self, page): + return [ + text.unescape(text.extr(cover, ' href="', '"')) + for cover in text.extract_iter(page, ' class="albumImage', '</') + ] |
