[pinterest] add support for pin.it URLs
This commit is contained in:
@@ -63,7 +63,6 @@ class PinterestPinExtractor(PinterestExtractor):
|
|||||||
|
|
||||||
class PinterestBoardExtractor(PinterestExtractor):
|
class PinterestBoardExtractor(PinterestExtractor):
|
||||||
"""Extractor for images from a board from pinterest.com"""
|
"""Extractor for images from a board from pinterest.com"""
|
||||||
category = "pinterest"
|
|
||||||
subcategory = "board"
|
subcategory = "board"
|
||||||
directory_fmt = ["{category}", "{user}", "{board}"]
|
directory_fmt = ["{category}", "{user}", "{board}"]
|
||||||
pattern = [r"(?:https?://)?(?:[^./]+\.)?pinterest\.com/(?!pin/)([^/]+)/([^/]+)"]
|
pattern = [r"(?:https?://)?(?:[^./]+\.)?pinterest\.com/(?!pin/)([^/]+)/([^/]+)"]
|
||||||
@@ -106,6 +105,30 @@ class PinterestBoardExtractor(PinterestExtractor):
|
|||||||
return data
|
return data
|
||||||
|
|
||||||
|
|
||||||
|
class PinterestPinitExtractor(PinterestExtractor):
|
||||||
|
subcategory = "pinit"
|
||||||
|
pattern = [r"(?:https?://)?(pin\.it/[^/]+)"]
|
||||||
|
test = [
|
||||||
|
("https://pin.it/Hvt8hgT", {
|
||||||
|
"url": "8daad8558382c68f0868bdbd17d05205184632fa",
|
||||||
|
}),
|
||||||
|
("https://pin.it/Hvt8hgS", {
|
||||||
|
"exception": exception.NotFoundError,
|
||||||
|
})
|
||||||
|
]
|
||||||
|
|
||||||
|
def __init__(self, match):
|
||||||
|
PinterestExtractor.__init__(self)
|
||||||
|
self.url = "https://" + match.group(1)
|
||||||
|
|
||||||
|
def items(self):
|
||||||
|
response = self.session.head(self.url)
|
||||||
|
location = response.headers.get("Location")
|
||||||
|
if not location or location == "https://www.pinterest.com":
|
||||||
|
raise exception.NotFoundError("pin")
|
||||||
|
yield Message.Queue, location
|
||||||
|
|
||||||
|
|
||||||
class PinterestAPI():
|
class PinterestAPI():
|
||||||
"""Minimal interface for the pinterest API"""
|
"""Minimal interface for the pinterest API"""
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user