diff --git a/gallery_dl/extractor/facebook.py b/gallery_dl/extractor/facebook.py index 974669a6..7f877f7f 100644 --- a/gallery_dl/extractor/facebook.py +++ b/gallery_dl/extractor/facebook.py @@ -441,6 +441,9 @@ class FacebookPhotosExtractor(FacebookExtractor): def items(self): set_id = self._extract_profile_photos_page(self.groups[0])[0] + if not set_id: + return iter(()) + set_url = f"{self.root}/media/set/?set={set_id}" set_page = self.request(set_url).text set_data = self.parse_set_page(set_page) diff --git a/test/results/facebook.py b/test/results/facebook.py index ba2f0a45..c8601906 100644 --- a/test/results/facebook.py +++ b/test/results/facebook.py @@ -50,7 +50,7 @@ __tests__ = ( "#range" : "1", "user_id" : "100074229772340", - "user_pfbid": "pfbid0xCZArBYwZ9d4KLbXzSLF6YNUTY3rTJhPpVZ92gBpFQi1JK9RemJ5KhtqSJXkVnQ3l", + "user_pfbid": r"re:pfbid0x\w{64}", }, { @@ -58,6 +58,13 @@ __tests__ = ( "#class" : facebook.FacebookPhotosExtractor, }, +{ + "#url" : "https://www.facebook.com/brando.cha.3/photos", + "#comment" : "empty '/photos' page / missing 'set_id' value (#7962)", + "#class" : facebook.FacebookPhotosExtractor, + "#count" : 0, +}, + { "#url" : "https://www.facebook.com/facebook/avatar", "#class" : facebook.FacebookAvatarExtractor, @@ -89,7 +96,7 @@ __tests__ = ( "set_id" : "a.104622317759666", "type" : "avatar", "user_id" : "100046356937542", - "user_pfbid": "pfbid0uNaJ41o64vvHGCRnfZSYZkSm6yPnneBN947QdPw3F7iTsbgscr7ZZqLv7GvP2L8l", + "user_pfbid": r"re:pfbid0x\w{64}", "username" : "Throwaway Idk", }, @@ -183,9 +190,8 @@ __tests__ = ( "id" : "221820450302279", "set_id" : "a.109762038174788", "user_id" : "100074229772340", - "user_pfbid": "pfbid0xCZArBYwZ9d4KLbXzSLF6YNUTY3rTJhPpVZ92gBpFQi1JK9RemJ5KhtqSJXkVnQ3l", + "user_pfbid": r"re:pfbid0x\w{64}", "username": "Throwaway Kwon", - }, {