From 13443f40a396fea1dce332ac24ede8cd0ea5e4fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20F=C3=A4hrmann?= Date: Sun, 25 Feb 2024 22:42:21 +0100 Subject: [PATCH] [xvideos] support '/channels/' URLs (#5244) --- gallery_dl/extractor/xvideos.py | 10 +++++----- test/results/xvideos.py | 25 +++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 5 deletions(-) diff --git a/gallery_dl/extractor/xvideos.py b/gallery_dl/extractor/xvideos.py index 46e574e3..4bf1e444 100644 --- a/gallery_dl/extractor/xvideos.py +++ b/gallery_dl/extractor/xvideos.py @@ -11,6 +11,9 @@ from .common import GalleryExtractor, Extractor, Message from .. import text, util +BASE_PATTERN = (r"(?:https?://)?(?:www\.)?xvideos\.com" + r"/(?:profiles|(?:amateur-|model-)?channels)") + class XvideosBase(): """Base class for xvideos extractors""" @@ -25,9 +28,7 @@ class XvideosGalleryExtractor(XvideosBase, GalleryExtractor): "{gallery[id]} {gallery[title]}") filename_fmt = "{category}_{gallery[id]}_{num:>03}.{extension}" archive_fmt = "{gallery[id]}_{num}" - pattern = (r"(?:https?://)?(?:www\.)?xvideos\.com" - r"/(?:profiles|amateur-channels|model-channels)" - r"/([^/?#]+)/photos/(\d+)") + pattern = BASE_PATTERN + r"/([^/?#]+)/photos/(\d+)" example = "https://www.xvideos.com/profiles/USER/photos/12345" def __init__(self, match): @@ -72,8 +73,7 @@ class XvideosUserExtractor(XvideosBase, Extractor): """Extractor for user profiles on xvideos.com""" subcategory = "user" categorytransfer = True - pattern = (r"(?:https?://)?(?:www\.)?xvideos\.com" - r"/profiles/([^/?#]+)/?(?:#.*)?$") + pattern = BASE_PATTERN + r"/([^/?#]+)/?(?:#.*)?$" example = "https://www.xvideos.com/profiles/USER" def __init__(self, match): diff --git a/test/results/xvideos.py b/test/results/xvideos.py index d7a682c0..7cfa1dc0 100644 --- a/test/results/xvideos.py +++ b/test/results/xvideos.py @@ -41,6 +41,13 @@ __tests__ = ( "#class" : xvideos.XvideosGalleryExtractor, }, +{ + "#url" : "https://www.xvideos.com/channels/pervertedcouple/photos/12", + "#comment" : "/channels/ URL (#5244)", + "#category": ("", "xvideos", "gallery"), + "#class" : xvideos.XvideosGalleryExtractor, +}, + { "#url" : "https://www.xvideos.com/profiles/pervertedcouple", "#category": ("", "xvideos", "user"), @@ -55,4 +62,22 @@ __tests__ = ( "#class" : xvideos.XvideosUserExtractor, }, +{ + "#url" : "https://www.xvideos.com/channels/pervertedcouple", + "#category": ("", "xvideos", "user"), + "#class" : xvideos.XvideosUserExtractor, +}, + +{ + "#url" : "https://www.xvideos.com/amateur-channels/pervertedcouple", + "#category": ("", "xvideos", "user"), + "#class" : xvideos.XvideosUserExtractor, +}, + +{ + "#url" : "https://www.xvideos.com/model-channels/pervertedcouple", + "#category": ("", "xvideos", "user"), + "#class" : xvideos.XvideosUserExtractor, +}, + )