[imagetwist:gallery] extract 'gallery_title' & 'gallery_id' metadata
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Copyright 2016-2025 Mike Fährmann
|
||||
# Copyright 2016-2026 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
|
||||
@@ -205,8 +205,8 @@ class ImagevenueImageExtractor(ImagehostImageExtractor):
|
||||
class ImagetwistImageExtractor(ImagehostImageExtractor):
|
||||
"""Extractor for single images from imagetwist.com"""
|
||||
category = "imagetwist"
|
||||
pattern = (r"(?:https?://)?((?:www\.|phun\.)?"
|
||||
r"image(?:twist|haha)\.com/([a-z0-9]{12}))")
|
||||
pattern = (r"(?:https?://)?((?:www\.|phun\.)?image(?:twist|haha)\.com"
|
||||
r"/([a-z0-9]{12}))")
|
||||
example = "https://imagetwist.com/123456abcdef/NAME.EXT"
|
||||
|
||||
@property
|
||||
@@ -227,18 +227,24 @@ class ImagetwistGalleryExtractor(ImagehostImageExtractor):
|
||||
category = "imagetwist"
|
||||
subcategory = "gallery"
|
||||
pattern = (r"(?:https?://)?((?:www\.|phun\.)?image(?:twist|haha)\.com/("
|
||||
r"p/[^/?#]+/\d+|"
|
||||
r"p/[^/?#]+/(\d+)|"
|
||||
r"\?[^#]*\bfld_id=\d+[^#]*&page=\d+))")
|
||||
example = "https://imagetwist.com/p/USER/12345/TITLE"
|
||||
|
||||
def items(self):
|
||||
url = self.page_url
|
||||
root = url[:url.find("/", 8)]
|
||||
data = {"_extractor": ImagetwistImageExtractor}
|
||||
page = self.request(url).text
|
||||
|
||||
extr = text.extract_from(page)
|
||||
data = {
|
||||
"_extractor" : ImagetwistImageExtractor,
|
||||
"gallery_title": text.unescape(extr('page_main_title">', "<")),
|
||||
"gallery_id" : self.groups[2] or extr("&fld_id=", "&"),
|
||||
}
|
||||
del extr
|
||||
|
||||
while True:
|
||||
page = self.request(url).text
|
||||
|
||||
gallery = text.extr(page, 'class="gallerys', "</div")
|
||||
for path in text.extract_iter(gallery, ' href="', '"'):
|
||||
yield Message.Queue, root + path, data
|
||||
@@ -247,7 +253,8 @@ class ImagetwistGalleryExtractor(ImagehostImageExtractor):
|
||||
if pos < 0:
|
||||
break
|
||||
qs = text.unescape(text.rextr(page, "href='", "'", pos))
|
||||
url = f"{root}/{qs}"
|
||||
|
||||
page = self.request(f"{root}/{qs}").text
|
||||
|
||||
|
||||
class ImgadultImageExtractor(ImagehostImageExtractor):
|
||||
|
||||
@@ -64,6 +64,9 @@ __tests__ = (
|
||||
"https://imagetwist.com/n3td3a6vzzed",
|
||||
"https://imagetwist.com/8uz6lmg31nmc",
|
||||
),
|
||||
|
||||
"gallery_id" : "747223",
|
||||
"gallery_title": "digits",
|
||||
},
|
||||
|
||||
{
|
||||
@@ -73,6 +76,9 @@ __tests__ = (
|
||||
"#class" : imagehosts.ImagetwistGalleryExtractor,
|
||||
"#pattern" : imagehosts.ImagetwistImageExtractor.pattern,
|
||||
"#count" : 100,
|
||||
|
||||
"gallery_id" : "806105",
|
||||
"gallery_title": "multi",
|
||||
},
|
||||
|
||||
{
|
||||
@@ -82,6 +88,9 @@ __tests__ = (
|
||||
"#class" : imagehosts.ImagetwistGalleryExtractor,
|
||||
"#pattern" : imagehosts.ImagetwistImageExtractor.pattern,
|
||||
"#count" : 60,
|
||||
|
||||
"gallery_id" : "806105",
|
||||
"gallery_title": "multi",
|
||||
},
|
||||
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user