@vangbanlanhat/fca-unofficial 1.4.4 → 1.4.6
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/package.json +1 -2
- package/src/actions/listenMqtt.js +39 -6
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vangbanlanhat/fca-unofficial",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.6",
|
|
4
4
|
"main": "src/index.js",
|
|
5
5
|
"description": "A Facebook chat API that doesn't rely on XMPP. Will NOT be deprecated after April 30th 2015.",
|
|
6
6
|
"scripts": {
|
|
@@ -29,7 +29,6 @@
|
|
|
29
29
|
"bluebird": "^2.11.0",
|
|
30
30
|
"cheerio": "^0.22.0",
|
|
31
31
|
"https-proxy-agent": "^4.0.0",
|
|
32
|
-
|
|
33
32
|
"mqtt": "^3.0.0",
|
|
34
33
|
"npmlog": "^1.2.1",
|
|
35
34
|
"request": "^2.88.2",
|
|
@@ -78,16 +78,17 @@ function listenMqtt(defaultFuncs, api, ctx, globalCallback) {
|
|
|
78
78
|
//Don't really know what this does but I think it's for the active state?
|
|
79
79
|
//TODO: Move to ctx when implemented
|
|
80
80
|
var chatOn = ctx.globalOptions.online;
|
|
81
|
-
var foreground =
|
|
81
|
+
var foreground = true;
|
|
82
82
|
|
|
83
83
|
var sessionID = Math.floor(Math.random() * 9007199254740991) + 1;
|
|
84
|
-
var
|
|
84
|
+
var clientID = utils.getGUID();
|
|
85
|
+
var username = {u: ctx.userID,s: sessionID,chat_on: chatOn,fg: foreground,d: clientID,ct: "websocket",aid: "219994525426954", mqtt_sid: "",cp: 3,ecp: 10,st: [],pm: [],dc: "",no_auto_fg: true,gas: null,pack: []};
|
|
85
86
|
var cookies = ctx.jar.getCookies('https://www.facebook.com').join("; ");
|
|
86
87
|
|
|
87
88
|
var host;
|
|
88
|
-
if (ctx.mqttEndpoint) host = `${ctx.mqttEndpoint}&sid=${sessionID}`;
|
|
89
|
-
else if (ctx.region) host = `wss://edge-chat.facebook.com/chat?region=${ctx.region.toLocaleLowerCase()}&sid=${sessionID}`;
|
|
90
|
-
else host = `wss://edge-chat.facebook.com/chat?sid=${sessionID}`;
|
|
89
|
+
if (ctx.mqttEndpoint) host = `${ctx.mqttEndpoint}&sid=${sessionID}&cid=${clientID}`;
|
|
90
|
+
else if (ctx.region) host = `wss://edge-chat.facebook.com/chat?region=${ctx.region.toLocaleLowerCase()}&sid=${sessionID}&cid=${clientID}`;
|
|
91
|
+
else host = `wss://edge-chat.facebook.com/chat?sid=${sessionID}&cid=${clientID}`;
|
|
91
92
|
|
|
92
93
|
var options = {
|
|
93
94
|
clientId: "mqttwsclient",
|
|
@@ -172,6 +173,38 @@ function listenMqtt(defaultFuncs, api, ctx, globalCallback) {
|
|
|
172
173
|
globalCallback(null, { type: "ready", error: null });
|
|
173
174
|
}
|
|
174
175
|
maybeEmitFullyReady();
|
|
176
|
+
|
|
177
|
+
// Fake telemetry to mimic real browser
|
|
178
|
+
if (!ctx.screenTimeSent) {
|
|
179
|
+
ctx.screenTimeSent = true;
|
|
180
|
+
var form = {
|
|
181
|
+
"av": ctx.globalOptions.pageID,
|
|
182
|
+
"queries": JSON.stringify({
|
|
183
|
+
"o0": {
|
|
184
|
+
"doc_id": "30984609371137911",
|
|
185
|
+
"query_params": {}
|
|
186
|
+
},
|
|
187
|
+
"o1": {
|
|
188
|
+
"doc_id": "9691594727545032",
|
|
189
|
+
"query_params": {}
|
|
190
|
+
},
|
|
191
|
+
"o2": {
|
|
192
|
+
"doc_id": "9714526941947209",
|
|
193
|
+
"query_params": {}
|
|
194
|
+
}
|
|
195
|
+
}),
|
|
196
|
+
"batch_name": "MessengerGraphQLTelemetryBatch"
|
|
197
|
+
};
|
|
198
|
+
defaultFuncs
|
|
199
|
+
.post("https://www.facebook.com/api/graphqlbatch/", ctx.jar, form)
|
|
200
|
+
.then(function() {
|
|
201
|
+
log.info("listenMqtt", "ScreenTime and Badge telemetry queries sent.");
|
|
202
|
+
})
|
|
203
|
+
.catch(function(err) {
|
|
204
|
+
log.error("listenMqtt", "Failed to send telemetry queries: " + err);
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
|
|
175
208
|
delete ctx.tmsWait;
|
|
176
209
|
};
|
|
177
210
|
});
|
|
@@ -777,7 +810,7 @@ module.exports = function (defaultFuncs, api, ctx) {
|
|
|
777
810
|
}
|
|
778
811
|
|
|
779
812
|
var msgEmitter = new MessageEmitter();
|
|
780
|
-
|
|
813
|
+
var rawCallback = (callback || function (error, message) {
|
|
781
814
|
if (error) return msgEmitter.emit("error", error);
|
|
782
815
|
msgEmitter.emit("message", message);
|
|
783
816
|
});
|