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

[pornpics] add 'gallery' extractor (#263, #3544, #3654)

This commit is contained in:
Mike Fährmann 2023-02-17 14:53:12 +01:00
parent 7bdc1d6d3d
commit 79bc82884c
No known key found for this signature in database
GPG Key ID: 5680CA389D365A88
4 changed files with 91 additions and 0 deletions

View File

@ -691,6 +691,12 @@ Consider all sites to be NSFW unless otherwise known.
<td>Galleries, User Profiles</td>
<td></td>
</tr>
<tr>
<td>PornPics.com</td>
<td>https://www.pornpics.com/</td>
<td>Galleries</td>
<td></td>
</tr>
<tr>
<td>Postimg</td>
<td>https://postimages.org/</td>

View File

@ -120,6 +120,7 @@ modules = [
"plurk",
"poipiku",
"pornhub",
"pornpics",
"pururin",
"reactor",
"readcomiconline",

View File

@ -0,0 +1,83 @@
# -*- coding: utf-8 -*-
# Copyright 2023 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://www.pornpics.com/"""
from .common import GalleryExtractor, Extractor
from .. import text
BASE_PATTERN = r"(?:https?://)?(?:www\.)?pornpics\.com"
class PornpicsExtractor(Extractor):
"""Base class for pornpics extractors"""
category = "pornpics"
root = "https://www.pornpics.com/"
def __init__(self, match):
super().__init__(match)
self.session.headers["Referer"] = self.root
class PornpicsGalleryExtractor(PornpicsExtractor, GalleryExtractor):
"""Extractor for pornpics galleries"""
pattern = BASE_PATTERN + r"(?:/\w\w)?(/galleries/(?:[^/?#]+-)?(\d+))"
test = (
(("https://www.pornpics.com/galleries/british-beauty-danielle-flashes-"
"hot-breasts-ass-and-snatch-in-the-forest-62610699/"), {
"pattern": r"https://cdni\.pornpics\.com/1280/7/160/62610699"
r"/62610699_\d+_[0-9a-f]{4}\.jpg",
"keyword": {
"categories": ["MILF", "Amateur", "Sexy", "Outdoor"],
"channel": "FTV MILFs",
"count": 17,
"gallery_id": 62610699,
"models": ["Danielle"],
"num": int,
"slug": "british-beauty-danielle-flashes-"
"hot-breasts-ass-and-snatch-in-the-forest",
"tags": ["Amateur MILF", "Sexy MILF"],
"title": "British beauty Danielle flashes "
"hot breasts, ass and snatch in the forest",
"views": int,
},
}),
("https://pornpics.com/es/galleries/62610699", {
"keyword": {
"slug": "british-beauty-danielle-flashes-"
"hot-breasts-ass-and-snatch-in-the-forest",
},
}),
)
def __init__(self, match):
self.gallery_id = match.group(2)
PornpicsExtractor.__init__(self, match)
def metadata(self, page):
extr = text.extract_from(page)
return {
"gallery_id": text.parse_int(self.gallery_id),
"slug" : extr("/galleries/", "/").rpartition("-")[0],
"title" : text.unescape(extr("<h1>", "<")),
"channel" : extr('>Channel:', '</a>').rpartition(">")[2],
"models" : text.split_html(extr(
">Models:", '<span class="suggest')),
"categories": text.split_html(extr(
">Categories:", '<span class="suggest')),
"tags" : text.split_html(extr(
">Tags List:", ' </div>')),
"views" : text.parse_int(extr(">Views:", "<").replace(",", "")),
}
def images(self, page):
return [
(url, None)
for url in text.extract_iter(page, "class='rel-link' href='", "'")
]

View File

@ -89,6 +89,7 @@ CATEGORY_MAP = {
"paheal" : "rule #34",
"photovogue" : "PhotoVogue",
"pornimagesxxx" : "Porn Image",
"pornpics" : "PornPics.com",
"pornreactor" : "PornReactor",
"powermanga" : "PowerManga",
"readcomiconline": "Read Comic Online",