From 962f55cc689b8de7839526454f679cb410f35fa6 Mon Sep 17 00:00:00 2001 From: blankie Date: Wed, 21 Feb 2024 17:39:37 +1100 Subject: [PATCH] [artstation] fix handling usernames with dashes --- gallery_dl/extractor/artstation.py | 6 +++--- test/results/artstation.py | 21 +++++++++++++++++++++ 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/gallery_dl/extractor/artstation.py b/gallery_dl/extractor/artstation.py index b58b3d39..7f103c0e 100644 --- a/gallery_dl/extractor/artstation.py +++ b/gallery_dl/extractor/artstation.py @@ -175,7 +175,7 @@ class ArtstationUserExtractor(ArtstationExtractor): subcategory = "user" pattern = (r"(?:https?://)?(?:(?:www\.)?artstation\.com" r"/(?!artwork|projects|search)([^/?#]+)(?:/albums/all)?" - r"|((?!www)\w+)\.artstation\.com(?:/projects)?)/?$") + r"|((?!www)[\w-]+)\.artstation\.com(?:/projects)?)/?$") example = "https://www.artstation.com/USER" def projects(self): @@ -192,7 +192,7 @@ class ArtstationAlbumExtractor(ArtstationExtractor): archive_fmt = "a_{album[id]}_{asset[id]}" pattern = (r"(?:https?://)?(?:(?:www\.)?artstation\.com" r"/(?!artwork|projects|search)([^/?#]+)" - r"|((?!www)\w+)\.artstation\.com)/albums/(\d+)") + r"|((?!www)[\w-]+)\.artstation\.com)/albums/(\d+)") example = "https://www.artstation.com/USER/albums/12345" def __init__(self, match): @@ -355,7 +355,7 @@ class ArtstationImageExtractor(ArtstationExtractor): """Extractor for images from a single artstation project""" subcategory = "image" pattern = (r"(?:https?://)?(?:" - r"(?:\w+\.)?artstation\.com/(?:artwork|projects|search)" + r"(?:[\w-]+\.)?artstation\.com/(?:artwork|projects|search)" r"|artstn\.co/p)/(\w+)") example = "https://www.artstation.com/artwork/abcde" diff --git a/test/results/artstation.py b/test/results/artstation.py index d34437f4..179d2f09 100644 --- a/test/results/artstation.py +++ b/test/results/artstation.py @@ -157,4 +157,25 @@ __tests__ = ( "#count" : ">= 40", }, +{ + "#url" : "https://fede-x-rojas.artstation.com/projects/WBdaZy", + "#comment" : "dash in username", + "#category": ("", "artstation", "image"), + "#class" : artstation.ArtstationImageExtractor, +}, + +{ + "#url" : "https://fede-x-rojas.artstation.com/albums/8533110", + "#comment" : "dash in username", + "#category": ("", "artstation", "album"), + "#class" : artstation.ArtstationAlbumExtractor, +}, + +{ + "#url" : "https://fede-x-rojas.artstation.com/", + "#comment" : "dash in username", + "#category": ("", "artstation", "user"), + "#class" : artstation.ArtstationUserExtractor, +}, + )