bb-fca 2.0.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/deltas/apis/posting/friend.js +319 -52
- package/dist/deltas/apis/posting/friend.js.map +1 -1
- package/dist/index.d.ts +41 -2
- package/dist/types/deltas/apis/posting/friend.d.ts +12 -3
- package/package.json +1 -1
- package/src/deltas/apis/posting/friend.ts +518 -158
- package/src/types/index.d.ts +41 -2
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.default = default_1;
|
|
4
|
+
const utils = require("../../../utils");
|
|
4
5
|
/**
|
|
5
6
|
* @ChoruOfficial
|
|
6
7
|
* @description A module for managing friend-related actions like listing friends, handling requests, and getting suggestions.
|
|
@@ -26,20 +27,24 @@ function default_1(defaultFuncs, api, ctx) {
|
|
|
26
27
|
else if (type === 'suggestions' && viewer?.people_you_may_know?.edges) {
|
|
27
28
|
edges = viewer.people_you_may_know.edges;
|
|
28
29
|
}
|
|
29
|
-
else if (type === 'list' &&
|
|
30
|
-
|
|
30
|
+
else if (type === 'list' &&
|
|
31
|
+
data?.data?.node?.all_collections?.nodes[0]?.style_renderer?.collection
|
|
32
|
+
?.pageItems?.edges) {
|
|
33
|
+
edges =
|
|
34
|
+
data.data.node.all_collections.nodes[0].style_renderer.collection
|
|
35
|
+
.pageItems.edges;
|
|
31
36
|
}
|
|
32
37
|
else {
|
|
33
38
|
return [];
|
|
34
39
|
}
|
|
35
|
-
return edges.map(edge => {
|
|
40
|
+
return edges.map((edge) => {
|
|
36
41
|
const node = edge.node;
|
|
37
42
|
return {
|
|
38
43
|
userID: node.id || node.node?.id,
|
|
39
44
|
name: node.name || node.title?.text,
|
|
40
45
|
profilePicture: node.profile_picture?.uri || node.image?.uri,
|
|
41
46
|
socialContext: node.social_context?.text || node.subtitle_text?.text,
|
|
42
|
-
url: node.url
|
|
47
|
+
url: node.url,
|
|
43
48
|
};
|
|
44
49
|
});
|
|
45
50
|
}
|
|
@@ -51,83 +56,124 @@ function default_1(defaultFuncs, api, ctx) {
|
|
|
51
56
|
* @author ChoruOfficial
|
|
52
57
|
*/
|
|
53
58
|
/**
|
|
54
|
-
* Fetches the list of incoming friend requests.
|
|
59
|
+
* Fetches the list of incoming friend requests by parsing the /friends/requests page.
|
|
55
60
|
* @async
|
|
56
61
|
* @returns {Promise<Array<Object>>} A promise that resolves to an array of friend request objects.
|
|
57
|
-
* @throws {Error} If the API request fails or
|
|
62
|
+
* @throws {Error} If the API request fails or HTML parsing fails.
|
|
58
63
|
*/
|
|
59
64
|
requests: async function () {
|
|
60
65
|
try {
|
|
66
|
+
const url = 'https://www.facebook.com/friends/requests';
|
|
67
|
+
const resData = await utils.get(url, ctx.jar, {}, ctx.globalOptions, ctx);
|
|
68
|
+
const html = resData.body.toString();
|
|
69
|
+
return extractFriendRequestsFromHTML(html);
|
|
70
|
+
}
|
|
71
|
+
catch (err) {
|
|
72
|
+
utils.error('friend.requests', err);
|
|
73
|
+
throw err;
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
/**
|
|
77
|
+
* Accepts a friend request.
|
|
78
|
+
* @async
|
|
79
|
+
* @param {string} identifier The user ID or name of the person whose friend request is to be accepted. If a name is provided, the function will search through pending requests.
|
|
80
|
+
* @returns {Promise<Object>} A promise that resolves to the API response data upon successful acceptance.
|
|
81
|
+
* @throws {Error} If the identifier is missing, the user is not found in requests, or the API call fails.
|
|
82
|
+
*/
|
|
83
|
+
accept: async function (identifier) {
|
|
84
|
+
try {
|
|
85
|
+
if (!identifier)
|
|
86
|
+
throw new Error('A name or user ID is required.');
|
|
87
|
+
let targetUserID = identifier;
|
|
88
|
+
if (isNaN(identifier)) {
|
|
89
|
+
const requests = await friendModule.requests();
|
|
90
|
+
const found = requests.find((req) => req.name.toLowerCase().includes(identifier.toLowerCase()));
|
|
91
|
+
if (!found)
|
|
92
|
+
throw new Error(`Could not find any friend request matching "${identifier}".`);
|
|
93
|
+
targetUserID = found.userID;
|
|
94
|
+
}
|
|
95
|
+
const variables = {
|
|
96
|
+
input: {
|
|
97
|
+
friend_requester_id: targetUserID,
|
|
98
|
+
friending_channel: 'FRIENDS_HOME_MAIN',
|
|
99
|
+
actor_id: ctx.userID,
|
|
100
|
+
client_mutation_id: Math.floor(Math.random() * 10 + 1).toString(),
|
|
101
|
+
},
|
|
102
|
+
scale: 3,
|
|
103
|
+
};
|
|
61
104
|
const form = {
|
|
62
105
|
av: ctx.userID,
|
|
63
106
|
__user: ctx.userID,
|
|
64
|
-
__a:
|
|
107
|
+
__a: '1',
|
|
65
108
|
fb_dtsg: ctx.fb_dtsg,
|
|
66
109
|
jazoest: ctx.jazoest,
|
|
67
110
|
lsd: ctx.lsd,
|
|
68
|
-
fb_api_caller_class:
|
|
69
|
-
fb_api_req_friendly_name:
|
|
70
|
-
variables: JSON.stringify(
|
|
71
|
-
doc_id:
|
|
111
|
+
fb_api_caller_class: 'RelayModern',
|
|
112
|
+
fb_api_req_friendly_name: 'FriendingCometFriendRequestConfirmMutation',
|
|
113
|
+
variables: JSON.stringify(variables),
|
|
114
|
+
doc_id: '24630768433181357',
|
|
72
115
|
};
|
|
73
|
-
const res = await defaultFuncs.post(
|
|
116
|
+
const res = await defaultFuncs.post('https://www.facebook.com/api/graphql/', ctx.jar, form, {});
|
|
74
117
|
if (res.data.errors)
|
|
75
118
|
throw new Error(JSON.stringify(res.data.errors));
|
|
76
|
-
return
|
|
119
|
+
return res.data.data;
|
|
77
120
|
}
|
|
78
121
|
catch (err) {
|
|
122
|
+
if (err.message?.includes('1431004')) {
|
|
123
|
+
throw new Error('I cannot accept this friend request right now. There might be a problem with the account or you need to wait.');
|
|
124
|
+
}
|
|
79
125
|
throw err;
|
|
80
126
|
}
|
|
81
127
|
},
|
|
82
128
|
/**
|
|
83
|
-
*
|
|
129
|
+
* Deletes/rejects a friend request.
|
|
84
130
|
* @async
|
|
85
|
-
* @param {string} identifier The user ID or name of the person whose friend request is to be
|
|
86
|
-
* @returns {Promise<Object>} A promise that resolves to the API response data upon successful
|
|
131
|
+
* @param {string} identifier The user ID or name of the person whose friend request is to be deleted. If a name is provided, the function will search through pending requests.
|
|
132
|
+
* @returns {Promise<Object>} A promise that resolves to the API response data upon successful deletion.
|
|
87
133
|
* @throws {Error} If the identifier is missing, the user is not found in requests, or the API call fails.
|
|
88
134
|
*/
|
|
89
|
-
|
|
135
|
+
delete: async function (identifier) {
|
|
90
136
|
try {
|
|
91
137
|
if (!identifier)
|
|
92
|
-
throw new Error(
|
|
138
|
+
throw new Error('A name or user ID is required.');
|
|
93
139
|
let targetUserID = identifier;
|
|
94
140
|
if (isNaN(identifier)) {
|
|
95
141
|
const requests = await friendModule.requests();
|
|
96
|
-
const found = requests.find(req => req.name.toLowerCase().includes(identifier.toLowerCase()));
|
|
142
|
+
const found = requests.find((req) => req.name.toLowerCase().includes(identifier.toLowerCase()));
|
|
97
143
|
if (!found)
|
|
98
144
|
throw new Error(`Could not find any friend request matching "${identifier}".`);
|
|
99
145
|
targetUserID = found.userID;
|
|
100
146
|
}
|
|
101
147
|
const variables = {
|
|
102
148
|
input: {
|
|
149
|
+
click_correlation_id: Date.now().toString(),
|
|
150
|
+
click_proof_validation_result: '{"validated":true}',
|
|
103
151
|
friend_requester_id: targetUserID,
|
|
104
|
-
friending_channel:
|
|
152
|
+
friending_channel: 'FRIENDS_HOME_REQUESTS',
|
|
105
153
|
actor_id: ctx.userID,
|
|
106
|
-
client_mutation_id: Math.floor(Math.random() * 10 + 1).toString()
|
|
154
|
+
client_mutation_id: Math.floor(Math.random() * 10 + 1).toString(),
|
|
107
155
|
},
|
|
108
|
-
scale:
|
|
156
|
+
scale: 1,
|
|
157
|
+
refresh_num: 0,
|
|
109
158
|
};
|
|
110
159
|
const form = {
|
|
111
160
|
av: ctx.userID,
|
|
112
161
|
__user: ctx.userID,
|
|
113
|
-
__a:
|
|
162
|
+
__a: '1',
|
|
114
163
|
fb_dtsg: ctx.fb_dtsg,
|
|
115
164
|
jazoest: ctx.jazoest,
|
|
116
165
|
lsd: ctx.lsd,
|
|
117
|
-
fb_api_caller_class:
|
|
118
|
-
fb_api_req_friendly_name:
|
|
166
|
+
fb_api_caller_class: 'RelayModern',
|
|
167
|
+
fb_api_req_friendly_name: 'FriendingCometFriendRequestDeleteMutation',
|
|
119
168
|
variables: JSON.stringify(variables),
|
|
120
|
-
doc_id:
|
|
169
|
+
doc_id: '25693816160239288',
|
|
121
170
|
};
|
|
122
|
-
const res = await defaultFuncs.post(
|
|
171
|
+
const res = await defaultFuncs.post('https://www.facebook.com/api/graphql/', ctx.jar, form, {});
|
|
123
172
|
if (res.data.errors)
|
|
124
173
|
throw new Error(JSON.stringify(res.data.errors));
|
|
125
174
|
return res.data.data;
|
|
126
175
|
}
|
|
127
176
|
catch (err) {
|
|
128
|
-
if (err.message?.includes("1431004")) {
|
|
129
|
-
throw new Error("I cannot accept this friend request right now. There might be a problem with the account or you need to wait.");
|
|
130
|
-
}
|
|
131
177
|
throw err;
|
|
132
178
|
}
|
|
133
179
|
},
|
|
@@ -146,21 +192,21 @@ function default_1(defaultFuncs, api, ctx) {
|
|
|
146
192
|
scale: 2,
|
|
147
193
|
sectionToken: sectionToken,
|
|
148
194
|
useDefaultActor: false,
|
|
149
|
-
userID: userID
|
|
195
|
+
userID: userID,
|
|
150
196
|
};
|
|
151
197
|
const form = {
|
|
152
198
|
av: ctx.userID,
|
|
153
199
|
__user: ctx.userID,
|
|
154
|
-
__a:
|
|
200
|
+
__a: '1',
|
|
155
201
|
fb_dtsg: ctx.fb_dtsg,
|
|
156
202
|
jazoest: ctx.jazoest,
|
|
157
203
|
lsd: ctx.lsd,
|
|
158
|
-
fb_api_caller_class:
|
|
159
|
-
fb_api_req_friendly_name:
|
|
204
|
+
fb_api_caller_class: 'RelayModern',
|
|
205
|
+
fb_api_req_friendly_name: 'ProfileCometTopAppSectionQuery',
|
|
160
206
|
variables: JSON.stringify(variables),
|
|
161
|
-
doc_id:
|
|
207
|
+
doc_id: '24492266383698794',
|
|
162
208
|
};
|
|
163
|
-
const res = await defaultFuncs.post(
|
|
209
|
+
const res = await defaultFuncs.post('https://www.facebook.com/api/graphql/', ctx.jar, form, {});
|
|
164
210
|
if (res.data.errors)
|
|
165
211
|
throw new Error(JSON.stringify(res.data.errors));
|
|
166
212
|
return formatFriends(res.data, 'list');
|
|
@@ -173,6 +219,7 @@ function default_1(defaultFuncs, api, ctx) {
|
|
|
173
219
|
* @namespace api.friend.suggest
|
|
174
220
|
* @description Functions for managing friend suggestions.
|
|
175
221
|
*/
|
|
222
|
+
getCurrentFriends: getCurrentFriends,
|
|
176
223
|
suggest: {
|
|
177
224
|
/**
|
|
178
225
|
* Fetches a list of suggested friends (People You May Know).
|
|
@@ -186,16 +233,16 @@ function default_1(defaultFuncs, api, ctx) {
|
|
|
186
233
|
const form = {
|
|
187
234
|
av: ctx.userID,
|
|
188
235
|
__user: ctx.userID,
|
|
189
|
-
__a:
|
|
236
|
+
__a: '1',
|
|
190
237
|
fb_dtsg: ctx.fb_dtsg,
|
|
191
238
|
jazoest: ctx.jazoest,
|
|
192
239
|
lsd: ctx.lsd,
|
|
193
|
-
fb_api_caller_class:
|
|
194
|
-
fb_api_req_friendly_name:
|
|
240
|
+
fb_api_caller_class: 'RelayModern',
|
|
241
|
+
fb_api_req_friendly_name: 'FriendingCometPYMKPanelPaginationQuery',
|
|
195
242
|
variables: JSON.stringify({ count: limit, cursor: null, scale: 3 }),
|
|
196
|
-
doc_id:
|
|
243
|
+
doc_id: '9917809191634193',
|
|
197
244
|
};
|
|
198
|
-
const res = await defaultFuncs.post(
|
|
245
|
+
const res = await defaultFuncs.post('https://www.facebook.com/api/graphql/', ctx.jar, form, {});
|
|
199
246
|
if (res.data.errors)
|
|
200
247
|
throw new Error(JSON.stringify(res.data.errors));
|
|
201
248
|
return formatFriends(res.data, 'suggestions');
|
|
@@ -214,29 +261,29 @@ function default_1(defaultFuncs, api, ctx) {
|
|
|
214
261
|
request: async function (userID) {
|
|
215
262
|
try {
|
|
216
263
|
if (!userID)
|
|
217
|
-
throw new Error(
|
|
264
|
+
throw new Error('userID is required.');
|
|
218
265
|
const variables = {
|
|
219
266
|
input: {
|
|
220
267
|
friend_requestee_ids: [userID],
|
|
221
|
-
friending_channel:
|
|
268
|
+
friending_channel: 'FRIENDS_HOME_MAIN',
|
|
222
269
|
actor_id: ctx.userID,
|
|
223
|
-
client_mutation_id: Math.floor(Math.random() * 10 + 1).toString()
|
|
270
|
+
client_mutation_id: Math.floor(Math.random() * 10 + 1).toString(),
|
|
224
271
|
},
|
|
225
|
-
scale: 3
|
|
272
|
+
scale: 3,
|
|
226
273
|
};
|
|
227
274
|
const form = {
|
|
228
275
|
av: ctx.userID,
|
|
229
276
|
__user: ctx.userID,
|
|
230
|
-
__a:
|
|
277
|
+
__a: '1',
|
|
231
278
|
fb_dtsg: ctx.fb_dtsg,
|
|
232
279
|
jazoest: ctx.jazoest,
|
|
233
280
|
lsd: ctx.lsd,
|
|
234
|
-
fb_api_caller_class:
|
|
235
|
-
fb_api_req_friendly_name:
|
|
281
|
+
fb_api_caller_class: 'RelayModern',
|
|
282
|
+
fb_api_req_friendly_name: 'FriendingCometFriendRequestSendMutation',
|
|
236
283
|
variables: JSON.stringify(variables),
|
|
237
|
-
doc_id:
|
|
284
|
+
doc_id: '23982103144788355',
|
|
238
285
|
};
|
|
239
|
-
const res = await defaultFuncs.post(
|
|
286
|
+
const res = await defaultFuncs.post('https://www.facebook.com/api/graphql/', ctx.jar, form, {});
|
|
240
287
|
if (res.data.errors)
|
|
241
288
|
throw new Error(JSON.stringify(res.data.errors));
|
|
242
289
|
return res.data.data;
|
|
@@ -244,10 +291,230 @@ function default_1(defaultFuncs, api, ctx) {
|
|
|
244
291
|
catch (err) {
|
|
245
292
|
throw err;
|
|
246
293
|
}
|
|
294
|
+
},
|
|
295
|
+
},
|
|
296
|
+
};
|
|
297
|
+
/**
|
|
298
|
+
* Gets current user's friends list by fetching the friends/list page
|
|
299
|
+
* and extracting all_friends data from the embedded JSON.
|
|
300
|
+
* @async
|
|
301
|
+
* @param {Function} [callback] - Optional callback function.
|
|
302
|
+
* @returns {Promise<Array<Object>>} A promise that resolves to an array of friend objects.
|
|
303
|
+
*/
|
|
304
|
+
async function getCurrentFriends(callback) {
|
|
305
|
+
let resolveFunc = function () { };
|
|
306
|
+
let rejectFunc = function () { };
|
|
307
|
+
const returnPromise = new Promise(function (resolve, reject) {
|
|
308
|
+
resolveFunc = resolve;
|
|
309
|
+
rejectFunc = reject;
|
|
310
|
+
});
|
|
311
|
+
callback =
|
|
312
|
+
callback ||
|
|
313
|
+
function (err, data) {
|
|
314
|
+
if (err)
|
|
315
|
+
return rejectFunc(err);
|
|
316
|
+
resolveFunc(data);
|
|
317
|
+
};
|
|
318
|
+
try {
|
|
319
|
+
const url = 'https://www.facebook.com/friends/list';
|
|
320
|
+
const resData = await utils.get(url, ctx.jar, {}, ctx.globalOptions, ctx);
|
|
321
|
+
const html = resData.body.toString();
|
|
322
|
+
const friends = extractFriendsFromHTML(html);
|
|
323
|
+
callback(null, friends);
|
|
324
|
+
}
|
|
325
|
+
catch (err) {
|
|
326
|
+
utils.error('getCurrentFriends', err);
|
|
327
|
+
callback(err);
|
|
328
|
+
}
|
|
329
|
+
return returnPromise;
|
|
330
|
+
}
|
|
331
|
+
/**
|
|
332
|
+
* Extracts all_friends data from the friends/list HTML page.
|
|
333
|
+
* Parses embedded <script type="application/json" data-sjs> tags
|
|
334
|
+
* to find the RelayPrefetchedStreamCache containing all_friends.
|
|
335
|
+
* @private
|
|
336
|
+
*/
|
|
337
|
+
function extractFriendsFromHTML(htmlContent) {
|
|
338
|
+
const friends = [];
|
|
339
|
+
try {
|
|
340
|
+
const scriptMatches = htmlContent.match(/<script type="application\/json"\s+data-content-len="\d+"\s+data-sjs>(.*?)<\/script>/gs);
|
|
341
|
+
if (!scriptMatches)
|
|
342
|
+
return friends;
|
|
343
|
+
for (const scriptMatch of scriptMatches) {
|
|
344
|
+
try {
|
|
345
|
+
const jsonMatch = scriptMatch.match(/<script[^>]*>(.*?)<\/script>/s);
|
|
346
|
+
if (!jsonMatch)
|
|
347
|
+
continue;
|
|
348
|
+
const jsonData = JSON.parse(jsonMatch[1]);
|
|
349
|
+
if (!jsonData.require || !Array.isArray(jsonData.require))
|
|
350
|
+
continue;
|
|
351
|
+
for (const req of jsonData.require) {
|
|
352
|
+
if (!Array.isArray(req))
|
|
353
|
+
continue;
|
|
354
|
+
if (req[0] === 'ScheduledServerJS' && req[1] === 'handle') {
|
|
355
|
+
const payload = req[3];
|
|
356
|
+
if (!payload || !Array.isArray(payload))
|
|
357
|
+
continue;
|
|
358
|
+
for (const item of payload) {
|
|
359
|
+
if (!item.__bbox || !item.__bbox.require)
|
|
360
|
+
continue;
|
|
361
|
+
for (const bboxReq of item.__bbox.require) {
|
|
362
|
+
if (!Array.isArray(bboxReq))
|
|
363
|
+
continue;
|
|
364
|
+
if (bboxReq[0] === 'RelayPrefetchedStreamCache' &&
|
|
365
|
+
bboxReq[1] === 'next') {
|
|
366
|
+
const streamData = bboxReq[3];
|
|
367
|
+
if (!streamData ||
|
|
368
|
+
!Array.isArray(streamData) ||
|
|
369
|
+
streamData.length < 2)
|
|
370
|
+
continue;
|
|
371
|
+
const cacheKey = streamData[0];
|
|
372
|
+
if (typeof cacheKey !== 'string' ||
|
|
373
|
+
!cacheKey.includes('FriendingCometAllFriendsRootQuery'))
|
|
374
|
+
continue;
|
|
375
|
+
const bboxData = streamData[1];
|
|
376
|
+
if (!bboxData ||
|
|
377
|
+
!bboxData.__bbox ||
|
|
378
|
+
!bboxData.__bbox.result)
|
|
379
|
+
continue;
|
|
380
|
+
const viewer = bboxData.__bbox.result?.data?.viewer;
|
|
381
|
+
if (!viewer || !viewer.all_friends)
|
|
382
|
+
continue;
|
|
383
|
+
const allFriends = viewer.all_friends;
|
|
384
|
+
const friendCount = viewer.all_friends_data?.friend_count ||
|
|
385
|
+
viewer.all_friends_data?.count ||
|
|
386
|
+
0;
|
|
387
|
+
if (allFriends.edges && Array.isArray(allFriends.edges)) {
|
|
388
|
+
for (const edge of allFriends.edges) {
|
|
389
|
+
if (!edge.node)
|
|
390
|
+
continue;
|
|
391
|
+
const node = edge.node;
|
|
392
|
+
friends.push({
|
|
393
|
+
userID: node.id,
|
|
394
|
+
name: node.name,
|
|
395
|
+
shortName: node.short_name,
|
|
396
|
+
gender: node.gender,
|
|
397
|
+
profilePicture: node.profile_picture?.uri,
|
|
398
|
+
profileUrl: node.url,
|
|
399
|
+
friendshipStatus: node.friendship_status,
|
|
400
|
+
subscribeStatus: node.subscribe_status,
|
|
401
|
+
socialContext: node.social_context?.text,
|
|
402
|
+
mutualFriends: node.social_context_top_mutual_friends || [],
|
|
403
|
+
});
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
// Attach pagination and count info
|
|
407
|
+
friends.totalCount = friendCount;
|
|
408
|
+
friends.pageInfo = allFriends.page_info || null;
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
catch (e) {
|
|
416
|
+
continue;
|
|
417
|
+
}
|
|
247
418
|
}
|
|
248
419
|
}
|
|
249
|
-
|
|
420
|
+
catch (error) {
|
|
421
|
+
utils.error('extractFriendsFromHTML', error);
|
|
422
|
+
}
|
|
423
|
+
return friends;
|
|
424
|
+
}
|
|
425
|
+
/**
|
|
426
|
+
* Extracts friending_possibilities data from the friends/requests HTML page.
|
|
427
|
+
* Parses embedded <script type="application/json" data-sjs> tags
|
|
428
|
+
* to find the RelayPrefetchedStreamCache containing friend requests.
|
|
429
|
+
* @private
|
|
430
|
+
*/
|
|
431
|
+
function extractFriendRequestsFromHTML(htmlContent) {
|
|
432
|
+
const requests = [];
|
|
433
|
+
try {
|
|
434
|
+
const scriptMatches = htmlContent.match(/<script type="application\/json"\s+data-content-len="\d+"\s+data-sjs>(.*?)<\/script>/gs);
|
|
435
|
+
if (!scriptMatches)
|
|
436
|
+
return requests;
|
|
437
|
+
for (const scriptMatch of scriptMatches) {
|
|
438
|
+
try {
|
|
439
|
+
const jsonMatch = scriptMatch.match(/<script[^>]*>(.*?)<\/script>/s);
|
|
440
|
+
if (!jsonMatch)
|
|
441
|
+
continue;
|
|
442
|
+
const jsonData = JSON.parse(jsonMatch[1]);
|
|
443
|
+
if (!jsonData.require || !Array.isArray(jsonData.require))
|
|
444
|
+
continue;
|
|
445
|
+
for (const req of jsonData.require) {
|
|
446
|
+
if (!Array.isArray(req))
|
|
447
|
+
continue;
|
|
448
|
+
if (req[0] === 'ScheduledServerJS' && req[1] === 'handle') {
|
|
449
|
+
const payload = req[3];
|
|
450
|
+
if (!payload || !Array.isArray(payload))
|
|
451
|
+
continue;
|
|
452
|
+
for (const item of payload) {
|
|
453
|
+
if (!item.__bbox || !item.__bbox.require)
|
|
454
|
+
continue;
|
|
455
|
+
for (const bboxReq of item.__bbox.require) {
|
|
456
|
+
if (!Array.isArray(bboxReq))
|
|
457
|
+
continue;
|
|
458
|
+
if (bboxReq[0] === 'RelayPrefetchedStreamCache' &&
|
|
459
|
+
bboxReq[1] === 'next') {
|
|
460
|
+
const streamData = bboxReq[3];
|
|
461
|
+
if (!streamData ||
|
|
462
|
+
!Array.isArray(streamData) ||
|
|
463
|
+
streamData.length < 2)
|
|
464
|
+
continue;
|
|
465
|
+
const cacheKey = streamData[0];
|
|
466
|
+
if (typeof cacheKey !== 'string' ||
|
|
467
|
+
!cacheKey.includes('FriendingCometFriendRequestsRootQuery'))
|
|
468
|
+
continue;
|
|
469
|
+
const bboxData = streamData[1];
|
|
470
|
+
if (!bboxData ||
|
|
471
|
+
!bboxData.__bbox ||
|
|
472
|
+
!bboxData.__bbox.result)
|
|
473
|
+
continue;
|
|
474
|
+
const viewer = bboxData.__bbox.result?.data?.viewer;
|
|
475
|
+
if (!viewer || !viewer.friending_possibilities)
|
|
476
|
+
continue;
|
|
477
|
+
const friendingPossibilities = viewer.friending_possibilities;
|
|
478
|
+
const requestCount = friendingPossibilities.count || 0;
|
|
479
|
+
if (friendingPossibilities.edges &&
|
|
480
|
+
Array.isArray(friendingPossibilities.edges)) {
|
|
481
|
+
for (const edge of friendingPossibilities.edges) {
|
|
482
|
+
if (!edge.node)
|
|
483
|
+
continue;
|
|
484
|
+
const node = edge.node;
|
|
485
|
+
requests.push({
|
|
486
|
+
userID: node.id,
|
|
487
|
+
name: node.name,
|
|
488
|
+
profilePicture: node.profile_picture?.uri,
|
|
489
|
+
profileUrl: node.url,
|
|
490
|
+
friendshipStatus: node.friendship_status,
|
|
491
|
+
socialContext: node.social_context?.text,
|
|
492
|
+
mutualFriends: node.social_context_top_mutual_friends || [],
|
|
493
|
+
time: edge.time,
|
|
494
|
+
isSeen: edge.is_seen,
|
|
495
|
+
});
|
|
496
|
+
}
|
|
497
|
+
}
|
|
498
|
+
// Attach count and pagination info
|
|
499
|
+
requests.totalCount = requestCount;
|
|
500
|
+
requests.pageInfo =
|
|
501
|
+
friendingPossibilities.page_info || null;
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
catch (e) {
|
|
509
|
+
continue;
|
|
510
|
+
}
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
catch (error) {
|
|
514
|
+
utils.error('extractFriendRequestsFromHTML', error);
|
|
515
|
+
}
|
|
516
|
+
return requests;
|
|
517
|
+
}
|
|
250
518
|
return friendModule;
|
|
251
519
|
}
|
|
252
|
-
;
|
|
253
520
|
//# sourceMappingURL=friend.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"friend.js","sourceRoot":"","sources":["../../../../src/deltas/apis/posting/friend.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"friend.js","sourceRoot":"","sources":["../../../../src/deltas/apis/posting/friend.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -123,6 +123,27 @@ export interface UploadPhotoResult {
|
|
|
123
123
|
data: any;
|
|
124
124
|
}
|
|
125
125
|
|
|
126
|
+
export interface CurrentFriendInfo {
|
|
127
|
+
userID: string;
|
|
128
|
+
name: string;
|
|
129
|
+
shortName: string;
|
|
130
|
+
gender: string;
|
|
131
|
+
profilePicture: string;
|
|
132
|
+
profileUrl: string;
|
|
133
|
+
friendshipStatus: string;
|
|
134
|
+
subscribeStatus: string;
|
|
135
|
+
socialContext: string;
|
|
136
|
+
mutualFriends: any[];
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
export interface FriendListItem {
|
|
140
|
+
userID: string;
|
|
141
|
+
name: string;
|
|
142
|
+
profilePicture: string;
|
|
143
|
+
socialContext: string;
|
|
144
|
+
url: string;
|
|
145
|
+
}
|
|
146
|
+
|
|
126
147
|
export interface Attachment {
|
|
127
148
|
type:
|
|
128
149
|
| 'photo'
|
|
@@ -604,8 +625,26 @@ export interface API {
|
|
|
604
625
|
/** Follow or unfollow a user. */
|
|
605
626
|
follow(senderID: UserID, follow: boolean, callback?: Callback): void;
|
|
606
627
|
|
|
607
|
-
/**
|
|
608
|
-
friend
|
|
628
|
+
/** Friend-related API methods. */
|
|
629
|
+
friend: {
|
|
630
|
+
requests(callback?: Callback<FriendListItem[]>): Promise<FriendListItem[]>;
|
|
631
|
+
accept(identifier: string, callback?: Callback): Promise<any>;
|
|
632
|
+
delete(identifier: string, callback?: Callback): Promise<any>;
|
|
633
|
+
list(
|
|
634
|
+
userID?: UserID,
|
|
635
|
+
callback?: Callback<FriendListItem[]>,
|
|
636
|
+
): Promise<FriendListItem[]>;
|
|
637
|
+
getCurrentFriends(
|
|
638
|
+
callback?: Callback<CurrentFriendInfo[]>,
|
|
639
|
+
): Promise<CurrentFriendInfo[]>;
|
|
640
|
+
suggest: {
|
|
641
|
+
list(
|
|
642
|
+
limit?: number,
|
|
643
|
+
callback?: Callback<FriendListItem[]>,
|
|
644
|
+
): Promise<FriendListItem[]>;
|
|
645
|
+
request(userID: UserID, callback?: Callback): Promise<any>;
|
|
646
|
+
};
|
|
647
|
+
};
|
|
609
648
|
|
|
610
649
|
// ── Stickers ───────────────────────────────────────────────────
|
|
611
650
|
|