[imagehosts] combine imgdrive/taxi/wallet extractors
less class definitions for the same code
This commit is contained in:
@@ -408,33 +408,22 @@ class PicstateImageExtractor(ImagehostImageExtractor):
|
||||
class ImgdriveImageExtractor(ImagehostImageExtractor):
|
||||
"""Extractor for single images from imgdrive.net"""
|
||||
category = "imgdrive"
|
||||
pattern = r"(?:https?://)?((?:www\.)?imgdrive\.net/img-(\w+)\.html)"
|
||||
pattern = (r"(?:https?://)?(?:www\.)?(img(drive|taxi|wallet)\.(?:com|net)"
|
||||
r"/img-(\w+)\.html)")
|
||||
example = "https://imgdrive.net/img-0123456789abc.html"
|
||||
|
||||
def __init__(self, match):
|
||||
path, category, self.token = match.groups()
|
||||
self.page_url = f"https://{path}"
|
||||
self.category = f"img{category}"
|
||||
Extractor.__init__(self, match)
|
||||
|
||||
def get_info(self, page):
|
||||
title, pos = text.extract(
|
||||
page, 'property="og:title" content="', '"')
|
||||
url , pos = text.extract(
|
||||
image, pos = text.extract(
|
||||
page, 'property="og:image" content="', '"', pos)
|
||||
return url.replace("/small/", "/big/"), title.rsplit(" | ", 2)[0]
|
||||
|
||||
|
||||
class ImgtaxiImageExtractor(ImagehostImageExtractor):
|
||||
"""Extractor for single images from imgtaxi.com"""
|
||||
category = "imgtaxi"
|
||||
pattern = r"(?:https?://)?((?:www\.)?imgtaxi\.com/img-(\w+)\.html)"
|
||||
example = "https://imgtaxi.com/img-0123456789abc.html"
|
||||
|
||||
get_info = ImgdriveImageExtractor.get_info
|
||||
|
||||
|
||||
class ImgwalletImageExtractor(ImagehostImageExtractor):
|
||||
"""Extractor for single images from imgwallet.com"""
|
||||
category = "imgwallet"
|
||||
pattern = r"(?:https?://)?((?:www\.)?imgwallet\.com/img-(\w+)\.html)"
|
||||
example = "https://imgwallet.com/img-0123456789abc.html"
|
||||
|
||||
get_info = ImgdriveImageExtractor.get_info
|
||||
return image.replace("/small/", "/big/"), title.rsplit(" | ", 2)[0]
|
||||
|
||||
|
||||
class SilverpicImageExtractor(ImagehostImageExtractor):
|
||||
@@ -447,7 +436,7 @@ class SilverpicImageExtractor(ImagehostImageExtractor):
|
||||
def get_info(self, page):
|
||||
url, pos = text.extract(page, '<img src="/img/', '"')
|
||||
alt, pos = text.extract(page, 'alt="', '"', pos)
|
||||
return "https://silverpic.com/img/" + url, alt
|
||||
return f"https://silverpic.com/img/{url}", alt
|
||||
|
||||
def metadata(self, page):
|
||||
pos = page.find('<img src="/img/')
|
||||
|
||||
@@ -653,6 +653,12 @@ def build_extractor_list():
|
||||
default["wikifeetx"] = default["wikifeet"]
|
||||
domains["wikifeetx"] = "https://www.wikifeetx.com/"
|
||||
|
||||
# imgdrive / imgtaxi / imgwallet
|
||||
default["imgtaxi"] = default["imgdrive"]
|
||||
default["imgwallet"] = default["imgdrive"]
|
||||
domains["imgtaxi"] = "https://imgtaxi.com/"
|
||||
domains["imgwallet"] = "https://imgwallet.com/"
|
||||
|
||||
# add extra e621 extractors
|
||||
categories["E621"]["e621"].extend(default.pop("e621", ()))
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ __tests__ = (
|
||||
{
|
||||
"#url" : "https://imgtaxi.com/img-61c71cea940d6.html",
|
||||
"#category": ("imagehost", "imgtaxi", "image"),
|
||||
"#class" : imagehosts.ImgtaxiImageExtractor,
|
||||
"#class" : imagehosts.ImgdriveImageExtractor,
|
||||
"#results" : "https://imgtaxi.com/images/big/2021/12/25/61c71cea940d5.jpg",
|
||||
|
||||
"filename" : "SLn_0001",
|
||||
|
||||
@@ -11,7 +11,7 @@ __tests__ = (
|
||||
{
|
||||
"#url" : "https://imgwallet.com/img-62fd3045ceec6.html",
|
||||
"#category": ("imagehost", "imgwallet", "image"),
|
||||
"#class" : imagehosts.ImgwalletImageExtractor,
|
||||
"#class" : imagehosts.ImgdriveImageExtractor,
|
||||
"#results" : "https://imgwallet.com/images/big/2022/08/17/62fd3045ceec5.JPG",
|
||||
|
||||
"filename" : "S0ph (1)",
|
||||
|
||||
Reference in New Issue
Block a user