From ebdfcd3cd3f76534a590ba08933ff7ea54813316 Mon Sep 17 00:00:00 2001 From: Unit 193 Date: Sat, 24 Dec 2022 17:14:46 -0500 Subject: New upstream version 1.24.2. --- gallery_dl/extractor/zerochan.py | 107 +++++++++++++++++++++++++-------------- 1 file changed, 70 insertions(+), 37 deletions(-) (limited to 'gallery_dl/extractor/zerochan.py') diff --git a/gallery_dl/extractor/zerochan.py b/gallery_dl/extractor/zerochan.py index c0d43fe..74da615 100644 --- a/gallery_dl/extractor/zerochan.py +++ b/gallery_dl/extractor/zerochan.py @@ -11,8 +11,6 @@ from .booru import BooruExtractor from ..cache import cache from .. import text, exception -from xml.etree import ElementTree - BASE_PATTERN = r"(?:https?://)?(?:www\.)?zerochan\.net" @@ -27,12 +25,13 @@ class ZerochanExtractor(BooruExtractor): cookienames = ("z_id", "z_hash") def login(self): + self._logged_in = True if not self._check_cookies(self.cookienames): username, password = self._get_auth_info() if username: self._update_cookies(self._login_impl(username, password)) - # force legacy layout - self.session.cookies.set("v3", "0", domain=self.cookiedomain) + else: + self._logged_in = False @cache(maxage=90*86400, keyarg=1) def _login_impl(self, username, password): @@ -60,36 +59,50 @@ class ZerochanExtractor(BooruExtractor): url = "{}/{}".format(self.root, entry_id) extr = text.extract_from(self.request(url).text) - return { - "id" : entry_id, - "author": extr('"author": "', '"'), + data = { + "id" : text.parse_int(entry_id), + "author" : extr('"author": "', '"'), "file_url": extr('"contentUrl": "', '"'), - "date" : text.parse_datetime(extr( - '"datePublished": "', '"'), "%a %b %d %H:%M:%S %Y"), - "width" : extr('"width": "', ' '), - "height": extr('"height": "', ' '), - "size" : text.parse_bytes(extr('"contentSize": "', 'B')), - "path" : text.split_html(extr( - 'class="breadcrumbs', '

'))[3::2], - "tags" : extr('alt="Tags: Anime, ', '"').split(", ") + "date" : text.parse_datetime(extr('"datePublished": "', '"')), + "width" : text.parse_int(extr('"width": "', ' ')), + "height" : text.parse_int(extr('"height": "', ' ')), + "size" : text.parse_bytes(extr('"contentSize": "', 'B')), + "path" : text.split_html(extr( + 'class="breadcrumbs', '

'))[2:], + "uploader": extr('href="/user/', '"'), + "tags" : extr('