|
@@ -886,6 +886,8 @@ class FacebookClient(Client): |
|
@@ -886,6 +886,8 @@ class FacebookClient(Client): |
|
886
|
if not ext_data:
|
886
|
if not ext_data:
|
|
887
|
from urllib import parse
|
887
|
from urllib import parse
|
|
888
|
filter = 'eyJncm91cHNfc2hvd19vbmx5Ijoie1wibmFtZVwiOlwicHVibGljX2dyb3Vwc1wiLFwiYXJnc1wiOlwiXCJ9In0%3D'
|
888
|
filter = 'eyJncm91cHNfc2hvd19vbmx5Ijoie1wibmFtZVwiOlwicHVibGljX2dyb3Vwc1wiLFwiYXJnc1wiOlwiXCJ9In0%3D'
|
|
|
|
889
|
+ # filter = 'eyJwdWJsaWNfZ3JvdXBzIjoie1wibmFtZVwiOlwicHVibGljX2dyb3Vwc1wiLFwiYXJnc1wiOlwiXCJ9In0%3D'
|
|
|
|
890
|
+ # https://www.facebook.com/search/groups?q=%E5%91%A8%E6%9D%B0%E4%BC%A6&filters=eyJwdWJsaWNfZ3JvdXBzIjoie1wibmFtZVwiOlwicHVibGljX2dyb3Vwc1wiLFwiYXJnc1wiOlwiXCJ9In0%3D
|
|
889
|
r = self._state._session.get(
|
891
|
r = self._state._session.get(
|
|
890
|
f'https://www.facebook.com/search/groups/?q={parse.quote(name)}&epa=FILTERS&filters={filter}')
|
892
|
f'https://www.facebook.com/search/groups/?q={parse.quote(name)}&epa=FILTERS&filters={filter}')
|
|
891
|
fbid = parse_html.get_all_group(r.text)
|
893
|
fbid = parse_html.get_all_group(r.text)
|
|
@@ -904,6 +906,46 @@ class FacebookClient(Client): |
|
@@ -904,6 +906,46 @@ class FacebookClient(Client): |
|
904
|
'ext_data': ext_data,
|
906
|
'ext_data': ext_data,
|
|
905
|
}
|
907
|
}
|
|
906
|
|
908
|
|
|
|
|
909
|
+ def SearchRenderable(self, name, cursor='', filters=[]):
|
|
|
|
910
|
+ """新搜索群组功能"""
|
|
|
|
911
|
+ if not cursor:
|
|
|
|
912
|
+ cursor = None
|
|
|
|
913
|
+ variables = {
|
|
|
|
914
|
+ "allow_streaming": False,
|
|
|
|
915
|
+ "args": {
|
|
|
|
916
|
+ "callsite": "COMET_GLOBAL_SEARCH",
|
|
|
|
917
|
+ "config": {"bootstrap_config": None, "exact_match": False, "high_confidence_config": None,
|
|
|
|
918
|
+ "watch_config": None},
|
|
|
|
919
|
+ "context": {"bsid": "b3e300c-1a0b-4643-91a7-d34a582fbb6b", "tsid": "0.4453413139497706"},
|
|
|
|
920
|
+ "experience": {"fbid": None, "grammar_bqf": None, "role": None, "type": "GROUPS_TAB"},
|
|
|
|
921
|
+ "filters": filters,
|
|
|
|
922
|
+ "text": name}, "cursor": cursor, "feedbackSource": 23,
|
|
|
|
923
|
+ "fetch_filters": True, "scale": 2, "stream_initial_count": 0}
|
|
|
|
924
|
+ try:
|
|
|
|
925
|
+ res = self.graphql_api('CometSearchResultsInitialResultsQuery', '4370093036395458', variables)
|
|
|
|
926
|
+ if 'errors' in res:
|
|
|
|
927
|
+ return {'success': False, 'errors': res['errors']}
|
|
|
|
928
|
+ else:
|
|
|
|
929
|
+ return {'success': True, 'data': res['data']}
|
|
|
|
930
|
+ except Exception as e:
|
|
|
|
931
|
+ return {'success': False, 'errors': str(e)}
|
|
|
|
932
|
+
|
|
|
|
933
|
+ def GraphSearchQueryFilter(self, city):
|
|
|
|
934
|
+ """搜索分组过滤地区"""
|
|
|
|
935
|
+ variables = {"count": 8,
|
|
|
|
936
|
+ "filterID": "Z3NxZjp7IjAiOiJicm93c2VfaW5zdGFudF9maWx0ZXIiLCIxIjoia2V5d29yZHNfZ3JvdXBzKFx1MDAyNUU1XHUwMDI1OTFcdTAwMjVBOFx1MDAyNUU2XHUwMDI1OURcdTAwMjVCMFx1MDAyNUU0XHUwMDI1QkNcdTAwMjVBNikiLCIzIjoiNDRiYzM4MTYtOWQwNS00NWQyLTljMDAtN2M0MzMyMGQwMzM1IiwiY3VzdG9tX3ZhbHVlIjoiQnJvd3NlR3JvdXBzQ2l0eUluc3RhbnRGaWx0ZXJDdXN0b21WYWx1ZSJ9",
|
|
|
|
937
|
+ "profile_picture_size": None, "query": city}
|
|
|
|
938
|
+ try:
|
|
|
|
939
|
+ res = self.graphql_api('useCometSearchFilterTypeaheadCompositeNetworkDataSourceQuery', '2065678270223319',
|
|
|
|
940
|
+ variables)
|
|
|
|
941
|
+ if 'errors' in res:
|
|
|
|
942
|
+ return {'success': False, 'errors': res['errors']}
|
|
|
|
943
|
+ else:
|
|
|
|
944
|
+ return {'success': True, 'data': res['data']}
|
|
|
|
945
|
+ except Exception as e:
|
|
|
|
946
|
+ return {'success': False, 'errors': str(e)}
|
|
|
|
947
|
+ pass
|
|
|
|
948
|
+
|
|
907
|
def searchForPostByPublic(self, keyword, ext_data=None):
|
949
|
def searchForPostByPublic(self, keyword, ext_data=None):
|
|
908
|
if not ext_data:
|
950
|
if not ext_data:
|
|
909
|
f = furl.furl('https://www.facebook.com/search/posts/')
|
951
|
f = furl.furl('https://www.facebook.com/search/posts/')
|