summaryrefslogtreecommitdiffstats
path: root/gallery_dl/extractor/imagehosts.py
diff options
context:
space:
mode:
Diffstat (limited to 'gallery_dl/extractor/imagehosts.py')
-rw-r--r--gallery_dl/extractor/imagehosts.py32
1 files changed, 29 insertions, 3 deletions
diff --git a/gallery_dl/extractor/imagehosts.py b/gallery_dl/extractor/imagehosts.py
index 69455a8..622509f 100644
--- a/gallery_dl/extractor/imagehosts.py
+++ b/gallery_dl/extractor/imagehosts.py
@@ -54,6 +54,7 @@ class ImagehostImageExtractor(Extractor):
url, filename = self.get_info(page)
data = text.nameext_from_url(filename, {"token": self.token})
+ data.update(self.metadata(page))
if self.https and url.startswith("http:"):
url = "https:" + url[5:]
@@ -63,6 +64,10 @@ class ImagehostImageExtractor(Extractor):
def get_info(self, page):
"""Find image-url and string to get filename from"""
+ def metadata(self, page):
+ """Return additional metadata"""
+ return ()
+
class ImxtoImageExtractor(ImagehostImageExtractor):
"""Extractor for single images from imx.to"""
@@ -72,13 +77,23 @@ class ImxtoImageExtractor(ImagehostImageExtractor):
test = (
("https://imx.to/i/1qdeva", { # new-style URL
"url": "ab2173088a6cdef631d7a47dec4a5da1c6a00130",
- "keyword": "1153a986c939d7aed599905588f5c940048bc517",
"content": "0c8768055e4e20e7c7259608b67799171b691140",
+ "keyword": {
+ "size" : 18,
+ "width" : 64,
+ "height": 32,
+ "hash" : "94d56c599223c59f3feb71ea603484d1",
+ },
}),
("https://imx.to/img-57a2050547b97.html", { # old-style URL
"url": "a83fe6ef1909a318c4d49fcf2caf62f36c3f9204",
- "keyword": "fd2240aee77a21b8252d5b829a1f7e542f927f09",
"content": "54592f2635674c25677c6872db3709d343cdf92f",
+ "keyword": {
+ "size" : 5284,
+ "width" : 320,
+ "height": 160,
+ "hash" : "40da6aaa7b8c42b18ef74309bbc713fc",
+ },
}),
("https://img.yt/img-57a2050547b97.html", { # img.yt domain
"url": "a83fe6ef1909a318c4d49fcf2caf62f36c3f9204",
@@ -108,6 +123,17 @@ class ImxtoImageExtractor(ImagehostImageExtractor):
filename += splitext(url)[1]
return url, filename or url
+ def metadata(self, page):
+ extr = text.extract_from(page, page.index("[ FILESIZE <"))
+ size = extr(">", "</span>").replace(" ", "")[:-1]
+ width, _, height = extr(">", " px</span>").partition("x")
+ return {
+ "size" : text.parse_bytes(size),
+ "width" : text.parse_int(width),
+ "height": text.parse_int(height),
+ "hash" : extr(">", "</span>"),
+ }
+
class AcidimgImageExtractor(ImagehostImageExtractor):
"""Extractor for single images from acidimg.cc"""
@@ -259,7 +285,7 @@ class ViprImageExtractor(ImagehostImageExtractor):
})
def get_info(self, page):
- url = text.extract(page, '<img src="', '"')[0]
+ url = text.extr(page, '<img src="', '"')
return url, url