[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):
|
class ImgdriveImageExtractor(ImagehostImageExtractor):
|
||||||
"""Extractor for single images from imgdrive.net"""
|
"""Extractor for single images from imgdrive.net"""
|
||||||
category = "imgdrive"
|
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"
|
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):
|
def get_info(self, page):
|
||||||
title, pos = text.extract(
|
title, pos = text.extract(
|
||||||
page, 'property="og:title" content="', '"')
|
page, 'property="og:title" content="', '"')
|
||||||
url , pos = text.extract(
|
image, pos = text.extract(
|
||||||
page, 'property="og:image" content="', '"', pos)
|
page, 'property="og:image" content="', '"', pos)
|
||||||
return url.replace("/small/", "/big/"), title.rsplit(" | ", 2)[0]
|
return image.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
|
|
||||||
|
|
||||||
|
|
||||||
class SilverpicImageExtractor(ImagehostImageExtractor):
|
class SilverpicImageExtractor(ImagehostImageExtractor):
|
||||||
@@ -447,7 +436,7 @@ class SilverpicImageExtractor(ImagehostImageExtractor):
|
|||||||
def get_info(self, page):
|
def get_info(self, page):
|
||||||
url, pos = text.extract(page, '<img src="/img/', '"')
|
url, pos = text.extract(page, '<img src="/img/', '"')
|
||||||
alt, pos = text.extract(page, 'alt="', '"', pos)
|
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):
|
def metadata(self, page):
|
||||||
pos = page.find('<img src="/img/')
|
pos = page.find('<img src="/img/')
|
||||||
|
|||||||
@@ -653,6 +653,12 @@ def build_extractor_list():
|
|||||||
default["wikifeetx"] = default["wikifeet"]
|
default["wikifeetx"] = default["wikifeet"]
|
||||||
domains["wikifeetx"] = "https://www.wikifeetx.com/"
|
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
|
# add extra e621 extractors
|
||||||
categories["E621"]["e621"].extend(default.pop("e621", ()))
|
categories["E621"]["e621"].extend(default.pop("e621", ()))
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ __tests__ = (
|
|||||||
{
|
{
|
||||||
"#url" : "https://imgtaxi.com/img-61c71cea940d6.html",
|
"#url" : "https://imgtaxi.com/img-61c71cea940d6.html",
|
||||||
"#category": ("imagehost", "imgtaxi", "image"),
|
"#category": ("imagehost", "imgtaxi", "image"),
|
||||||
"#class" : imagehosts.ImgtaxiImageExtractor,
|
"#class" : imagehosts.ImgdriveImageExtractor,
|
||||||
"#results" : "https://imgtaxi.com/images/big/2021/12/25/61c71cea940d5.jpg",
|
"#results" : "https://imgtaxi.com/images/big/2021/12/25/61c71cea940d5.jpg",
|
||||||
|
|
||||||
"filename" : "SLn_0001",
|
"filename" : "SLn_0001",
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ __tests__ = (
|
|||||||
{
|
{
|
||||||
"#url" : "https://imgwallet.com/img-62fd3045ceec6.html",
|
"#url" : "https://imgwallet.com/img-62fd3045ceec6.html",
|
||||||
"#category": ("imagehost", "imgwallet", "image"),
|
"#category": ("imagehost", "imgwallet", "image"),
|
||||||
"#class" : imagehosts.ImgwalletImageExtractor,
|
"#class" : imagehosts.ImgdriveImageExtractor,
|
||||||
"#results" : "https://imgwallet.com/images/big/2022/08/17/62fd3045ceec5.JPG",
|
"#results" : "https://imgwallet.com/images/big/2022/08/17/62fd3045ceec5.JPG",
|
||||||
|
|
||||||
"filename" : "S0ph (1)",
|
"filename" : "S0ph (1)",
|
||||||
|
|||||||
Reference in New Issue
Block a user