fca-prjvt 3.0.1 → 3.0.3
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 +2 -2
- package/src/listenMqtt.js +58 -37
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fca-prjvt",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.3",
|
|
4
4
|
"description": "Facebook-chat-api protect and deploy by Kanzu and HZI Team",
|
|
5
5
|
"main": "Index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"ansi-to-html": "latest",
|
|
24
24
|
"assert": "latest",
|
|
25
25
|
"better-sqlite3": "7.6.2",
|
|
26
|
-
"bluebird": "
|
|
26
|
+
"bluebird": "^3.7.2",
|
|
27
27
|
"chalk": "4.1.2",
|
|
28
28
|
"cheerio": "latest",
|
|
29
29
|
"crypto-js": "latest",
|
package/src/listenMqtt.js
CHANGED
|
@@ -698,46 +698,58 @@ function markDelivery(ctx, api, threadID, messageID) {
|
|
|
698
698
|
}
|
|
699
699
|
|
|
700
700
|
module.exports = function (defaultFuncs, api, ctx) {
|
|
701
|
+
var EventEmitter = require('events');
|
|
701
702
|
var globalCallback = identity;
|
|
702
|
-
|
|
703
|
+
var form;
|
|
704
|
+
|
|
705
|
+
async function getSeqID() {
|
|
703
706
|
ctx.t_mqttCalled = false;
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
.
|
|
707
|
-
.
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
}
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
}
|
|
717
|
-
return;
|
|
707
|
+
|
|
708
|
+
try {
|
|
709
|
+
const resData = await defaultFuncs.post("https://www.facebook.com/api/graphqlbatch/", ctx.jar, form);
|
|
710
|
+
await utils.parseAndCheckLogin(ctx, defaultFuncs)(resData);
|
|
711
|
+
|
|
712
|
+
if (utils.getType(resData) !== "Array") {
|
|
713
|
+
if (global.Fca.Require.FastConfig.AutoLogin) {
|
|
714
|
+
return global.Fca.Require.logger.Warning(global.Fca.Require.Language.Index.AutoLogin, function() {
|
|
715
|
+
return global.Fca.Action('AutoLogin');
|
|
716
|
+
});
|
|
717
|
+
} else if (!global.Fca.Require.FastConfig.AutoLogin) {
|
|
718
|
+
return global.Fca.Require.logger.Error(global.Fca.Require.Language.Index.ErrAppState);
|
|
718
719
|
}
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
if (resData[0].o0.data.viewer.message_threads.sync_sequence_id) {
|
|
723
|
-
ctx.lastSeqId = resData[0].o0.data.viewer.message_threads.sync_sequence_id;
|
|
724
|
-
listenMqtt(defaultFuncs, api, ctx, globalCallback);
|
|
725
|
-
}
|
|
726
|
-
else throw { error: "getSeqId: no sync_sequence_id found.", res: resData };
|
|
720
|
+
} else {
|
|
721
|
+
if (resData && resData[resData.length - 1].error_results > 0) {
|
|
722
|
+
throw resData[0].o0.errors;
|
|
727
723
|
}
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
724
|
+
|
|
725
|
+
if (resData[resData.length - 1].successful_results === 0) {
|
|
726
|
+
throw { error: "getSeqId: there was no successful_results", res: resData };
|
|
727
|
+
}
|
|
728
|
+
|
|
729
|
+
if (resData[0].o0.data.viewer.message_threads.sync_sequence_id) {
|
|
730
|
+
ctx.lastSeqId = resData[0].o0.data.viewer.message_threads.sync_sequence_id;
|
|
731
|
+
listenMqtt(defaultFuncs, api, ctx, globalCallback);
|
|
732
|
+
} else {
|
|
733
|
+
throw { error: "getSeqId: no sync_sequence_id found.", res: resData };
|
|
734
|
+
}
|
|
735
|
+
}
|
|
736
|
+
} catch (err) {
|
|
737
|
+
log.error("getSeqId", err);
|
|
738
|
+
|
|
739
|
+
if (utils.getType(err) === "Object" && err.error === global.Fca.Require.Language.Index.ErrAppState) {
|
|
740
|
+
ctx.loggedIn = false;
|
|
741
|
+
}
|
|
742
|
+
|
|
743
|
+
return globalCallback(err);
|
|
744
|
+
}
|
|
745
|
+
}
|
|
735
746
|
|
|
736
747
|
return function (callback) {
|
|
737
748
|
class MessageEmitter extends EventEmitter {
|
|
738
749
|
stopListening(callback) {
|
|
739
|
-
callback = callback || (() => {
|
|
750
|
+
callback = callback || (() => {});
|
|
740
751
|
globalCallback = identity;
|
|
752
|
+
|
|
741
753
|
if (ctx.mqttClient) {
|
|
742
754
|
ctx.mqttClient.unsubscribe("/webrtc");
|
|
743
755
|
ctx.mqttClient.unsubscribe("/rtc_multi");
|
|
@@ -747,6 +759,7 @@ module.exports = function (defaultFuncs, api, ctx) {
|
|
|
747
759
|
ctx.mqttClient = undefined;
|
|
748
760
|
});
|
|
749
761
|
}
|
|
762
|
+
|
|
750
763
|
global.Fca.Data.StopListening = true;
|
|
751
764
|
}
|
|
752
765
|
}
|
|
@@ -757,12 +770,14 @@ module.exports = function (defaultFuncs, api, ctx) {
|
|
|
757
770
|
msgEmitter.emit("message", message);
|
|
758
771
|
});
|
|
759
772
|
|
|
760
|
-
//Reset some stuff
|
|
761
|
-
if (!ctx.firstListen)
|
|
773
|
+
// Reset some stuff
|
|
774
|
+
if (!ctx.firstListen) {
|
|
775
|
+
ctx.lastSeqId = null;
|
|
776
|
+
}
|
|
762
777
|
ctx.syncToken = undefined;
|
|
763
778
|
ctx.t_mqttCalled = false;
|
|
764
779
|
|
|
765
|
-
//Same request as getThreadList
|
|
780
|
+
// Same request as getThreadList
|
|
766
781
|
form = {
|
|
767
782
|
"av": ctx.globalOptions.pageID,
|
|
768
783
|
"queries": JSON.stringify({
|
|
@@ -779,9 +794,15 @@ module.exports = function (defaultFuncs, api, ctx) {
|
|
|
779
794
|
})
|
|
780
795
|
};
|
|
781
796
|
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
797
|
+
(async () => {
|
|
798
|
+
if (!ctx.firstListen || !ctx.lastSeqId) {
|
|
799
|
+
await getSeqID();
|
|
800
|
+
} else {
|
|
801
|
+
listenMqtt(defaultFuncs, api, ctx, globalCallback);
|
|
802
|
+
}
|
|
803
|
+
ctx.firstListen = false;
|
|
804
|
+
})();
|
|
805
|
+
|
|
785
806
|
return msgEmitter;
|
|
786
807
|
};
|
|
787
808
|
};
|