diff --git a/docs/supportedsites.md b/docs/supportedsites.md
index 46d6d92f..5835497e 100644
--- a/docs/supportedsites.md
+++ b/docs/supportedsites.md
@@ -392,8 +392,8 @@ Consider all sites to be NSFW unless otherwise known.
|
- | Jpgchurch |
- https://jpg.church/ |
+ JPG Fish |
+ https://jpg.fishing/ |
Albums, individual Images, User Profiles |
|
diff --git a/gallery_dl/extractor/__init__.py b/gallery_dl/extractor/__init__.py
index 0751f739..38bef091 100644
--- a/gallery_dl/extractor/__init__.py
+++ b/gallery_dl/extractor/__init__.py
@@ -66,7 +66,7 @@ modules = [
"instagram",
"issuu",
"itaku",
- "jpgchurch",
+ "jpgfish",
"kabeuchi",
"keenspot",
"kemonoparty",
diff --git a/gallery_dl/extractor/jpgchurch.py b/gallery_dl/extractor/jpgfish.py
similarity index 80%
rename from gallery_dl/extractor/jpgchurch.py
rename to gallery_dl/extractor/jpgfish.py
index 34910d10..e611bf1c 100644
--- a/gallery_dl/extractor/jpgchurch.py
+++ b/gallery_dl/extractor/jpgfish.py
@@ -1,21 +1,21 @@
# -*- coding: utf-8 -*-
-# Copyright 2022 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
# published by the Free Software Foundation.
+"""Extractors for https://jpg.fishing/"""
+
from .common import Extractor, Message
from .. import text
-BASE_PATTERN = r"(?:https?://)?jpg\.church"
+BASE_PATTERN = r"(?:https?://)?jpg\.(?:fishing|church)"
-class JpgchurchExtractor(Extractor):
- """Base class for Jpgchurch extractors"""
- category = "jpgchurch"
- root = "https://jpg.church"
+class JpgfishExtractor(Extractor):
+ """Base class for jpgfish extractors"""
+ category = "jpgfish"
+ root = "https://jpg.fishing"
directory_fmt = ("{category}", "{user}", "{album}",)
archive_fmt = "{user}_{filename}"
@@ -60,12 +60,12 @@ class JpgchurchExtractor(Extractor):
yield image
-class JpgchurchImageExtractor(JpgchurchExtractor):
- """Extractor for Jpgchurch Images"""
+class JpgfishImageExtractor(JpgfishExtractor):
+ """Extractor for jpgfish Images"""
subcategory = "image"
pattern = BASE_PATTERN + r"/img/([^/?#]+)"
test = (
- ("https://jpg.church/img/funnymeme.LecXGS", {
+ ("https://jpg.fishing/img/funnymeme.LecXGS", {
"pattern": r"^https://[^/]+/.*\.(jpg|png)",
}),
("https://jpg.church/img/hannahowo-00457.auCruA", {
@@ -75,7 +75,7 @@ class JpgchurchImageExtractor(JpgchurchExtractor):
)
def __init__(self, match):
- JpgchurchExtractor.__init__(self, match)
+ JpgfishExtractor.__init__(self, match)
self.image = match.group(1)
def items(self):
@@ -87,12 +87,12 @@ class JpgchurchImageExtractor(JpgchurchExtractor):
yield Message.Url, image["url"], image
-class JpgchurchAlbumExtractor(JpgchurchExtractor):
- """Extractor for Jpgchurch Albums"""
+class JpgfishAlbumExtractor(JpgfishExtractor):
+ """Extractor for jpgfish Albums"""
subcategory = "album"
pattern = BASE_PATTERN + r"/a(?:lbum)?/([^/?#]+)(/sub)?"
test = (
- ("https://jpg.church/album/CDilP/?sort=date_desc&page=1", {
+ ("https://jpg.fishing/album/CDilP/?sort=date_desc&page=1", {
"count": 2,
}),
("https://jpg.church/a/gunggingnsk.N9OOI", {
@@ -107,12 +107,12 @@ class JpgchurchAlbumExtractor(JpgchurchExtractor):
)
def __init__(self, match):
- JpgchurchExtractor.__init__(self, match)
+ JpgfishExtractor.__init__(self, match)
self.album, self.is_sub = match.groups()
def items(self):
url = "{}/a/{}".format(self.root, self.album)
- data = {"_extractor": JpgchurchImageExtractor}
+ data = {"_extractor": JpgfishImageExtractor}
if self.is_sub:
url += "/sub"
for album in self._get_albums(url):
@@ -123,12 +123,12 @@ class JpgchurchAlbumExtractor(JpgchurchExtractor):
yield Message.Queue, image, data
-class JpgchurchUserExtractor(JpgchurchExtractor):
- """Extractor for Jpgchurch Users"""
+class JpgfishUserExtractor(JpgfishExtractor):
+ """Extractor for jpgfish Users"""
subcategory = "user"
pattern = BASE_PATTERN + r"/(?!img|a(?:lbum)?)([^/?#]+)(/albums)?"
test = (
- ("https://jpg.church/exearco", {
+ ("https://jpg.fishing/exearco", {
"count": 3,
}),
("https://jpg.church/exearco/albums", {
@@ -137,17 +137,17 @@ class JpgchurchUserExtractor(JpgchurchExtractor):
)
def __init__(self, match):
- JpgchurchExtractor.__init__(self, match)
+ JpgfishExtractor.__init__(self, match)
self.user, self.is_album = match.groups()
def items(self):
url = "{}/{}".format(self.root, self.user)
if self.is_album:
url += "/albums"
- data = {"_extractor": JpgchurchAlbumExtractor}
+ data = {"_extractor": JpgfishAlbumExtractor}
for album in self._get_albums(url):
yield Message.Queue, album, data
else:
- data = {"_extractor": JpgchurchImageExtractor}
+ data = {"_extractor": JpgfishImageExtractor}
for image in self._get_albums(url):
yield Message.Queue, image, data
diff --git a/scripts/supportedsites.py b/scripts/supportedsites.py
index 1743efb4..a4a64067 100755
--- a/scripts/supportedsites.py
+++ b/scripts/supportedsites.py
@@ -58,7 +58,7 @@ CATEGORY_MAP = {
"imgth" : "imgth",
"imgur" : "imgur",
"joyreactor" : "JoyReactor",
- "jpgchurch" : "Jpgchurch",
+ "jpgfish" : "JPG Fish",
"kabeuchi" : "かべうち",
"kemonoparty" : "Kemono",
"kireicake" : "Kirei Cake",