@vangbanlanhat/fca-unofficial 1.4.5 → 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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vangbanlanhat/fca-unofficial",
3
- "version": "1.4.5",
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 = false;
81
+ var foreground = true;
82
82
 
83
83
  var sessionID = Math.floor(Math.random() * 9007199254740991) + 1;
84
- var username = {u: ctx.userID,s: sessionID,chat_on: chatOn,fg: foreground,d: utils.getGUID(),ct: "websocket",aid: "219994525426954", mqtt_sid: "",cp: 3,ecp: 10,st: [],pm: [],dc: "",no_auto_fg: true,gas: null,pack: []};
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,14 +810,14 @@ module.exports = function (defaultFuncs, api, ctx) {
777
810
  }
778
811
 
779
812
  var msgEmitter = new MessageEmitter();
780
- globalCallback = (callback || function (error, message) {
813
+ var rawCallback = (callback || function (error, message) {
781
814
  if (error) return msgEmitter.emit("error", error);
782
815
  msgEmitter.emit("message", message);
783
816
  });
784
817
 
785
- // globalCallback = function (error, message) {
786
- // return rawCallback(error, message);
787
- // };
818
+ globalCallback = function (error, message) {
819
+ return rawCallback(error, message);
820
+ };
788
821
 
789
822
  //Reset some stuff
790
823
  if (!ctx.firstListen) ctx.lastSeqId = null;