fca-zoebakaaa 1.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.
Files changed (93) hide show
  1. package/.eslintrc.js +35 -0
  2. package/CHANGELOG.md +2 -0
  3. package/Controllers/Remote.js +4 -0
  4. package/DOCS.md +1738 -0
  5. package/Extra/ExtraAddons.js +80 -0
  6. package/Extra/ExtraFindUID.js +62 -0
  7. package/Extra/ExtraGetThread.js +118 -0
  8. package/Extra/ExtraTranslate.js +62 -0
  9. package/Extra/ExtraUptimeRobot.js +62 -0
  10. package/Extra/Html/Classic/script.js +233 -0
  11. package/Extra/Html/Classic/style.css +8 -0
  12. package/Extra/PM2/ecosystem.config.js +23 -0
  13. package/Extra/Security/Index.js +174 -0
  14. package/Extra/Security/Step_1.js +15 -0
  15. package/Extra/Security/Step_2.js +23 -0
  16. package/Extra/Security/Step_3.js +23 -0
  17. package/Extra/Src/History.js +117 -0
  18. package/Extra/Src/Last-Run.js +65 -0
  19. package/Extra/Src/Premium.js +88 -0
  20. package/Extra/Src/SecurityCheck.js +7 -0
  21. package/Extra/database/SyntheticDatabase.sqlite +0 -0
  22. package/Extra/database/index.js +360 -0
  23. package/Extra/logger.js +74 -0
  24. package/Func/AcceptAgreement.js +36 -0
  25. package/Func/ClearCache.js +68 -0
  26. package/Func/ReportV1.js +55 -0
  27. package/README.md +112 -0
  28. package/Settings/Database.js +21 -0
  29. package/Settings/Location.js +59 -0
  30. package/broadcast.js +40 -0
  31. package/index.js +1353 -0
  32. package/logger.js +75 -0
  33. package/package.json +56 -0
  34. package/src/Premium.js +39 -0
  35. package/src/addExternalModule.js +23 -0
  36. package/src/addUserToGroup.js +101 -0
  37. package/src/appstate.json +0 -0
  38. package/src/changeAdminStatus.js +95 -0
  39. package/src/changeArchivedStatus.js +47 -0
  40. package/src/changeAvt.js +95 -0
  41. package/src/changeBio.js +66 -0
  42. package/src/changeBlockedStatus.js +42 -0
  43. package/src/changeGroupImage.js +124 -0
  44. package/src/changeNickname.js +54 -0
  45. package/src/changeThreadColor.js +67 -0
  46. package/src/changeThreadEmoji.js +50 -0
  47. package/src/createNewGroup.js +78 -0
  48. package/src/createPoll.js +66 -0
  49. package/src/deleteMessage.js +51 -0
  50. package/src/deleteThread.js +49 -0
  51. package/src/forwardAttachment.js +53 -0
  52. package/src/getAccessToken.js +36 -0
  53. package/src/getCurrentUserID.js +8 -0
  54. package/src/getEmojiUrl.js +29 -0
  55. package/src/getFriendsList.js +81 -0
  56. package/src/getMessage.js +85 -0
  57. package/src/getThreadHistory.js +633 -0
  58. package/src/getThreadInfo.js +248 -0
  59. package/src/getThreadList.js +276 -0
  60. package/src/getThreadPictures.js +71 -0
  61. package/src/getUID.js +61 -0
  62. package/src/getUserID.js +62 -0
  63. package/src/getUserInfo.js +68 -0
  64. package/src/getUserInfoV2.js +32 -0
  65. package/src/getUserInfoV3.js +72 -0
  66. package/src/getUserInfoV4.js +57 -0
  67. package/src/getUserInfoV5.js +68 -0
  68. package/src/handleFriendRequest.js +47 -0
  69. package/src/handleMessageRequest.js +63 -0
  70. package/src/httpGet.js +54 -0
  71. package/src/httpPost.js +53 -0
  72. package/src/httpPostFormData.js +46 -0
  73. package/src/listenMqtt.js +1056 -0
  74. package/src/logout.js +73 -0
  75. package/src/markAsDelivered.js +54 -0
  76. package/src/markAsRead.js +82 -0
  77. package/src/markAsReadAll.js +47 -0
  78. package/src/markAsSeen.js +58 -0
  79. package/src/muteThread.js +51 -0
  80. package/src/removeUserFromGroup.js +72 -0
  81. package/src/resolvePhotoUrl.js +39 -0
  82. package/src/searchForThread.js +48 -0
  83. package/src/sendMessage.js +429 -0
  84. package/src/sendTypingIndicator.js +83 -0
  85. package/src/setMessageReaction.js +114 -0
  86. package/src/setPostReaction.js +103 -0
  87. package/src/setTitle.js +86 -0
  88. package/src/threadColors.js +40 -0
  89. package/src/toolspincoinmaster +89 -0
  90. package/src/unfriend.js +48 -0
  91. package/src/unsendMessage.js +40 -0
  92. package/utils.js +2244 -0
  93. package/zoebaka.code-workspace +8 -0
