summaryrefslogtreecommitdiffstats
path: root/gallery_dl/extractor/gfycat.py
diff options
context:
space:
mode:
Diffstat (limited to 'gallery_dl/extractor/gfycat.py')
-rw-r--r--gallery_dl/extractor/gfycat.py16
1 files changed, 13 insertions, 3 deletions
diff --git a/gallery_dl/extractor/gfycat.py b/gallery_dl/extractor/gfycat.py
index f878dbd..4e62165 100644
--- a/gallery_dl/extractor/gfycat.py
+++ b/gallery_dl/extractor/gfycat.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
-# Copyright 2017-2020 Mike Fährmann
+# Copyright 2017-2021 Mike Fährmann
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
@@ -22,7 +22,7 @@ class GfycatExtractor(Extractor):
def __init__(self, match):
Extractor.__init__(self, match)
- self.key = match.group(1)
+ self.key = match.group(1).lower()
self.formats = (self.config("format", "mp4"), "mp4", "webm", "gif")
def items(self):
@@ -33,6 +33,7 @@ class GfycatExtractor(Extractor):
continue
url = self._select_format(gfycat)
gfycat.update(metadata)
+ gfycat["date"] = text.parse_timestamp(gfycat.get("createDate"))
yield Message.Directory, gfycat
yield Message.Url, url, gfycat
@@ -41,8 +42,11 @@ class GfycatExtractor(Extractor):
key = fmt + "Url"
if key in gfyitem:
url = gfyitem[key]
+ if url.startswith("http:"):
+ url = "https" + url[4:]
gfyitem["extension"] = url.rpartition(".")[2]
return url
+ gfyitem["extension"] = ""
return ""
def metadata(self):
@@ -102,6 +106,7 @@ class GfycatImageExtractor(GfycatExtractor):
"title": "Bottom's up",
"username": "jackson3oh3",
"createDate": 1495884169,
+ "date": "dt:2017-05-27 11:22:49",
"md5": "a4796e05b0db9ba9ce5140145cd318aa",
"width": 400,
"height": 224,
@@ -143,6 +148,7 @@ class GfycatImageExtractor(GfycatExtractor):
self.log.warning("Skipping '%s' (malformed)", gfycat["gfyId"])
return
url = self._select_format(gfycat)
+ gfycat["date"] = text.parse_timestamp(gfycat.get("createDate"))
yield Message.Directory, gfycat
yield Message.Url, url, gfycat
@@ -190,7 +196,11 @@ class GfycatAPI():
while True:
data = self._call(endpoint, params)
gfycats = data["gfycats"]
- yield from gfycats
+
+ for gfycat in gfycats:
+ if "gfyName" not in gfycat:
+ gfycat.update(self.gfycat(gfycat["gfyId"]))
+ yield gfycat
if "found" not in data and len(gfycats) < params["count"] or \
not data["gfycats"]: