From 65fbd3972d7673b8ede5a9efa3c3bd3eb36902d0 Mon Sep 17 00:00:00 2001 From: Marcus Minhorst <136136617+the-phinet@users.noreply.github.com> Date: Fri, 1 Aug 2025 01:48:00 -0400 Subject: [PATCH] [picstate] add 'image' extractor (#7946) --- docs/supportedsites.md | 6 ++++++ gallery_dl/extractor/imagehosts.py | 13 ++++++++++++ test/results/picstate.py | 34 ++++++++++++++++++++++++++++++ 3 files changed, 53 insertions(+) create mode 100644 test/results/picstate.py diff --git a/docs/supportedsites.md b/docs/supportedsites.md index 2118af66..f311e82e 100644 --- a/docs/supportedsites.md +++ b/docs/supportedsites.md @@ -733,6 +733,12 @@ Consider all listed sites to potentially be NSFW. Galleries + + Picstate + https://picstate.com/ + individual Images + + Pictoa https://pictoa.com/ diff --git a/gallery_dl/extractor/imagehosts.py b/gallery_dl/extractor/imagehosts.py index 0e5ce7ef..5209d35d 100644 --- a/gallery_dl/extractor/imagehosts.py +++ b/gallery_dl/extractor/imagehosts.py @@ -383,3 +383,16 @@ class FappicImageExtractor(ImagehostImageExtractor): filename = filename[13:] return url, filename + + +class PicstateImageExtractor(ImagehostImageExtractor): + """Extractor for single images from picstate.com""" + category = "picstate" + pattern = r"(?:https?://)?((?:www\.)?picstate\.com/view/full/([^/?#]+))" + example = "https://picstate.com/view/full/123" + + def get_info(self, page): + pos = page.index(' id="image_container"') + url , pos = text.extract(page, '