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('