[imagetwist:gallery] extract 'gallery_title' & 'gallery_id' metadata

This commit is contained in:
Mike Fährmann
2026-01-09 15:36:55 +01:00
parent 1e2a2c258c
commit 7a2f15348f
2 changed files with 24 additions and 8 deletions

View File

@@ -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("&amp;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):

View File

@@ -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",
},
)