merge #3976: [reddit] support cross-posted media (#887, #3586)

pull/4104/head
Mike Fährmann 1 year ago
commit 243de697b9
No known key found for this signature in database
GPG Key ID: 5680CA389D365A88

@ -55,21 +55,26 @@ class RedditExtractor(Extractor):
visited.add(submission["id"]) visited.add(submission["id"])
submission["num"] = 0 submission["num"] = 0
url = submission["url"] if "crosspost_parent_list" in submission:
media = submission["crosspost_parent_list"][-1]
else:
media = submission
url = media["url"]
if url and url.startswith("https://i.redd.it/"): if url and url.startswith("https://i.redd.it/"):
text.nameext_from_url(url, submission) text.nameext_from_url(url, submission)
yield Message.Url, url, submission yield Message.Url, url, submission
elif "gallery_data" in submission: elif "gallery_data" in media:
for submission["num"], url in enumerate( for submission["num"], url in enumerate(
self._extract_gallery(submission), 1): self._extract_gallery(media), 1):
text.nameext_from_url(url, submission) text.nameext_from_url(url, submission)
yield Message.Url, url, submission yield Message.Url, url, submission
elif submission["is_video"]: elif media["is_video"]:
if videos: if videos:
text.nameext_from_url(url, submission) text.nameext_from_url(url, submission)
url = "ytdl:" + self._extract_video(submission) url = "ytdl:" + self._extract_video(media)
yield Message.Url, url, submission yield Message.Url, url, submission
elif not submission["is_self"]: elif not submission["is_self"]:
@ -280,14 +285,19 @@ class RedditSubmissionExtractor(RedditExtractor):
("https://www.reddit.com/r/kpopfap/comments/qjj04q/", { ("https://www.reddit.com/r/kpopfap/comments/qjj04q/", {
"count": 0, "count": 0,
}), }),
("https://old.reddit.com/r/lavaporn/comments/2a00np/"), # user page submission (#2301)
("https://np.reddit.com/r/lavaporn/comments/2a00np/"),
("https://m.reddit.com/r/lavaporn/comments/2a00np/"),
("https://redd.it/2a00np/"),
("https://www.reddit.com/user/TheSpiritTree/comments/srilyf/", { ("https://www.reddit.com/user/TheSpiritTree/comments/srilyf/", {
"pattern": r"https://i.redd.it/8fpgv17yqlh81.jpg", "pattern": r"https://i.redd.it/8fpgv17yqlh81.jpg",
"count": 1, "count": 1,
}), }),
# cross-posted video (#887, #3586, #3976)
("https://www.reddit.com/r/kittengifs/comments/12m0b8d", {
"pattern": r"ytdl:https://v\.redd\.it/cvabpjacrvta1",
}),
("https://old.reddit.com/r/lavaporn/comments/2a00np/"),
("https://np.reddit.com/r/lavaporn/comments/2a00np/"),
("https://m.reddit.com/r/lavaporn/comments/2a00np/"),
("https://redd.it/2a00np/"),
) )
def __init__(self, match): def __init__(self, match):

Loading…
Cancel
Save