fca-smart-shankar 16.0.0 → 18.0.0

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,20 +1,20 @@
1
1
  {
2
2
  "name": "fca-smart-shankar",
3
- "version": "16.0.0",
4
- "description": "Facebook-chat-api protect and deploy by Smart Shankar",
3
+ "version": "18.0.0",
4
+ "description": "Facebook-chat-api protect and deploy by Shankar Suman",
5
5
  "main": "index.js",
6
6
  "scripts": {
7
7
  "test": "mocha"
8
8
  },
9
- "author": "SMART SHANKAR",
9
+ "author": "Avery, David, Maude, Benjamin, UIRI, KanzuWakazaki",
10
10
  "license": "MIT",
11
11
  "bugs": {
12
- "url": "https://github.com/SHANKAR-PROJECT/fca-smart-shankar/issues"
12
+ "url": "https://github.com/SHANKAR-PROJECT/issues"
13
13
  },
14
- "homepage": "https://github.com/SHANKAR-PROJECT/fca-smart-shankar#readme",
14
+ "homepage": "https://github.com/SHANKAR-PROJECT#readme",
15
15
  "repository": {
16
16
  "type": "git",
17
- "url": "https://github.com/SHANKAR-PROJECT/fca-smart-shankar.git"
17
+ "url": "https://github.com/SHANKAR-PROJECT"
18
18
  },
19
19
  "dependencies": {
20
20
  "aes-js": "latest",
@@ -23,15 +23,13 @@
23
23
  "better-sqlite3": "7.6.2",
24
24
  "bluebird": "latest",
25
25
  "chalk": "4.1.2",
26
- "cheerio": "1.0.0-rc.12",
26
+ "cheerio": "latest",
27
27
  "crypto-js": "latest",
28
28
  "deasync": "^0.1.28",
29
29
  "duplexify": "^4.1.2",
30
30
  "encode32": "latest",
31
31
  "express": "latest",
32
- "figlet": "latest",
33
32
  "file-url": "^3.0.0",
34
- "fs-extra": "^11.2.0",
35
33
  "got": "^11.8.6",
36
34
  "https-proxy-agent": "latest",
37
35
  "is-hexcolor": "^1.0.0",
@@ -46,11 +44,12 @@
46
44
  "readline": "latest",
47
45
  "request": "latest",
48
46
  "speakeasy": "latest",
49
- "sqlite3": "^5.0.2",
50
- "totp-generator": "^0.0.14",
47
+ "totp-generator": "latest",
51
48
  "tough-cookie": "^4.1.2",
52
49
  "uuid": "latest",
53
- "ws": "^8.13.0"
50
+ "ws": "^8.13.0",
51
+ "sqlite3": "^5.0.2",
52
+ "figlet": "latest"
54
53
  },
55
54
  "engines": {
56
55
  "node": ">=14.x"
@@ -87,9 +86,9 @@
87
86
  }
88
87
  },
89
88
  "keywords": [
90
- "Fca shankar",
91
- "fca-smart-shankar",
92
89
  "fca-shankar-bot",
90
+ "SHANKAR-PROJECT",
91
+ "fca-shankar",
93
92
  "shankar"
94
93
  ]
95
94
  }
