separate reactions from likes
This commit is contained in:
parent
fcb08be29c
commit
e7a5a1e20f
@ -398,7 +398,6 @@ class FacebookIE(InfoExtractor):
|
|||||||
|
|
||||||
is_live, live_status = self.extract_live_info(is_scheduled, is_live_stream, is_broadcast)
|
is_live, live_status = self.extract_live_info(is_scheduled, is_live_stream, is_broadcast)
|
||||||
|
|
||||||
|
|
||||||
subtitles = {}
|
subtitles = {}
|
||||||
formats = []
|
formats = []
|
||||||
for f in video_data:
|
for f in video_data:
|
||||||
@ -443,8 +442,9 @@ class FacebookIE(InfoExtractor):
|
|||||||
return lowercase_escape(s)
|
return lowercase_escape(s)
|
||||||
|
|
||||||
uploader = clean_html(get_element_by_id('fbPhotoPageAuthorName', webpage)) or \
|
uploader = clean_html(get_element_by_id('fbPhotoPageAuthorName', webpage)) or \
|
||||||
self._search_regex(r'ownerName\s*:\s*"([^"]+)"', webpage, 'uploader',default=None) or \
|
self._search_regex(r'ownerName\s*:\s*"([^"]+)"', webpage, 'uploader', default=None) or \
|
||||||
_lowercase_escape(self._search_regex(r'\"ownerName\":"(.+?)"', tahoe_data.secondary, 'uploader_id', fatal=False)) or \
|
_lowercase_escape(self._search_regex(r'\"ownerName\":"(.+?)"', tahoe_data.secondary, 'uploader_id',
|
||||||
|
fatal=False)) or \
|
||||||
self._search_regex(r'ownerName"\s*:\s*"([^"]+)"', webpage, 'uploader', default=None) or \
|
self._search_regex(r'ownerName"\s*:\s*"([^"]+)"', webpage, 'uploader', default=None) or \
|
||||||
self._og_search_title(webpage, default=None)
|
self._og_search_title(webpage, default=None)
|
||||||
|
|
||||||
@ -476,6 +476,7 @@ class FacebookIE(InfoExtractor):
|
|||||||
view_count = parse_count(self._extract_views(webpage, tahoe_data))
|
view_count = parse_count(self._extract_views(webpage, tahoe_data))
|
||||||
|
|
||||||
other_posts_view_count = parse_count(self._extract_meta_count(['otherPostsViewCount'], webpage, tahoe_data, 'other_post_views'))
|
other_posts_view_count = parse_count(self._extract_meta_count(['otherPostsViewCount'], webpage, tahoe_data, 'other_post_views'))
|
||||||
|
reactions_count = parse_count(self._extract_reactions(webpage, tahoe_data))
|
||||||
likes_count = parse_count(self._extract_likes(webpage, tahoe_data))
|
likes_count = parse_count(self._extract_likes(webpage, tahoe_data))
|
||||||
shares_count = parse_count(self._extract_shares(webpage, tahoe_data))
|
shares_count = parse_count(self._extract_shares(webpage, tahoe_data))
|
||||||
comment_count = parse_count(self._extract_comments_count(webpage, tahoe_data))
|
comment_count = parse_count(self._extract_comments_count(webpage, tahoe_data))
|
||||||
@ -484,12 +485,11 @@ class FacebookIE(InfoExtractor):
|
|||||||
|
|
||||||
info_dict = self.build_info_dict(webpage, tahoe_data, video_id, video_title, formats, uploader, timestamp,
|
info_dict = self.build_info_dict(webpage, tahoe_data, video_id, video_title, formats, uploader, timestamp,
|
||||||
thumbnail, view_count, uploader_id, is_live, live_status, likes_count,
|
thumbnail, view_count, uploader_id, is_live, live_status, likes_count,
|
||||||
shares_count, subtitles, comment_count, other_posts_view_count, uploader_handle)
|
reactions_count, shares_count, subtitles, comment_count, other_posts_view_count,
|
||||||
|
uploader_handle)
|
||||||
|
|
||||||
return webpage, info_dict
|
return webpage, info_dict
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def get_from_new_ui(self, webpage, tahoe_data, video_id):
|
def get_from_new_ui(self, webpage, tahoe_data, video_id):
|
||||||
|
|
||||||
video_title = self._resolve_new_ui_title(webpage, tahoe_data, video_id)
|
video_title = self._resolve_new_ui_title(webpage, tahoe_data, video_id)
|
||||||
@ -498,6 +498,8 @@ class FacebookIE(InfoExtractor):
|
|||||||
|
|
||||||
likes = parse_count(self._extract_likes(webpage, tahoe_data))
|
likes = parse_count(self._extract_likes(webpage, tahoe_data))
|
||||||
|
|
||||||
|
reactions = parse_count(self._extract_reactions(webpage, tahoe_data))
|
||||||
|
|
||||||
timestamp = self._resolve_new_ui_timestamp(webpage, tahoe_data)
|
timestamp = self._resolve_new_ui_timestamp(webpage, tahoe_data)
|
||||||
|
|
||||||
uploader_json = self._search_regex(r'"author":{(.+?)}', webpage, 'uploader')
|
uploader_json = self._search_regex(r'"author":{(.+?)}', webpage, 'uploader')
|
||||||
@ -517,15 +519,17 @@ class FacebookIE(InfoExtractor):
|
|||||||
formats = self.resolve_new_ui_format(webpage)
|
formats = self.resolve_new_ui_format(webpage)
|
||||||
|
|
||||||
info_dict = self.build_info_dict(webpage, tahoe_data, video_id, video_title, formats, uploader, timestamp,
|
info_dict = self.build_info_dict(webpage, tahoe_data, video_id, video_title, formats, uploader, timestamp,
|
||||||
thumbnail, post_view_counts, uploader_id, is_live, live_status, likes,
|
thumbnail, post_view_counts, uploader_id, is_live, live_status, likes, reactions,
|
||||||
share_counts, {}, comments_count, other_post_view_counts,
|
share_counts, {}, comments_count, other_post_view_counts,
|
||||||
uploader_handle)
|
uploader_handle)
|
||||||
|
|
||||||
return info_dict
|
return info_dict
|
||||||
|
|
||||||
def build_info_dict(self,webpage, tahoe_data, video_id, video_title=None, formats=None, uploader=None,
|
def build_info_dict(self, webpage, tahoe_data, video_id, video_title=None, formats=None, uploader=None,
|
||||||
timestamp=None, thumbnail=None, view_count=None, uploader_id=None, is_live=None, live_status=None,
|
timestamp=None, thumbnail=None, view_count=None, uploader_id=None, is_live=None,
|
||||||
likes_count=None, shares_count=None, subtitles=None, comment_count=None, other_posts_view_count=None,
|
live_status=None,
|
||||||
|
likes_count=None, reactions_count=None, shares_count=None, subtitles=None, comment_count=None,
|
||||||
|
other_posts_view_count=None,
|
||||||
uploader_handle=None):
|
uploader_handle=None):
|
||||||
info_dict = {
|
info_dict = {
|
||||||
'id': video_id,
|
'id': video_id,
|
||||||
@ -539,6 +543,7 @@ class FacebookIE(InfoExtractor):
|
|||||||
'is_live': is_live,
|
'is_live': is_live,
|
||||||
'live_status': live_status,
|
'live_status': live_status,
|
||||||
'like_count': likes_count,
|
'like_count': likes_count,
|
||||||
|
'reactions_count': reactions_count,
|
||||||
'share_count': shares_count,
|
'share_count': shares_count,
|
||||||
'subtitles': subtitles,
|
'subtitles': subtitles,
|
||||||
'comment_count': comment_count,
|
'comment_count': comment_count,
|
||||||
@ -593,10 +598,15 @@ class FacebookIE(InfoExtractor):
|
|||||||
if values:
|
if values:
|
||||||
return values[-1]
|
return values[-1]
|
||||||
|
|
||||||
def _extract_likes(self, webpage, tahoe_data):
|
def _extract_reactions(self, webpage, tahoe_data):
|
||||||
pairs = (
|
pairs = (
|
||||||
(r'"reaction_count"\s*:\s*{\s*"count"\s*:\s*(\d+)', [tahoe_data.secondary, webpage]),
|
(r'"reaction_count"\s*:\s*{\s*"count"\s*:\s*(\d+)', [tahoe_data.secondary, webpage]),
|
||||||
(r'reaction_count:{count:([\d]+)}', webpage),
|
(r'reaction_count:{count:([\d]+)}', webpage)
|
||||||
|
)
|
||||||
|
return self._extract_first_pattern(pairs)
|
||||||
|
|
||||||
|
def _extract_likes(self, webpage, tahoe_data):
|
||||||
|
pairs = (
|
||||||
(r'\blikecount\s*:\s*["\']([\d,.]+)', webpage),
|
(r'\blikecount\s*:\s*["\']([\d,.]+)', webpage),
|
||||||
(r'[\'\"]\blikecount[\'\"]\s*:\s*(\d+)', tahoe_data.secondary)
|
(r'[\'\"]\blikecount[\'\"]\s*:\s*(\d+)', tahoe_data.secondary)
|
||||||
)
|
)
|
||||||
@ -709,7 +719,6 @@ class FacebookIE(InfoExtractor):
|
|||||||
|
|
||||||
return self.extract_live_info(is_scheduled, is_live_stream, is_broadcast)
|
return self.extract_live_info(is_scheduled, is_live_stream, is_broadcast)
|
||||||
|
|
||||||
|
|
||||||
def extract_live_info(self, is_scheduled, is_live_stream, is_broadcast):
|
def extract_live_info(self, is_scheduled, is_live_stream, is_broadcast):
|
||||||
live_status = 'not_live'
|
live_status = 'not_live'
|
||||||
if is_broadcast:
|
if is_broadcast:
|
||||||
@ -723,7 +732,6 @@ class FacebookIE(InfoExtractor):
|
|||||||
|
|
||||||
return is_live, live_status
|
return is_live, live_status
|
||||||
|
|
||||||
|
|
||||||
def resolve_new_ui_format(self, webpage):
|
def resolve_new_ui_format(self, webpage):
|
||||||
format_url = self.build_format_url(webpage)
|
format_url = self.build_format_url(webpage)
|
||||||
width = parse_count(self._search_regex(r'<meta property="og:video:width" content="(.+?)"', webpage, 'width'))
|
width = parse_count(self._search_regex(r'<meta property="og:video:width" content="(.+?)"', webpage, 'width'))
|
||||||
@ -798,7 +806,6 @@ class FacebookIE(InfoExtractor):
|
|||||||
return video_title and not u'Log In or Sign Up to View' in video_title
|
return video_title and not u'Log In or Sign Up to View' in video_title
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class FacebookTahoeData:
|
class FacebookTahoeData:
|
||||||
def __init__(self, extractor, page, video_id):
|
def __init__(self, extractor, page, video_id):
|
||||||
self._page = page
|
self._page = page
|
||||||
|
Loading…
x
Reference in New Issue
Block a user