Merge branch 'op+': use '+' for 2-element string concatenations
This commit is contained in:
@@ -11,9 +11,9 @@ from .. import text, util, exception
|
||||
from ..cache import memcache
|
||||
|
||||
BASE_PATTERN = r"(?:https?://)?(?:[\w-]+\.)?facebook\.com"
|
||||
USER_PATTERN = (rf"{BASE_PATTERN}/"
|
||||
rf"(?!media/|photo/|photo.php|watch/|permalink.php)"
|
||||
rf"(?:profile\.php\?id=|people/[^/?#]+/)?([^/?&#]+)")
|
||||
USER_PATTERN = (BASE_PATTERN +
|
||||
r"/(?!media/|photo/|photo.php|watch/|permalink.php)"
|
||||
r"(?:profile\.php\?id=|people/[^/?#]+/)?([^/?&#]+)")
|
||||
|
||||
|
||||
class FacebookExtractor(Extractor):
|
||||
@@ -237,16 +237,14 @@ class FacebookExtractor(Extractor):
|
||||
|
||||
if res.url.startswith(self.root + "/login"):
|
||||
raise exception.AuthRequired(
|
||||
message=(f"You must be logged in to continue viewing images."
|
||||
f"{LEFT_OFF_TXT}")
|
||||
)
|
||||
message=("You must be logged in to continue viewing images." +
|
||||
LEFT_OFF_TXT))
|
||||
|
||||
if b'{"__dr":"CometErrorRoot.react"}' in res.content:
|
||||
raise exception.AbortExtraction(
|
||||
f"You've been temporarily blocked from viewing images.\n"
|
||||
f"Please try using a different account, "
|
||||
f"using a VPN or waiting before you retry.{LEFT_OFF_TXT}"
|
||||
)
|
||||
"You've been temporarily blocked from viewing images.\n"
|
||||
"Please try using a different account, "
|
||||
"using a VPN or waiting before you retry." + LEFT_OFF_TXT)
|
||||
|
||||
return res
|
||||
|
||||
@@ -395,9 +393,9 @@ class FacebookExtractor(Extractor):
|
||||
class FacebookPhotoExtractor(FacebookExtractor):
|
||||
"""Base class for Facebook Photo extractors"""
|
||||
subcategory = "photo"
|
||||
pattern = (rf"{BASE_PATTERN}/"
|
||||
rf"(?:[^/?#]+/photos/[^/?#]+/|photo(?:.php)?/?\?"
|
||||
rf"(?:[^&#]+&)*fbid=)([^/?&#]+)[^/?#]*(?<!&setextract)$")
|
||||
pattern = (BASE_PATTERN +
|
||||
r"/(?:[^/?#]+/photos/[^/?#]+/|photo(?:.php)?/?\?"
|
||||
r"(?:[^&#]+&)*fbid=)([^/?&#]+)[^/?#]*(?<!&setextract)$")
|
||||
example = "https://www.facebook.com/photo/?fbid=PHOTO_ID"
|
||||
|
||||
def items(self):
|
||||
@@ -433,11 +431,12 @@ class FacebookSetExtractor(FacebookExtractor):
|
||||
"""Base class for Facebook Set extractors"""
|
||||
subcategory = "set"
|
||||
pattern = (
|
||||
rf"{BASE_PATTERN}/"
|
||||
rf"(?:(?:media/set|photo)/?\?(?:[^&#]+&)*set=([^&#]+)"
|
||||
rf"[^/?#]*(?<!&setextract)$"
|
||||
rf"|([^/?#]+/posts/[^/?#]+)"
|
||||
rf"|photo/\?(?:[^&#]+&)*fbid=([^/?&#]+)&set=([^/?&#]+)&setextract)")
|
||||
BASE_PATTERN +
|
||||
r"/(?:(?:media/set|photo)/?\?(?:[^&#]+&)*set=([^&#]+)"
|
||||
r"[^/?#]*(?<!&setextract)$"
|
||||
r"|([^/?#]+/posts/[^/?#]+)"
|
||||
r"|photo/\?(?:[^&#]+&)*fbid=([^/?&#]+)&set=([^/?&#]+)&setextract)"
|
||||
)
|
||||
example = "https://www.facebook.com/media/set/?set=SET_ID"
|
||||
|
||||
def items(self):
|
||||
@@ -460,7 +459,7 @@ class FacebookVideoExtractor(FacebookExtractor):
|
||||
"""Base class for Facebook Video extractors"""
|
||||
subcategory = "video"
|
||||
directory_fmt = ("{category}", "{username}", "{subcategory}")
|
||||
pattern = rf"{BASE_PATTERN}/(?:[^/?#]+/videos/|watch/?\?v=)([^/?&#]+)"
|
||||
pattern = BASE_PATTERN + r"/(?:[^/?#]+/videos/|watch/?\?v=)([^/?&#]+)"
|
||||
example = "https://www.facebook.com/watch/?v=VIDEO_ID"
|
||||
|
||||
def items(self):
|
||||
@@ -487,7 +486,7 @@ class FacebookInfoExtractor(FacebookExtractor):
|
||||
"""Extractor for Facebook Profile data"""
|
||||
subcategory = "info"
|
||||
directory_fmt = ("{category}", "{username}")
|
||||
pattern = rf"{USER_PATTERN}/info"
|
||||
pattern = USER_PATTERN + r"/info"
|
||||
example = "https://www.facebook.com/USERNAME/info"
|
||||
|
||||
def items(self):
|
||||
@@ -498,7 +497,7 @@ class FacebookInfoExtractor(FacebookExtractor):
|
||||
class FacebookAlbumsExtractor(FacebookExtractor):
|
||||
"""Extractor for Facebook Profile albums"""
|
||||
subcategory = "albums"
|
||||
pattern = rf"{USER_PATTERN}/photos_albums(?:/([^/?#]+))?"
|
||||
pattern = USER_PATTERN + r"/photos_albums(?:/([^/?#]+))?"
|
||||
example = "https://www.facebook.com/USERNAME/photos_albums"
|
||||
|
||||
def items(self):
|
||||
@@ -531,7 +530,7 @@ class FacebookAlbumsExtractor(FacebookExtractor):
|
||||
class FacebookPhotosExtractor(FacebookExtractor):
|
||||
"""Extractor for Facebook Profile Photos"""
|
||||
subcategory = "photos"
|
||||
pattern = rf"{USER_PATTERN}/photos(?:_by)?"
|
||||
pattern = USER_PATTERN + r"/photos(?:_by)?"
|
||||
example = "https://www.facebook.com/USERNAME/photos"
|
||||
|
||||
def items(self):
|
||||
@@ -548,7 +547,7 @@ class FacebookPhotosExtractor(FacebookExtractor):
|
||||
class FacebookAvatarExtractor(FacebookExtractor):
|
||||
"""Extractor for Facebook Profile Avatars"""
|
||||
subcategory = "avatar"
|
||||
pattern = rf"{USER_PATTERN}/avatar"
|
||||
pattern = USER_PATTERN + r"/avatar"
|
||||
example = "https://www.facebook.com/USERNAME/avatar"
|
||||
|
||||
def items(self):
|
||||
@@ -570,7 +569,7 @@ class FacebookAvatarExtractor(FacebookExtractor):
|
||||
|
||||
class FacebookUserExtractor(Dispatch, FacebookExtractor):
|
||||
"""Extractor for Facebook Profiles"""
|
||||
pattern = rf"{USER_PATTERN}/?(?:$|\?|#)"
|
||||
pattern = USER_PATTERN + r"/?(?:$|\?|#)"
|
||||
example = "https://www.facebook.com/USERNAME"
|
||||
|
||||
def items(self):
|
||||
|
||||
Reference in New Issue
Block a user