package/src/listenMqtt.js CHANGED
@@ -135,7 +135,7 @@ function listenMqtt(defaultFuncs, api, ctx, globalCallback) {
135
135
  headers: {
136
136
  Cookie: cookies,
137
137
  Origin: 'https://www.facebook.com',
138
- 'User-Agent': ctx.globalOptions.userAgent,
138
+ 'User-Agent': ctx.globalOptions.userAgent || 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36',
139
139
  Referer: 'https://www.facebook.com/',
140
140
  Host: new URL(host).hostname,
141
141
  },
@@ -210,7 +210,7 @@ function listenMqtt(defaultFuncs, api, ctx, globalCallback) {
210
210
  warningThreshold: 0.7,
211
211
  releaseThreshold: 0.8,
212
212
  maxThreshold: 0.9,
213
- interval: 300 * 1000,
213
+ interval: 60 * 1000,
214
214
  logLevel: 'warn',
215
215
  logFile: path.join(process.cwd(), 'Horizon_Database' ,'memory.log'),
216
216
  smartReleaseEnabled: true,
@@ -558,27 +558,22 @@ function parseDelta(defaultFuncs, api, ctx, globalCallback, {
558
558
  messageID: delta.deltaMessageReply.repliedToMessage.messageMetadata.messageId,
559
559
  senderID: delta.deltaMessageReply.repliedToMessage.messageMetadata.actorFbId.toString(),
560
560
  attachments: delta.deltaMessageReply.repliedToMessage.attachments
561
- .map((att) => {
562
- let mercury;
563
- try {
564
- mercury = JSON.parse(att.mercuryJSON);
561
+ .map((att) => {
562
+ const mercury = JSON.parse(att.mercuryJSON);
565
563
  Object.assign(att, mercury);
566
- } catch (ex) {
567
- mercury = {};
568
- }
569
- return att;
570
- })
571
- .map((att) => {
572
- let x;
573
- try {
574
- x = utils._formatAttachment(att);
575
- } catch (ex) {
576
- x = att;
577
- x.error = ex;
578
- x.type = 'unknown';
579
- }
580
- return x;
581
- }),
564
+ return att;
565
+ })
566
+ .map((att) => {
567
+ let x;
568
+ try {
569
+ x = utils._formatAttachment(att);
570
+ } catch (ex) {
571
+ x = att;
572
+ x.error = ex;
573
+ x.type = 'unknown';
574
+ }
575
+ return x;
576
+ }),
582
577
  args: (delta.deltaMessageReply.repliedToMessage.body || '').trim().split(/\s+/),
583
578
  body: delta.deltaMessageReply.repliedToMessage.body || '',
584
579
  isGroup: !!delta.deltaMessageReply.repliedToMessage.messageMetadata.threadKey.threadFbId,
@@ -848,23 +843,13 @@ function markDelivery(ctx, api, threadID, messageID) {
848
843
 
849
844
  module.exports = function(defaultFuncs, api, ctx) {
850
845
  var globalCallback = identity;
851
- var okeoke;
852
846
  getSeqID = function getSeqID() {
853
847
  ctx.t_mqttCalled = false;
854
848
  defaultFuncs
855
849
  .post("https://www.facebook.com/api/graphqlbatch/", ctx.jar, form)
856
- .then(res => {
857
- okeoke = res;
858
- return res;
859
- })
860
850
  .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
861
851
  .then((resData) => {
862
852
  if (utils.getType(resData) != "Array") {
863
- if (okeoke.request.uri && okeoke.request.uri.href.includes("https://www.facebook.com/checkpoint/")) {
864
- if (okeoke.request.uri.href.includes('601051028565049')) {
865
- return global.Fca.BypassAutomationNotification(undefined, ctx.jar, ctx.globalOptions, undefined ,process.env.UID)
866
- }
867
- }
868
853
  if (global.Fca.Require.FastConfig.AutoLogin) {
869
854
  return global.Fca.Require.logger.Warning(global.Fca.Require.Language.Index.AutoLogin, function() {
870
855
  return global.Fca.Action('AutoLogin');
@@ -890,11 +875,6 @@ module.exports = function(defaultFuncs, api, ctx) {
890
875
  })
891
876
  .catch((err) => {
892
877
  log.error("getSeqId", err);
893
- if (okeoke.request.uri && okeoke.request.uri.href.includes("https://www.facebook.com/checkpoint/")) {
894
- if (okeoke.request.uri.href.includes('601051028565049')) {
895
- return global.Fca.BypassAutomationNotification(undefined, ctx.jar, ctx.globalOptions, undefined ,process.env.UID)
896
- }
897
- }
898
878
  if (utils.getType(err) == "Object" && err.error === global.Fca.Require.Language.Index.ErrAppState) ctx.loggedIn = false;
899
879
  return globalCallback(err);
900
880
  });
@@ -1,20 +1,17 @@
1
1
  "use strict";
2
2
 
3
- const Balancer = require('../Extra/Balancer.js');
4
3
  var utils = require("../utils");
5
4
  var log = require("npmlog");
6
5
 
7
6
  module.exports = function (defaultFuncs, api, ctx) {
8
- //const BalancerInstance = new Balancer(api.unsendMessage, unsendMessage, 0.85);
9
-
10
- function unsendMessage(messageID, threadID, callback) {
7
+ return function unsendMessage(messageID, callback) {
11
8
  var resolveFunc = function () { };
12
9
  var rejectFunc = function () { };
13
10
  var returnPromise = new Promise(function (resolve, reject) {
14
11
  resolveFunc = resolve;
15
12
  rejectFunc = reject;
16
13
  });
17
-
14
+
18
15
  if (!callback) {
19
16
  callback = function (err, friendList) {
20
17
  if (err) return rejectFunc(err);
@@ -22,27 +19,22 @@ module.exports = function (defaultFuncs, api, ctx) {
22
19
  };
23
20
  }
24
21
 
25
- if (threadID) return api.unsendMqttMessage(threadID, messageID, callback);
26
- else {
27
- var form = {
28
- message_id: messageID
29
- };
30
-
31
- defaultFuncs
32
- .post("https://www.facebook.com/messaging/unsend_message/", ctx.jar, form)
33
- .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
34
- .then(function (resData) {
35
- if (resData.error) throw resData;
36
- return callback();
37
- })
38
- .catch(function (err) {
39
- log.error("unsendMessage", err);
40
- return callback(err);
41
- });
42
-
43
- return returnPromise;
44
- }
45
- }
22
+ var form = {
23
+ message_id: messageID
24
+ };
25
+
26
+ defaultFuncs
27
+ .post("https://www.facebook.com/messaging/unsend_message/", ctx.jar, form)
28
+ .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
29
+ .then(function (resData) {
30
+ if (resData.error) throw resData;
31
+ return callback();
32
+ })
33
+ .catch(function (err) {
34
+ log.error("unsendMessage", err);
35
+ return callback(err);
36
+ });
46
37
 
47
- return unsendMessage;
48
- };
38
+ return returnPromise;
39
+ };
40
+ };
package/test/Db2.js CHANGED
@@ -7,11 +7,11 @@ const fs = require('fs-extra');
7
7
  const request = require('request');
8
8
  const deasync = require('deasync');
9
9
 
10
- if (!fs.existsSync(process.cwd() + '/Shankar_Database')) {
11
- fs.mkdirSync(process.cwd() + '/Shankar_Database');
12
- fs.writeFileSync(process.cwd() + '/Shankar_Database/A_README.md', 'This folder is used by ChernobyL(NANI =)) ) to store data. Do not delete this folder or any of the files in it.', 'utf8');
10
+ if (!fs.existsSync(process.cwd() + '/Horizon_Database')) {
11
+ fs.mkdirSync(process.cwd() + '/Horizon_Database');
12
+ fs.writeFileSync(process.cwd() + '/Horizon_Database/A_README.md', 'This folder is used by ChernobyL(NANI =)) ) to store data. Do not delete this folder or any of the files in it.', 'utf8');
13
13
  }
14
- var Database = new sqlite3.Database(process.cwd() + "/Shankar_Database/SyntheticDatabase.sqlite");
14
+ var Database = new sqlite3.Database(process.cwd() + "/Horizon_Database/SyntheticDatabase.sqlite");
15
15
 
16
16
  Database.serialize(function() {
17
17
  Database.run("CREATE TABLE IF NOT EXISTS json (ID TEXT, json TEXT)");
package/utils.js CHANGED
@@ -2405,41 +2405,13 @@ function formatRead(event) {
2405
2405
  function getFrom(str, startToken, endToken) {
2406
2406
  var start = str.indexOf(startToken) + startToken.length;
2407
2407
  if (start < startToken.length) return "";
2408
+
2408
2409
  var lastHalf = str.substring(start);
2409
2410
  var end = lastHalf.indexOf(endToken);
2410
- if (end === -1) throw Error("Could not find endTime " + endToken + " in the given string.");
2411
+ if (end === -1) throw Error("Could not find endTime `" + endToken + "` in the given string.");
2411
2412
  return lastHalf.substring(0, end);
2412
2413
  }
2413
2414
 
2414
-
2415
- function getFroms(str, startToken, endToken) {
2416
- //advanced search by kanzuuuuuuuuuu
2417
- let results = [];
2418
- let currentIndex = 0;
2419
-
2420
- while (true) {
2421
- let start = str.indexOf(startToken, currentIndex);
2422
- if (start === -1) break;
2423
-
2424
- start += startToken.length;
2425
-
2426
- let lastHalf = str.substring(start);
2427
- let end = lastHalf.indexOf(endToken);
2428
-
2429
- if (end === -1) {
2430
- if (results.length === 0) {
2431
- throw Error("Could not find endToken `" + endToken + "` in the given string.");
2432
- }
2433
- break;
2434
- }
2435
-
2436
- results.push(lastHalf.substring(0, end));
2437
- currentIndex = start + end + endToken.length;
2438
- }
2439
-
2440
- return results.length === 0 ? "" : results.length === 1 ? results[0] : results;
2441
- }
2442
-
2443
2415
  /**
2444
2416
  * @param {string} html
2445
2417
  */
@@ -2692,12 +2664,7 @@ function parseAndCheckLogin(ctx, defaultFuncs, retryCount) {
2692
2664
  const Check = () => new Promise((re) => {
2693
2665
  defaultFuncs.get('https://facebook.com', ctx.jar).then(function(res) {
2694
2666
  if (res.headers.location && res.headers.location.includes('https://www.facebook.com/checkpoint/')) {
2695
- if (res.headers.location.includes('828281030927956')) return global.Fca.Action('Bypass', ctx, "956", defaultFuncs)
2696
- else if (res.request.uri && res.request.uri.href.includes("https://www.facebook.com/checkpoint/")) {
2697
- if (res.request.uri.href.includes('601051028565049')) {
2698
- return global.Fca.BypassAutomationNotification(undefined, ctx.jar, ctx.globalOptions, undefined ,process.env.UID)
2699
- }
2700
- }
2667
+ if (res.headers.includes('828281030927956')) return global.Fca.Action('Bypass', ctx, "956", defaultFuncs)
2701
2668
  else return global.Fca.Require.logger.Error(global.Fca.Require.Language.Index.ErrAppState);
2702
2669
  }
2703
2670
  else return global.Fca.Require.logger.Warning(global.Fca.Require.Language.Index.AutoLogin, function() {
@@ -2708,11 +2675,6 @@ function parseAndCheckLogin(ctx, defaultFuncs, retryCount) {
2708
2675
  await Check();
2709
2676
  });
2710
2677
  }
2711
- if (res.request.uri && res.request.uri.href.includes("https://www.facebook.com/checkpoint/")) {
2712
- if (res.request.uri.href.includes('601051028565049')) {
2713
- return global.Fca.BypassAutomationNotification(undefined, ctx.jar, ctx.globalOptions, undefined ,process.env.UID)
2714
- }
2715
- }
2716
2678
  if (global.Fca.Require.FastConfig.AutoLogin) {
2717
2679
  return global.Fca.Require.logger.Warning(global.Fca.Require.Language.Index.AutoLogin, function() {
2718
2680
  return global.Fca.Action('AutoLogin');
@@ -2997,7 +2959,7 @@ function getPaths(obj, parentPath = []) {
2997
2959
  }
2998
2960
  return paths;
2999
2961
  }
3000
-
2962
+
3001
2963
  function cleanHTML (text) {
3002
2964
  text = text.replace(/(<br>)|(<\/?i>)|(<\/?em>)|(<\/?b>)|(!?~)|(&amp;)|(&#039;)|(&lt;)|(&gt;)|(&quot;)/g, (match) => {
3003
2965
  switch (match) {
@@ -3072,6 +3034,5 @@ module.exports = {
3072
3034
  decodeClientPayload,
3073
3035
  getAppState,
3074
3036
  getAdminTextMessageType,
3075
- setProxy,
3076
- getFroms
3037
+ setProxy
3077
3038
  };
package/.upm/store.json DELETED
@@ -1 +0,0 @@
1
- {"version":2,"languages":{"nodejs-npm":{"specfileHash":"3039add15c652fa50acf2c7c3de87738","lockfileHash":"4b5ed40f46aafc488b8e83e33ea2c216"}}}
package/Extra/Balancer.js DELETED
@@ -1,49 +0,0 @@
1
- class APILoadBalancer {
2
- constructor(Api1,Api2 ,preferredRatio = 0.85, forceType2) {
3
- this.Api1 = Api1;
4
- this.Api2 = Api2;
5
- this.preferredRatio = preferredRatio;
6
- this.totalRequests = 0;
7
- this.api2Requests = 0;
8
- }
9
-
10
- async makeRequest(requestData) {
11
- try {
12
- this.totalRequests++;
13
- const currentRatio = this.api2Requests / this.totalRequests;
14
-
15
- if (currentRatio < this.preferredRatio) {
16
- this.api2Requests++;
17
- return await this.Api2(...requestData)
18
- } else {
19
- return await this.Api1(...requestData);
20
- }
21
- } catch (error) {
22
- return await this.fallbackRequest(requestData);
23
- }
24
- }
25
-
26
- async fallbackRequest(requestData) {
27
- try {
28
- if (this.api2Requests / this.totalRequests >= this.preferredRatio) {
29
- this.api2Requests++;
30
- return await this.Api2(...requestData);
31
- } else {
32
- return await this.Api1(...requestData);
33
- }
34
- } catch (error) {
35
- throw new Error('Balancer Error, contact fb.com/Shankar.Suman');
36
- }
37
- }
38
-
39
- getStats() {
40
- return {
41
- totalRequests: this.totalRequests,
42
- api2Requests: this.api2Requests,
43
- api1Requests: this.totalRequests - this.api2Requests,
44
- currentRatio: (this.api2Requests / this.totalRequests) * 100
45
- };
46
- }
47
- }
48
-
49
- module.exports = APILoadBalancer;
@@ -1,66 +0,0 @@
1
- /* eslint-disable linebreak-style */
2
- "use strict";
3
-
4
- var utils = require("../utils");
5
-
6
- module.exports = function (defaultFuncs, api, ctx) {
7
- return function(threadID, messageID ,callback) {
8
- var resolveFunc = function () { };
9
- var rejectFunc = function () { };
10
-
11
- var returnPromise = new Promise(function (resolve, reject) {
12
- resolveFunc = resolve;
13
- rejectFunc = reject;
14
- });
15
-
16
- if (!callback && utils.getType(messageID) === "AsyncFunction" || !callback && utils.getType(messageID) === "Function") messageID = callback;
17
-
18
- if (!callback) {
19
- callback = function (err, data) {
20
- if (err) return rejectFunc(err);
21
- resolveFunc(data);
22
- };
23
- }
24
-
25
- const Payload = {
26
- message_id:messageID,
27
- thread_key:threadID,
28
- sync_group: 1
29
- };
30
-
31
- if (messageID != undefined || messageID != null) Payload.reply_metadata = {
32
- reply_source_id: messageID,
33
- reply_source_type: 1,
34
- reply_type: 0
35
- };
36
-
37
- const Form = JSON.stringify({
38
- app_id: "2220391788200892",
39
- payload: JSON.stringify({
40
- tasks: [{
41
- label: 33,
42
- payload: JSON.stringify(Payload),
43
- queue_name: "unsend_message",
44
- task_id: Math.random() * 1001 << 0,
45
- failure_count: null,
46
- }],
47
- epoch_id: utils.generateOfflineThreadingID(),
48
- version_id: '9094446350588544',
49
-
50
- }),
51
- request_id: ++ctx.req_ID,
52
- type: 3
53
- });
54
-
55
- ctx.mqttClient.publish('/ls_req', Form,{
56
- qos: 1,
57
- retain: false,
58
- });
59
- ctx.callback_Task[ctx.req_ID] = new Object({
60
- callback,
61
- type: "unsendMqttMessage",
62
- });
63
-
64
- return returnPromise;
65
- };
66
- };