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:
parent
4474cea31b
commit
fde82ab0ce
@ -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>
|
||||
|
@ -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
|
||||
|
||||
|
@ -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,
|
||||
},
|
||||
|
||||
)
|
||||
|
Loading…
Reference in New Issue
Block a user