summaryrefslogtreecommitdiffstats
path: root/gallery_dl/extractor/newgrounds.py
diff options
context:
space:
mode:
Diffstat (limited to 'gallery_dl/extractor/newgrounds.py')
-rw-r--r--gallery_dl/extractor/newgrounds.py17
1 files changed, 13 insertions, 4 deletions
diff --git a/gallery_dl/extractor/newgrounds.py b/gallery_dl/extractor/newgrounds.py
index e9fde97..d9ab336 100644
--- a/gallery_dl/extractor/newgrounds.py
+++ b/gallery_dl/extractor/newgrounds.py
@@ -72,6 +72,8 @@ class NewgroundsExtractor(Extractor):
"""Return general metadata"""
def login(self):
+ if self._check_cookies(self.cookienames):
+ return
username, password = self._get_auth_info()
if username:
self._update_cookies(self._login_impl(username, password))
@@ -81,10 +83,13 @@ class NewgroundsExtractor(Extractor):
self.log.info("Logging in as %s", username)
url = self.root + "/passport/"
- page = self.request(url).text
- headers = {"Origin": self.root, "Referer": url}
+ response = self.request(url)
+ if response.history and response.url.endswith("/social"):
+ return self.session.cookies
- url = text.urljoin(self.root, text.extract(page, 'action="', '"')[0])
+ headers = {"Origin": self.root, "Referer": url}
+ url = text.urljoin(self.root, text.extract(
+ response.text, 'action="', '"')[0])
data = {
"username": username,
"password": password,
@@ -260,7 +265,11 @@ class NewgroundsExtractor(Extractor):
msg = ", ".join(text.unescape(e) for e in data["errors"])
raise exception.StopExtraction(msg)
- for year, items in data["items"].items():
+ items = data.get("items")
+ if not items:
+ return
+
+ for year, items in items.items():
for item in items:
page_url = text.extract(item, 'href="', '"')[0]
if page_url[0] == "/":