@@ -0,0 +1,80 @@
1
+ /* eslint-disable no-undef */
2
+ import { get, getFrom } from '../utils';
3
+ import { Error as _Error } from '../logger';
4
+ import OTP from 'totp-generator';
5
+
6
+ export async function getInfo (id,jar,ctx,defaultFuncs) {
7
+ var AccessToken = await getAccessToken(jar,ctx,defaultFuncs);
8
+ var { body:Data } = await get(`https://graph.facebook.com/${id}?fields=name,first_name,email,about,birthday,gender,website,hometown,link,location,quotes,relationship_status,significant_other,username,subscribers.limite(0)&access_token=${AccessToken}`,jar,null,ctx.globalOptions);
9
+ var Format = {
10
+ id: JSON.parse(Data).id || "Không Có Dữ Liệu",
11
+ name: JSON.parse(Data).name || "Không Có Dữ Liệu",
12
+ first_name: JSON.parse(Data).first_name || "Không Có Dữ Liệu",
13
+ username: JSON.parse(Data).username || "Không Có Dữ Liệu",
14
+ link: JSON.parse(Data).link || "Không Có Dữ Liệu",
15
+ verified: JSON.parse(Data).verified || "Không Có Dữ Liệu",
16
+ about: JSON.parse(Data).about || "Không Có Dữ Liệu",
17
+ avatar: `https://graph.facebook.com/${id}/picture?height=1500&width=1500&access_token=1449557605494892|aaf0a865c8bafc314ced5b7f18f3caa6` || "Không Có Dữ Liệu",
18
+ birthday: JSON.parse(Data).birthday || "Không Có Dữ Liệu",
19
+ follow: JSON.parse(Data).subscribers.summary.total_count || "Không Có Dữ Liệu",
20
+ gender: JSON.parse(Data).gender || "Không Có Dữ Liệu",
21
+ hometown: JSON.parse(Data).hometown || "Không Có Dữ Liệu",
22
+ email: JSON.parse(Data).email || "Không Có Dữ Liệu",
23
+ interested_in: JSON.parse(Data).interested_in || "Không Có Dữ Liệu",
24
+ location: JSON.parse(Data).location || "Không Có Dữ Liệu",
25
+ locale: JSON.parse(Data).locale || "Không Có Dữ Liệu",
26
+ relationship_status: JSON.parse(Data).relationship_status || "Không Có Dữ Liệu",
27
+ love: JSON.parse(Data).significant_other || "Không Có Dữ Liệu",
28
+ website: JSON.parse(Data).website || "Không Có Dữ Liệu",
29
+ quotes: JSON.parse(Data).quotes || "Không Có Dữ Liệu",
30
+ timezone: JSON.parse(Data).timezone || "Không Có Dữ Liệu",
31
+ updated_time: JSON.parse(Data).updated_time || "Không Có Dữ Liệu"
32
+ }
33
+ return Format;
34
+ }
35
+
36
+ /**
37
+ * Help: @ManhG
38
+ * Author: @KanzuWakazaki
39
+ */
40
+
41
+ export async function getAccessToken (jar, ctx,defaultFuncs) {
42
+
43
+ if (global.Fca.Data.AccessToken) {
44
+ return global.Fca.Data.AccessToken;
45
+ }
46
+ else {
47
+ var netURLS = "https://business.facebook.com/security/twofactor/reauth/enter/"
48
+ return defaultFuncs.get('https://business.facebook.com/business_locations', jar, null, ctx.globalOptions).then(async function(data) {
49
+ try {
50
+ if (/"],\["(.*?)","/.exec(/LMBootstrapper(.*?){"__m":"LMBootstrapper"}/.exec(data.body)[1])[1]) {
51
+ global.Fca.Data.AccessToken = /"],\["(.*?)","/.exec(/LMBootstrapper(.*?){"__m":"LMBootstrapper"}/.exec(data.body)[1])[1];
52
+ return /"],\["(.*?)","/.exec(/LMBootstrapper(.*?){"__m":"LMBootstrapper"}/.exec(data.body)[1])[1];
53
+ }
54
+ }
55
+ catch (_) {
56
+ if (global.Fca.Require.FastConfig.AuthString.includes('|')) return _Error(globalThis.Fca.Require.Language.Index.Missing)
57
+ var OPTCODE = global.Fca.Require.FastConfig.AuthString.includes(" ") ? global.Fca.Require.FastConfig.AuthString.replace(RegExp(" ", 'g'), "") : global.Fca.Require.FastConfig.AuthString;
58
+ var Form = {
59
+ approvals_code: OTP(String(OPTCODE)),
60
+ save_device: true,
61
+ lsd: getFrom(data.body, "[\"LSD\",[],{\"token\":\"", "\"}")
62
+ }
63
+ return defaultFuncs.post(netURLS, jar, Form, ctx.globalOptions, {
64
+ referer: "https://business.facebook.com/security/twofactor/reauth/?twofac_next=https%3A%2F%2Fbusiness.facebook.com%2Fbusiness_locations&type=avoid_bypass&app_id=0&save_device=1",
65
+ }).then(async function(data) {
66
+ if (String(data.body).includes(false)) throw { Error: "Invaild OTP | FastConfigFca.json: AuthString" }
67
+ return defaultFuncs.get('https://business.facebook.com/business_locations', jar, null, ctx.globalOptions,{
68
+ referer: "https://business.facebook.com/security/twofactor/reauth/?twofac_next=https%3A%2F%2Fbusiness.facebook.com%2Fbusiness_locations&type=avoid_bypass&app_id=0&save_device=1",
69
+ }).then(async function(data) {
70
+ var Access_Token = /"],\["(.*?)","/.exec(/LMBootstrapper(.*?){"__m":"LMBootstrapper"}/.exec(data.body)[1])[1];
71
+ global.Fca.Data.AccessToken = Access_Token;
72
+ return Access_Token;
73
+ });
74
+ });
75
+ }
76
+ })
77
+ }
78
+ }
79
+
80
+ //hard working =))
@@ -0,0 +1,62 @@
1
+ /* eslint-disable no-undef */
2
+ /* eslint-disable @typescript-eslint/no-var-requires */
3
+ const got = globalThis.Fca.Require.Fetch;
4
+
5
+ /**
6
+ * @param {string | URL} url
7
+ * @param {{ sendMessage: (arg0: string, arg1: any) => any; }} api
8
+ */
9
+ async function getUIDSlow(url,api) {
10
+ var FormData = require("form-data");
11
+ var Form = new FormData();
12
+ var Url = new URL(url);
13
+ Form.append('username', Url.pathname.replace(/\//g, ""));
14
+ try {
15
+ var data = await got.post('https://api.findids.net/api/get-uid-from-username',{
16
+ body: Form,
17
+ userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.79 Safari/537.36'
18
+ })
19
+ } catch (e) {
20
+ console.log(globalThis.Fca.Data.event.threadID,e)
21
+ return api.sendMessage("Lỗi: " + e.message,globalThis.Fca.Data.event.threadID);
22
+ }
23
+ if (JSON.parse(data.body.toString()).status != 200) return api.sendMessage('Đã bị lỗi !',globalThis.Fca.Data.event.threadID)
24
+ if (typeof JSON.parse(data.body.toString()).error === 'string') return "errr"
25
+ else return JSON.parse(data.body.toString()).data.id || "nịt";
26
+ }
27
+
28
+ /**
29
+ * @param {string | URL} url
30
+ * @param {{ sendMessage: (arg0: string, arg1: any, arg2: any) => any; }} api
31
+ */
32
+ async function getUIDFast(url,api) {
33
+ var FormData = require("form-data");
34
+ var Form = new FormData();
35
+ var Url = new URL(url);
36
+ Form.append('link', Url.href);
37
+ try {
38
+ var data = await got.post('https://id.traodoisub.com/api.php',{
39
+ body: Form
40
+ })
41
+ } catch (e) {
42
+ return api.sendMessage("Lỗi: " + e.message,globalThis.Fca.Data.event.threadID,globalThis.Fca.Data.event.messageID);
43
+ }
44
+ if (JSON.parse(data.body.toString()).error) return api.sendMessage(JSON.parse(data.body.toString()).error,globalThis.Fca.Data.event.threadID,globalThis.Fca.Data.event.messageID);
45
+ else return JSON.parse(data.body.toString()).id || "co cai nit huhu";
46
+ }
47
+
48
+ /**
49
+ * @param {any} url
50
+ * @param {any} api
51
+ */
52
+ async function getUID(url,api) {
53
+ var getUID = await getUIDFast(url,api);
54
+ if (!isNaN(getUID) == true) return getUID;
55
+ else {
56
+ let getUID = await getUIDSlow(url,api);
57
+ if (!isNaN(data) == true) return getUID;
58
+ else return null;
59
+ }
60
+ }
61
+
62
+ export default getUID;
@@ -0,0 +1,118 @@
1
+ /* eslint-disable */
2
+ "use strict";
3
+ var Database = require("../Extra/database");
4
+ var { lastRun,capture } = require('./Src/Last-Run').default;
5
+ var logger = require("../logger");
6
+ var getText = global.Fca.getText;
7
+ var language = require("../Language/index.json");
8
+ language = language.find(i => i.Language == require("../../../FcaSetting.json").Language).Folder.ExtraGetThread;
9
+
10
+ exports.createData = function(threadID,threadData) {
11
+ try {
12
+ Database.set(String(threadID),Object(threadData),true);
13
+ logger.Normal(getText(language.CreateDatabaseSuccess,String(threadID)));
14
+ }
15
+ catch (e) {
16
+ console.log(e);
17
+ logger.Warning(getText(language.CreateDatabaseFailure,String(threadID)));
18
+ }
19
+ }
20
+
21
+ exports.updateData = function(threadID,threadData) {
22
+ try {
23
+ Database.set(String(threadID),Object(threadData),true);
24
+ logger.Normal(getText(language.updateDataSuccess,String(threadID)));
25
+ }
26
+ catch (e) {
27
+ console.log(e);
28
+ logger.Warning(getText(language.updateDataFailure,String(threadID)));
29
+ }
30
+ }
31
+
32
+ exports.updateMessageCount = function(threadID,threadData) {
33
+ try {
34
+ Database.set(String(threadID),Object(threadData),true);
35
+ }
36
+ catch (e) {
37
+ console.log(e);
38
+ }
39
+ }
40
+
41
+ exports.getData = function(threadID) {
42
+ switch (Database.has(String(threadID),true)) {
43
+ case true: {
44
+ return Database.get(String(threadID),{},true)
45
+ }
46
+ case false: {
47
+ return null;
48
+ }
49
+ }
50
+ }
51
+
52
+ exports.deleteAll = function(data) {
53
+ for (let i of data) {
54
+ Database.delete(String(i),true);
55
+ }
56
+ }
57
+
58
+ exports.getAll = function() {
59
+ return Database.list(true);
60
+ }
61
+
62
+ exports.hasData = function(threadID) {
63
+ return Database.has(String(threadID),true);
64
+ }
65
+
66
+ exports.alreadyUpdate = function(threadID) {
67
+ var Time = Database.get(String(threadID),{},true).TimeUpdate;
68
+ try {
69
+ if (global.Fca.startTime >= (Time + (3600 * 1000))) {
70
+ logger.Normal(getText(language.alreadyUpdate, String(threadID)));
71
+ return true;
72
+ }
73
+ else return false;
74
+ }
75
+ catch (e) {
76
+ console.log(e);
77
+ return true;
78
+ }
79
+ }
80
+
81
+ exports.readyCreate = function(Name) {
82
+ switch (Database.has(String(Name),true)) {
83
+ case true: {
84
+ if (Number(global.Fca.startTime) >= Number(Database.get(String(Name),{},true) + (120 * 1000))) {
85
+ return true;
86
+ }
87
+ else {
88
+ return false;
89
+ }
90
+ }
91
+ case false: {
92
+ return false;
93
+ }
94
+ }
95
+ }
96
+
97
+ exports.setLastRun = function(Name,LastRun) {
98
+ Database.set(String(Name),String(lastRun(LastRun)),true);
99
+ }
100
+
101
+ exports.getLastRun = function(Name) {
102
+ switch (Database.has(String(Name),true)) {
103
+ case true: {
104
+ return Database.get(String(Name),{},true);
105
+ }
106
+ case false: {
107
+ try {
108
+ capture(Name)
109
+ this.setLastRun(Name,Name);
110
+ return Database.get(String(Name),{},true);
111
+ }
112
+ catch(e) {
113
+ console.log(e);
114
+ return Date.now();
115
+ }
116
+ }
117
+ }
118
+ }
@@ -0,0 +1,62 @@
1
+ /* eslint-disable @typescript-eslint/no-var-requires */
2
+ // Credit: Kb2a Team
3
+
4
+ import { get } from "got";
5
+
6
+ /**
7
+ * Translate a text from <from> to <to> using Bing engine
8
+ * @async
9
+ * @method bing
10
+ * @param {string} text Text to be translated
11
+ * @param {string} from Source language
12
+ * @param {string} to Destination language
13
+ * @return {string} Translated text
14
+ * @example
15
+ * await bing("hello impostor", "en", "ur") // => "hello impostor"
16
+ */
17
+ async function bing(text, from, to) {
18
+ const body = await get(`http://api.microsofttranslator.com/V2/Ajax.svc/Translate?appId=68D088969D79A8B23AF8585CC83EBA2A05A97651&from=${from}&to=${to}&text=${text}`).text()
19
+ return body.replace(/"/g,'')
20
+ }
21
+
22
+ /**
23
+ * Translate a text from <from> to <to> using Google engine
24
+ * @async
25
+ * @method bing
26
+ * @param {string} text Text to be translated
27
+ * @param {string} [from="auto"] Source language
28
+ * @param {string} to Destination language
29
+ * @return {string} Translated text
30
+ * @example
31
+ * await google("giữa chúng ta", null, "en") // => "among us"
32
+ */
33
+
34
+ async function google(text, from, to) {
35
+ const json = await
36
+ get(
37
+ `https://translate.googleapis.com/translate_a/single?client=gtx&sl=${from}&tl=${to}&dt=t&q=${text}
38
+ `)
39
+ .json()
40
+ return json[0][0][0];
41
+ }
42
+
43
+ /**
44
+ * Detect language that the text are using
45
+ * @async
46
+ * @method detect
47
+ * @param {string} text Source text
48
+ * @return {string} language
49
+ * @example
50
+ * await detect("Hello") // => "ur"
51
+ */
52
+
53
+ async function detect(text) {
54
+ const body = await get(`https://api.microsofttranslator.com/V2/Http.svc/Detect?&appid=68D088969D79A8B23AF8585CC83EBA2A05A97651&text=${text}`);
55
+ return />(.*?)</.exec(body.body)[1]
56
+ }
57
+
58
+ export default {
59
+ bing,
60
+ google,
61
+ detect
62
+ }
@@ -0,0 +1,62 @@
1
+ /* eslint-disable no-redeclare */
2
+ /* eslint-disable no-undef */
3
+ /* eslint-disable @typescript-eslint/no-var-requires */
4
+ const logger = require("../logger");
5
+ var { join } = require('path');
6
+ /**
7
+ * It checks if the process is running in PM2, if it isn't, it installs PM2, starts it, and exits the
8
+ * process.
9
+ * @returns the logger.Normal function.
10
+ */
11
+
12
+ function PM2Mode () {
13
+ if (!process.env.PM2) {
14
+ const { execSync } = require('child_process');
15
+ logger.Normal(globalThis.Fca.Require.Language.ExtraUpTime.PM2);
16
+ execSync('npm i pm2', { stdio: 'inherit'}); //ey zo how about sudo in linux 🐧
17
+ execSync(`pm2 start ${join(__dirname, "/PM2/ecosystem.config.js")} --no-daemon`, { stdio: 'inherit' }); //That's not the end.
18
+ process.exit();
19
+ }
20
+ else return logger.Normal(globalThis.Fca.Require.Language.ExtraUpTime.InPm2Mode);
21
+ }
22
+
23
+ /* It's checking if the process is running in PM2, if it isn't, it installs PM2, starts it, and exits
24
+ the process. */
25
+ module.exports = function() {
26
+ var Logger = globalThis.Fca.Require.logger;
27
+ switch (process.platform) {
28
+ case 'win32':
29
+ var Value = globalThis.Fca.Require.FastConfig;
30
+ if (Value.Uptime) {
31
+ return PM2Mode();
32
+ }
33
+ break;
34
+ case 'darwin':
35
+ var Value = globalThis.Fca.Require.FastConfig;
36
+ if (Value.Uptime) {
37
+ return PM2Mode();
38
+ }
39
+ break;
40
+ case 'linux':
41
+ if (process.env.REPL_SLUG) {
42
+ var Value = globalThis.Fca.Require.FastConfig;
43
+ var Fetch = globalThis.Fca.Require.Fetch;
44
+ if (Value.Uptime) {
45
+ logger.Normal(globalThis.Fca.Require.Language.ExtraUpTime.Uptime);//
46
+ return setInterval(function() {
47
+ Fetch.get(`https://${process.env.REPL_SLUG}.${process.env.REPL_OWNER}.repl.co`);
48
+ },10*1000);
49
+ }
50
+ else return;
51
+ }
52
+ else {
53
+ var Value = globalThis.Fca.Require.FastConfig;
54
+ if (Value.Uptime) {
55
+ return PM2Mode();
56
+ }
57
+ }
58
+ break;
59
+ default:
60
+ Logger.Warning(globalThis.Fca.Require.Language.ExtraUpTime.NotSupport);
61
+ }
62
+ };