1
0
mirror of https://github.com/mikf/gallery-dl.git synced 2024-11-25 04:02:32 +01:00

[imagechest] add 'user' extractor (#5143)

This commit is contained in:
Mike Fährmann 2024-02-11 16:42:30 +01:00
parent 4474cea31b
commit fde82ab0ce
No known key found for this signature in database
GPG Key ID: 5680CA389D365A88
3 changed files with 49 additions and 3 deletions

View File

@ -352,7 +352,7 @@ Consider all listed sites to potentially be NSFW.
<tr>
<td>ImageChest</td>
<td>https://imgchest.com/</td>
<td>Galleries</td>
<td>Galleries, User Profiles</td>
<td></td>
</tr>
<tr>

View File

@ -9,15 +9,17 @@
"""Extractors for https://imgchest.com/"""
from .common import GalleryExtractor
from .common import GalleryExtractor, Extractor, Message
from .. import text, exception
BASE_PATTERN = r"(?:https?://)?(?:www\.)?imgchest\.com"
class ImagechestGalleryExtractor(GalleryExtractor):
"""Extractor for image galleries from imgchest.com"""
category = "imagechest"
root = "https://imgchest.com"
pattern = r"(?:https?://)?(?:www\.)?imgchest\.com/p/([A-Za-z0-9]{11})"
pattern = BASE_PATTERN + r"/p/([A-Za-z0-9]{11})"
example = "https://imgchest.com/p/abcdefghijk"
def __init__(self, match):
@ -83,6 +85,42 @@ class ImagechestGalleryExtractor(GalleryExtractor):
]
class ImagechestUserExtractor(Extractor):
"""Extractor for imgchest.com user profiles"""
category = "imagechest"
subcategory = "user"
root = "https://imgchest.com"
pattern = BASE_PATTERN + r"/u/([^/?#]+)"
example = "https://imgchest.com/u/USER"
def __init__(self, match):
Extractor.__init__(self, match)
self.user = match.group(1)
def items(self):
url = self.root + "/api/posts"
params = {
"page" : 1,
"sort" : "new",
"tag" : "",
"q" : "",
"username": text.unquote(self.user),
"nsfw" : "true",
}
while True:
try:
data = self.request(url, params=params).json()["data"]
except (TypeError, KeyError):
return
for gallery in data:
gallery["_extractor"] = ImagechestGalleryExtractor
yield Message.Queue, gallery["link"], gallery
params["page"] += 1
class ImagechestAPI():
"""Interface for the Image Chest API

View File

@ -41,4 +41,12 @@ __tests__ = (
"#exception": exception.NotFoundError,
},
{
"#url" : "https://imgchest.com/u/LunarLandr",
"#category": ("", "imagechest", "user"),
"#class" : imagechest.ImagechestUserExtractor,
"#pattern" : imagechest.ImagechestGalleryExtractor.pattern,
"#count" : 279,
},
)