alicezetion 1.9.7 → 1.9.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (292) hide show
  1. package/.cache/replit/modules/nodejs-20.res +1 -0
  2. package/.cache/replit/modules/replit.res +1 -0
  3. package/.cache/typescript/5.4/node_modules/.package-lock.json +137 -0
  4. package/.cache/typescript/5.4/node_modules/@types/bluebird/LICENSE +21 -0
  5. package/.cache/typescript/5.4/node_modules/@types/bluebird/README.md +15 -0
  6. package/.cache/typescript/5.4/node_modules/@types/bluebird/index.d.ts +1365 -0
  7. package/.cache/typescript/5.4/node_modules/@types/bluebird/package.json +25 -0
  8. package/.cache/typescript/5.4/node_modules/@types/caseless/LICENSE +21 -0
  9. package/.cache/typescript/5.4/node_modules/@types/caseless/README.md +48 -0
  10. package/.cache/typescript/5.4/node_modules/@types/caseless/index.d.ts +29 -0
  11. package/.cache/typescript/5.4/node_modules/@types/caseless/package.json +35 -0
  12. package/.cache/typescript/5.4/node_modules/@types/cheerio/LICENSE +21 -0
  13. package/.cache/typescript/5.4/node_modules/@types/cheerio/README.md +15 -0
  14. package/.cache/typescript/5.4/node_modules/@types/cheerio/index.d.ts +318 -0
  15. package/.cache/typescript/5.4/node_modules/@types/cheerio/package.json +71 -0
  16. package/.cache/typescript/5.4/node_modules/@types/node/LICENSE +21 -0
  17. package/.cache/typescript/5.4/node_modules/@types/node/README.md +15 -0
  18. package/.cache/typescript/5.4/node_modules/@types/node/assert/strict.d.ts +8 -0
  19. package/.cache/typescript/5.4/node_modules/@types/node/assert.d.ts +1040 -0
  20. package/.cache/typescript/5.4/node_modules/@types/node/async_hooks.d.ts +541 -0
  21. package/.cache/typescript/5.4/node_modules/@types/node/buffer.d.ts +2363 -0
  22. package/.cache/typescript/5.4/node_modules/@types/node/child_process.d.ts +1544 -0
  23. package/.cache/typescript/5.4/node_modules/@types/node/cluster.d.ts +578 -0
  24. package/.cache/typescript/5.4/node_modules/@types/node/console.d.ts +452 -0
  25. package/.cache/typescript/5.4/node_modules/@types/node/constants.d.ts +19 -0
  26. package/.cache/typescript/5.4/node_modules/@types/node/crypto.d.ts +4523 -0
  27. package/.cache/typescript/5.4/node_modules/@types/node/dgram.d.ts +596 -0
  28. package/.cache/typescript/5.4/node_modules/@types/node/diagnostics_channel.d.ts +554 -0
  29. package/.cache/typescript/5.4/node_modules/@types/node/dns/promises.d.ts +476 -0
  30. package/.cache/typescript/5.4/node_modules/@types/node/dns.d.ts +864 -0
  31. package/.cache/typescript/5.4/node_modules/@types/node/dom-events.d.ts +124 -0
  32. package/.cache/typescript/5.4/node_modules/@types/node/domain.d.ts +170 -0
  33. package/.cache/typescript/5.4/node_modules/@types/node/events.d.ts +931 -0
  34. package/.cache/typescript/5.4/node_modules/@types/node/fs/promises.d.ts +1245 -0
  35. package/.cache/typescript/5.4/node_modules/@types/node/fs.d.ts +4317 -0
  36. package/.cache/typescript/5.4/node_modules/@types/node/globals.d.ts +412 -0
  37. package/.cache/typescript/5.4/node_modules/@types/node/globals.global.d.ts +1 -0
  38. package/.cache/typescript/5.4/node_modules/@types/node/http.d.ts +1908 -0
  39. package/.cache/typescript/5.4/node_modules/@types/node/http2.d.ts +2418 -0
  40. package/.cache/typescript/5.4/node_modules/@types/node/https.d.ts +550 -0
  41. package/.cache/typescript/5.4/node_modules/@types/node/index.d.ts +89 -0
  42. package/.cache/typescript/5.4/node_modules/@types/node/inspector.d.ts +2746 -0
  43. package/.cache/typescript/5.4/node_modules/@types/node/module.d.ts +315 -0
  44. package/.cache/typescript/5.4/node_modules/@types/node/net.d.ts +999 -0
  45. package/.cache/typescript/5.4/node_modules/@types/node/os.d.ts +495 -0
  46. package/.cache/typescript/5.4/node_modules/@types/node/package.json +217 -0
  47. package/.cache/typescript/5.4/node_modules/@types/node/path.d.ts +191 -0
  48. package/.cache/typescript/5.4/node_modules/@types/node/perf_hooks.d.ts +905 -0
  49. package/.cache/typescript/5.4/node_modules/@types/node/process.d.ts +1754 -0
  50. package/.cache/typescript/5.4/node_modules/@types/node/punycode.d.ts +117 -0
  51. package/.cache/typescript/5.4/node_modules/@types/node/querystring.d.ts +153 -0
  52. package/.cache/typescript/5.4/node_modules/@types/node/readline/promises.d.ts +150 -0
  53. package/.cache/typescript/5.4/node_modules/@types/node/readline.d.ts +540 -0
  54. package/.cache/typescript/5.4/node_modules/@types/node/repl.d.ts +430 -0
  55. package/.cache/typescript/5.4/node_modules/@types/node/sea.d.ts +153 -0
  56. package/.cache/typescript/5.4/node_modules/@types/node/stream/consumers.d.ts +12 -0
  57. package/.cache/typescript/5.4/node_modules/@types/node/stream/promises.d.ts +83 -0
  58. package/.cache/typescript/5.4/node_modules/@types/node/stream/web.d.ts +367 -0
  59. package/.cache/typescript/5.4/node_modules/@types/node/stream.d.ts +1707 -0
  60. package/.cache/typescript/5.4/node_modules/@types/node/string_decoder.d.ts +67 -0
  61. package/.cache/typescript/5.4/node_modules/@types/node/test.d.ts +1718 -0
  62. package/.cache/typescript/5.4/node_modules/@types/node/timers/promises.d.ts +97 -0
  63. package/.cache/typescript/5.4/node_modules/@types/node/timers.d.ts +240 -0
  64. package/.cache/typescript/5.4/node_modules/@types/node/tls.d.ts +1217 -0
  65. package/.cache/typescript/5.4/node_modules/@types/node/trace_events.d.ts +197 -0
  66. package/.cache/typescript/5.4/node_modules/@types/node/tty.d.ts +208 -0
  67. package/.cache/typescript/5.4/node_modules/@types/node/url.d.ts +952 -0
  68. package/.cache/typescript/5.4/node_modules/@types/node/util.d.ts +2292 -0
  69. package/.cache/typescript/5.4/node_modules/@types/node/v8.d.ts +808 -0
  70. package/.cache/typescript/5.4/node_modules/@types/node/vm.d.ts +924 -0
  71. package/.cache/typescript/5.4/node_modules/@types/node/wasi.d.ts +181 -0
  72. package/.cache/typescript/5.4/node_modules/@types/node/worker_threads.d.ts +694 -0
  73. package/.cache/typescript/5.4/node_modules/@types/node/zlib.d.ts +530 -0
  74. package/.cache/typescript/5.4/node_modules/@types/npmlog/LICENSE +21 -0
  75. package/.cache/typescript/5.4/node_modules/@types/npmlog/README.md +15 -0
  76. package/.cache/typescript/5.4/node_modules/@types/npmlog/index.d.ts +84 -0
  77. package/.cache/typescript/5.4/node_modules/@types/npmlog/package.json +32 -0
  78. package/.cache/typescript/5.4/node_modules/@types/request/LICENSE +21 -0
  79. package/.cache/typescript/5.4/node_modules/@types/request/README.md +15 -0
  80. package/.cache/typescript/5.4/node_modules/@types/request/index.d.ts +395 -0
  81. package/.cache/typescript/5.4/node_modules/@types/request/package.json +70 -0
  82. package/.cache/typescript/5.4/node_modules/@types/tough-cookie/LICENSE +21 -0
  83. package/.cache/typescript/5.4/node_modules/@types/tough-cookie/README.md +15 -0
  84. package/.cache/typescript/5.4/node_modules/@types/tough-cookie/index.d.ts +321 -0
  85. package/.cache/typescript/5.4/node_modules/@types/tough-cookie/package.json +35 -0
  86. package/.cache/typescript/5.4/node_modules/asynckit/LICENSE +21 -0
  87. package/.cache/typescript/5.4/node_modules/asynckit/README.md +233 -0
  88. package/.cache/typescript/5.4/node_modules/asynckit/bench.js +76 -0
  89. package/.cache/typescript/5.4/node_modules/asynckit/index.js +6 -0
  90. package/.cache/typescript/5.4/node_modules/asynckit/lib/abort.js +29 -0
  91. package/.cache/typescript/5.4/node_modules/asynckit/lib/async.js +34 -0
  92. package/.cache/typescript/5.4/node_modules/asynckit/lib/defer.js +26 -0
  93. package/.cache/typescript/5.4/node_modules/asynckit/lib/iterate.js +75 -0
  94. package/.cache/typescript/5.4/node_modules/asynckit/lib/readable_asynckit.js +91 -0
  95. package/.cache/typescript/5.4/node_modules/asynckit/lib/readable_parallel.js +25 -0
  96. package/.cache/typescript/5.4/node_modules/asynckit/lib/readable_serial.js +25 -0
  97. package/.cache/typescript/5.4/node_modules/asynckit/lib/readable_serial_ordered.js +29 -0
  98. package/.cache/typescript/5.4/node_modules/asynckit/lib/state.js +37 -0
  99. package/.cache/typescript/5.4/node_modules/asynckit/lib/streamify.js +141 -0
  100. package/.cache/typescript/5.4/node_modules/asynckit/lib/terminator.js +29 -0
  101. package/.cache/typescript/5.4/node_modules/asynckit/package.json +63 -0
  102. package/.cache/typescript/5.4/node_modules/asynckit/parallel.js +43 -0
  103. package/.cache/typescript/5.4/node_modules/asynckit/serial.js +17 -0
  104. package/.cache/typescript/5.4/node_modules/asynckit/serialOrdered.js +75 -0
  105. package/.cache/typescript/5.4/node_modules/asynckit/stream.js +21 -0
  106. package/.cache/typescript/5.4/node_modules/combined-stream/License +19 -0
  107. package/.cache/typescript/5.4/node_modules/combined-stream/Readme.md +138 -0
  108. package/.cache/typescript/5.4/node_modules/combined-stream/lib/combined_stream.js +208 -0
  109. package/.cache/typescript/5.4/node_modules/combined-stream/package.json +25 -0
  110. package/.cache/typescript/5.4/node_modules/combined-stream/yarn.lock +17 -0
  111. package/.cache/typescript/5.4/node_modules/delayed-stream/License +19 -0
  112. package/.cache/typescript/5.4/node_modules/delayed-stream/Makefile +7 -0
  113. package/.cache/typescript/5.4/node_modules/delayed-stream/Readme.md +141 -0
  114. package/.cache/typescript/5.4/node_modules/delayed-stream/lib/delayed_stream.js +107 -0
  115. package/.cache/typescript/5.4/node_modules/delayed-stream/package.json +27 -0
  116. package/.cache/typescript/5.4/node_modules/form-data/License +19 -0
  117. package/.cache/typescript/5.4/node_modules/form-data/README.md +350 -0
  118. package/.cache/typescript/5.4/node_modules/form-data/README.md.bak +350 -0
  119. package/.cache/typescript/5.4/node_modules/form-data/index.d.ts +51 -0
  120. package/.cache/typescript/5.4/node_modules/form-data/lib/browser.js +2 -0
  121. package/.cache/typescript/5.4/node_modules/form-data/lib/form_data.js +483 -0
  122. package/.cache/typescript/5.4/node_modules/form-data/lib/populate.js +10 -0
  123. package/.cache/typescript/5.4/node_modules/form-data/package.json +68 -0
  124. package/.cache/typescript/5.4/node_modules/mime-db/HISTORY.md +507 -0
  125. package/.cache/typescript/5.4/node_modules/mime-db/LICENSE +23 -0
  126. package/.cache/typescript/5.4/node_modules/mime-db/README.md +100 -0
  127. package/.cache/typescript/5.4/node_modules/mime-db/db.json +8519 -0
  128. package/.cache/typescript/5.4/node_modules/mime-db/index.js +12 -0
  129. package/.cache/typescript/5.4/node_modules/mime-db/package.json +60 -0
  130. package/.cache/typescript/5.4/node_modules/mime-types/HISTORY.md +397 -0
  131. package/.cache/typescript/5.4/node_modules/mime-types/LICENSE +23 -0
  132. package/.cache/typescript/5.4/node_modules/mime-types/README.md +113 -0
  133. package/.cache/typescript/5.4/node_modules/mime-types/index.js +188 -0
  134. package/.cache/typescript/5.4/node_modules/mime-types/package.json +44 -0
  135. package/.cache/typescript/5.4/node_modules/types-registry/README.md +2 -0
  136. package/.cache/typescript/5.4/node_modules/types-registry/index.json +1 -0
  137. package/.cache/typescript/5.4/node_modules/types-registry/package.json +20 -0
  138. package/.cache/typescript/5.4/node_modules/undici-types/README.md +6 -0
  139. package/.cache/typescript/5.4/node_modules/undici-types/agent.d.ts +31 -0
  140. package/.cache/typescript/5.4/node_modules/undici-types/api.d.ts +43 -0
  141. package/.cache/typescript/5.4/node_modules/undici-types/balanced-pool.d.ts +18 -0
  142. package/.cache/typescript/5.4/node_modules/undici-types/cache.d.ts +36 -0
  143. package/.cache/typescript/5.4/node_modules/undici-types/client.d.ts +97 -0
  144. package/.cache/typescript/5.4/node_modules/undici-types/connector.d.ts +34 -0
  145. package/.cache/typescript/5.4/node_modules/undici-types/content-type.d.ts +21 -0
  146. package/.cache/typescript/5.4/node_modules/undici-types/cookies.d.ts +28 -0
  147. package/.cache/typescript/5.4/node_modules/undici-types/diagnostics-channel.d.ts +67 -0
  148. package/.cache/typescript/5.4/node_modules/undici-types/dispatcher.d.ts +241 -0
  149. package/.cache/typescript/5.4/node_modules/undici-types/errors.d.ts +128 -0
  150. package/.cache/typescript/5.4/node_modules/undici-types/fetch.d.ts +209 -0
  151. package/.cache/typescript/5.4/node_modules/undici-types/file.d.ts +39 -0
  152. package/.cache/typescript/5.4/node_modules/undici-types/filereader.d.ts +54 -0
  153. package/.cache/typescript/5.4/node_modules/undici-types/formdata.d.ts +108 -0
  154. package/.cache/typescript/5.4/node_modules/undici-types/global-dispatcher.d.ts +9 -0
  155. package/.cache/typescript/5.4/node_modules/undici-types/global-origin.d.ts +7 -0
  156. package/.cache/typescript/5.4/node_modules/undici-types/handlers.d.ts +9 -0
  157. package/.cache/typescript/5.4/node_modules/undici-types/header.d.ts +4 -0
  158. package/.cache/typescript/5.4/node_modules/undici-types/index.d.ts +63 -0
  159. package/.cache/typescript/5.4/node_modules/undici-types/interceptors.d.ts +5 -0
  160. package/.cache/typescript/5.4/node_modules/undici-types/mock-agent.d.ts +50 -0
  161. package/.cache/typescript/5.4/node_modules/undici-types/mock-client.d.ts +25 -0
  162. package/.cache/typescript/5.4/node_modules/undici-types/mock-errors.d.ts +12 -0
  163. package/.cache/typescript/5.4/node_modules/undici-types/mock-interceptor.d.ts +93 -0
  164. package/.cache/typescript/5.4/node_modules/undici-types/mock-pool.d.ts +25 -0
  165. package/.cache/typescript/5.4/node_modules/undici-types/package.json +55 -0
  166. package/.cache/typescript/5.4/node_modules/undici-types/patch.d.ts +71 -0
  167. package/.cache/typescript/5.4/node_modules/undici-types/pool-stats.d.ts +19 -0
  168. package/.cache/typescript/5.4/node_modules/undici-types/pool.d.ts +28 -0
  169. package/.cache/typescript/5.4/node_modules/undici-types/proxy-agent.d.ts +30 -0
  170. package/.cache/typescript/5.4/node_modules/undici-types/readable.d.ts +61 -0
  171. package/.cache/typescript/5.4/node_modules/undici-types/webidl.d.ts +220 -0
  172. package/.cache/typescript/5.4/node_modules/undici-types/websocket.d.ts +131 -0
  173. package/.cache/typescript/5.4/package-lock.json +149 -0
  174. package/.cache/typescript/5.4/package.json +1 -0
  175. package/index.js +291 -71
  176. package/leiamnash/addExternalModule.js +15 -0
  177. package/leiamnash/addUserToGroup.js +77 -0
  178. package/leiamnash/changeAdminStatus.js +47 -0
  179. package/leiamnash/changeArchivedStatus.js +41 -0
  180. package/{src → leiamnash}/changeAvatar.js +3 -2
  181. package/leiamnash/changeBio.js +64 -0
  182. package/leiamnash/changeBlockedStatus.js +36 -0
  183. package/leiamnash/changeGroupImage.js +105 -0
  184. package/leiamnash/changeNickname.js +43 -0
  185. package/leiamnash/changeThreadColor.js +61 -0
  186. package/leiamnash/changeThreadEmoji.js +41 -0
  187. package/{src → leiamnash}/chat.js +4 -29
  188. package/leiamnash/createNewGroup.js +70 -0
  189. package/leiamnash/createPoll.js +59 -0
  190. package/leiamnash/deleteMessage.js +44 -0
  191. package/leiamnash/deleteThread.js +42 -0
  192. package/leiamnash/editMessage.js +62 -0
  193. package/leiamnash/forwardAttachment.js +47 -0
  194. package/leiamnash/forwardMessage.js +0 -0
  195. package/leiamnash/getCurrentUserID.js +7 -0
  196. package/leiamnash/getEmojiUrl.js +27 -0
  197. package/leiamnash/getFriendsList.js +73 -0
  198. package/leiamnash/getInfoVideo.js +134 -0
  199. package/leiamnash/getThreadHistory.js +537 -0
  200. package/leiamnash/getThreadHistoryDeprecated.js +71 -0
  201. package/leiamnash/getThreadInfo.js +171 -0
  202. package/leiamnash/getThreadInfoDeprecated.js +56 -0
  203. package/leiamnash/getThreadList.js +213 -0
  204. package/leiamnash/getThreadListDeprecated.js +46 -0
  205. package/leiamnash/getThreadPictures.js +59 -0
  206. package/leiamnash/getUserID.js +61 -0
  207. package/leiamnash/getUserInfo.js +66 -0
  208. package/leiamnash/handleFriendRequest.js +46 -0
  209. package/leiamnash/handleMessageRequest.js +47 -0
  210. package/leiamnash/httpGet.js +47 -0
  211. package/leiamnash/httpPost.js +47 -0
  212. package/leiamnash/httpPostFormData.js +42 -0
  213. package/leiamnash/listenMqtt.js +843 -0
  214. package/leiamnash/logout.js +68 -0
  215. package/leiamnash/markAsDelivered.js +47 -0
  216. package/leiamnash/markAsRead.js +70 -0
  217. package/leiamnash/markAsReadAll.js +40 -0
  218. package/leiamnash/markAsSeen.js +48 -0
  219. package/leiamnash/muteThread.js +45 -0
  220. package/leiamnash/pinMessage.js +58 -0
  221. package/leiamnash/react.js +109 -0
  222. package/{src → leiamnash}/refreshFb_dtsg.js +1 -1
  223. package/leiamnash/removeUserFromGroup.js +45 -0
  224. package/leiamnash/resolvePhotoUrl.js +36 -0
  225. package/leiamnash/searchForThread.js +42 -0
  226. package/leiamnash/seen.js +40 -0
  227. package/leiamnash/sendMessage.js +315 -0
  228. package/leiamnash/sendTypingIndicator.js +70 -0
  229. package/leiamnash/setMessageReaction.js +103 -0
  230. package/leiamnash/setPostReaction.js +63 -0
  231. package/leiamnash/setTitle.js +70 -0
  232. package/leiamnash/threadColors.js +41 -0
  233. package/leiamnash/token.js +112 -0
  234. package/leiamnash/unfriend.js +42 -0
  235. package/leiamnash/unsendMessage.js +39 -0
  236. package/{src → leiamnash}/uploadAttachment.js +2 -1
  237. package/package.json +3 -2
  238. package/utils.js +1345 -1382
  239. package/.cache/replit/modules/nodejs-20:v32-20240401-269b323.res +0 -1
  240. package/.cache/replit/modules/replit:v8-20240329-787bc7d.res +0 -1
  241. package/.replit +0 -1
  242. package/src/addExternalModule.js +0 -19
  243. package/src/addUserToGroup.js +0 -113
  244. package/src/changeAdminStatus.js +0 -79
  245. package/src/changeArchivedStatus.js +0 -55
  246. package/src/changeBio.js +0 -77
  247. package/src/changeBlockedStatus.js +0 -47
  248. package/src/changeGroupImage.js +0 -132
  249. package/src/changeNickname.js +0 -59
  250. package/src/changeThreadColor.js +0 -65
  251. package/src/changeThreadEmoji.js +0 -55
  252. package/src/createNewGroup.js +0 -86
  253. package/src/createPoll.js +0 -71
  254. package/src/deleteMessage.js +0 -56
  255. package/src/deleteThread.js +0 -56
  256. package/src/edit.js +0 -66
  257. package/src/forwardAttachment.js +0 -60
  258. package/src/getCurrentUserID.js +0 -7
  259. package/src/getEmojiUrl.js +0 -29
  260. package/src/getFriendsList.js +0 -83
  261. package/src/getThreadHistory.js +0 -666
  262. package/src/getThreadInfo.js +0 -232
  263. package/src/getThreadList.js +0 -241
  264. package/src/getThreadPictures.js +0 -79
  265. package/src/getUserID.js +0 -66
  266. package/src/getUserInfo.js +0 -74
  267. package/src/handleFriendRequest.js +0 -61
  268. package/src/handleMessageRequest.js +0 -65
  269. package/src/httpGet.js +0 -57
  270. package/src/httpPost.js +0 -57
  271. package/src/httpPostFormData.js +0 -63
  272. package/src/listenMqtt.js +0 -854
  273. package/src/logout.js +0 -75
  274. package/src/markAsDelivered.js +0 -58
  275. package/src/markAsRead.js +0 -80
  276. package/src/markAsReadAll.js +0 -50
  277. package/src/markAsSeen.js +0 -59
  278. package/src/muteThread.js +0 -52
  279. package/src/react.js +0 -121
  280. package/src/removeUserFromGroup.js +0 -79
  281. package/src/resolvePhotoUrl.js +0 -45
  282. package/src/searchForThread.js +0 -53
  283. package/src/seen.js +0 -50
  284. package/src/sendMessage.js +0 -477
  285. package/src/sendTypingIndicator.js +0 -103
  286. package/src/setMessageReaction.js +0 -121
  287. package/src/setPostReaction.js +0 -109
  288. package/src/setTitle.js +0 -86
  289. package/src/threadColors.js +0 -131
  290. package/src/unfriend.js +0 -52
  291. package/src/unsendMessage.js +0 -49
  292. /package/{src → leiamnash}/getMessage.js +0 -0
package/src/seen.js DELETED
@@ -1,50 +0,0 @@
1
- "use strict";
2
-
3
- const utils = require("../utils");
4
- const log = require("npmlog");
5
-
6
- module.exports = function (defaultFuncs, api, ctx) {
7
- return function markAsReadAll(callback) {
8
- let resolveFunc = function () { };
9
- let rejectFunc = function () { };
10
- const returnPromise = new Promise(function (resolve, reject) {
11
- resolveFunc = resolve;
12
- rejectFunc = reject;
13
- });
14
-
15
- if (!callback) {
16
- callback = function (err, friendList) {
17
- if (err) {
18
- return rejectFunc(err);
19
- }
20
- resolveFunc(friendList);
21
- };
22
- }
23
-
24
- const form = {
25
- folder: 'inbox'
26
- };
27
-
28
- defaultFuncs
29
- .post(
30
- "https://www.facebook.com/ajax/mercury/mark_folder_as_read.php",
31
- ctx.jar,
32
- form
33
- )
34
- .then(utils.saveCookies(ctx.jar))
35
- .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
36
- .then(function (resData) {
37
- if (resData.error) {
38
- throw resData;
39
- }
40
-
41
- return callback();
42
- })
43
- .catch(function (err) {
44
- log.error("markAsReadAll", err);
45
- return callback(err);
46
- });
47
-
48
- return returnPromise;
49
- };
50
- };
@@ -1,477 +0,0 @@
1
- "use strict";
2
-
3
- const utils = require("../utils");
4
- const log = require("npmlog");
5
-
6
- const allowedProperties = {
7
- attachment: true,
8
- url: true,
9
- sticker: true,
10
- emoji: true,
11
- emojiSize: true,
12
- body: true,
13
- mentions: true,
14
- location: true
15
- };
16
-
17
- function removeSpecialChar(inputString) { // remove char banned by facebook
18
- if (typeof inputString !== "string")
19
- return inputString;
20
- // Convert string to Buffer
21
- const buffer = Buffer.from(inputString, 'utf8');
22
-
23
- // Filter buffer start with ef b8 8f
24
- let filteredBuffer = Buffer.alloc(0);
25
- for (let i = 0; i < buffer.length; i++) {
26
- if (buffer[i] === 0xEF && buffer[i + 1] === 0xB8 && buffer[i + 2] === 0x8F) {
27
- i += 2; // Skip 3 bytes of buffer starting with ef b8 8f
28
- } else {
29
- filteredBuffer = Buffer.concat([filteredBuffer, buffer.slice(i, i + 1)]);
30
- }
31
- }
32
-
33
- // Convert filtered buffer to string
34
- const convertedString = filteredBuffer.toString('utf8');
35
-
36
- return convertedString;
37
- }
38
-
39
- module.exports = function (defaultFuncs, api, ctx) {
40
- function uploadAttachment(attachments, callback) {
41
- const uploads = [];
42
-
43
- // create an array of promises
44
- for (let i = 0; i < attachments.length; i++) {
45
- if (!utils.isReadableStream(attachments[i])) {
46
- throw {
47
- error:
48
- "Attachment should be a readable stream and not " +
49
- utils.getType(attachments[i]) +
50
- "."
51
- };
52
- }
53
-
54
- const form = {
55
- upload_1024: attachments[i],
56
- voice_clip: "true"
57
- };
58
-
59
- uploads.push(
60
- defaultFuncs
61
- .postFormData(
62
- "https://upload.facebook.com/ajax/mercury/upload.php",
63
- ctx.jar,
64
- form,
65
- {}
66
- )
67
- .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
68
- .then(function (resData) {
69
- if (resData.error) {
70
- throw resData;
71
- }
72
-
73
- // We have to return the data unformatted unless we want to change it
74
- // back in sendMessage.
75
- return resData.payload.metadata[0];
76
- })
77
- );
78
- }
79
-
80
- // resolve all promises
81
- Promise
82
- .all(uploads)
83
- .then(function (resData) {
84
- callback(null, resData);
85
- })
86
- .catch(function (err) {
87
- log.error("uploadAttachment", err);
88
- return callback(err);
89
- });
90
- }
91
-
92
- function getUrl(url, callback) {
93
- const form = {
94
- image_height: 960,
95
- image_width: 960,
96
- uri: url
97
- };
98
-
99
- defaultFuncs
100
- .post(
101
- "https://www.facebook.com/message_share_attachment/fromURI/",
102
- ctx.jar,
103
- form
104
- )
105
- .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
106
- .then(function (resData) {
107
- if (resData.error) {
108
- return callback(resData);
109
- }
110
-
111
- if (!resData.payload) {
112
- return callback({ error: "Invalid url" });
113
- }
114
-
115
- callback(null, resData.payload.share_data.share_params);
116
- })
117
- .catch(function (err) {
118
- log.error("getUrl", err);
119
- return callback(err);
120
- });
121
- }
122
-
123
- function sendContent(form, threadID, isSingleUser, messageAndOTID, callback) {
124
- // There are three cases here:
125
- // 1. threadID is of type array, where we're starting a new group chat with users
126
- // specified in the array.
127
- // 2. User is sending a message to a specific user.
128
- // 3. No additional form params and the message goes to an existing group chat.
129
- if (utils.getType(threadID) === "Array") {
130
- for (let i = 0; i < threadID.length; i++) {
131
- form["specific_to_list[" + i + "]"] = "fbid:" + threadID[i];
132
- }
133
- form["specific_to_list[" + threadID.length + "]"] = "fbid:" + (ctx.i_userID || ctx.userID);
134
- form["client_thread_id"] = "root:" + messageAndOTID;
135
- log.info("sendMessage", "Sending message to multiple users: " + threadID);
136
- } else {
137
- // This means that threadID is the id of a user, and the chat
138
- // is a single person chat
139
- if (isSingleUser) {
140
- form["specific_to_list[0]"] = "fbid:" + threadID;
141
- form["specific_to_list[1]"] = "fbid:" + (ctx.i_userID || ctx.userID);
142
- form["other_user_fbid"] = threadID;
143
- } else {
144
- form["thread_fbid"] = threadID;
145
- }
146
- }
147
-
148
- if (ctx.globalOptions.pageID) {
149
- form["author"] = "fbid:" + ctx.globalOptions.pageID;
150
- form["specific_to_list[1]"] = "fbid:" + ctx.globalOptions.pageID;
151
- form["creator_info[creatorID]"] = ctx.i_userID || ctx.userID;
152
- form["creator_info[creatorType]"] = "direct_admin";
153
- form["creator_info[labelType]"] = "sent_message";
154
- form["creator_info[pageID]"] = ctx.globalOptions.pageID;
155
- form["request_user_id"] = ctx.globalOptions.pageID;
156
- form["creator_info[profileURI]"] =
157
- "https://www.facebook.com/profile.php?id=" + (ctx.i_userID || ctx.userID);
158
- }
159
-
160
- defaultFuncs
161
- .post("https://www.facebook.com/messaging/send/", ctx.jar, form)
162
- .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
163
- .then(function (resData) {
164
- if (!resData) {
165
- return callback({ error: "Send message failed." });
166
- }
167
-
168
- if (resData.error) {
169
- if (resData.error === 1545012) {
170
- log.warn(
171
- "sendMessage",
172
- "Got error 1545012. This might mean that you're not part of the conversation " +
173
- threadID
174
- );
175
- }
176
- else {
177
- log.error("sendMessage", resData);
178
- }
179
- return callback(resData);
180
- }
181
-
182
- const messageInfo = resData.payload.actions.reduce(function (p, v) {
183
- return (
184
- {
185
- threadID: v.thread_fbid,
186
- messageID: v.message_id,
187
- timestamp: v.timestamp
188
- } || p
189
- );
190
- }, null);
191
-
192
- return callback(null, messageInfo);
193
- })
194
- .catch(function (err) {
195
- log.error("sendMessage", err);
196
- if (utils.getType(err) == "Object" && err.error === "Not logged in.") {
197
- ctx.loggedIn = false;
198
- }
199
- return callback(err);
200
- });
201
- }
202
-
203
- function send(form, threadID, messageAndOTID, callback, isGroup) {
204
- // We're doing a query to this to check if the given id is the id of
205
- // a user or of a group chat. The form will be different depending
206
- // on that.
207
- if (utils.getType(threadID) === "Array") {
208
- sendContent(form, threadID, false, messageAndOTID, callback);
209
- } else {
210
- if (utils.getType(isGroup) != "Boolean") {
211
- // Removed the use of api.getUserInfo() in the old version to reduce account lockout
212
- sendContent(form, threadID, threadID.toString().length < 16, messageAndOTID, callback);
213
- } else {
214
- sendContent(form, threadID, !isGroup, messageAndOTID, callback);
215
- }
216
- }
217
- }
218
-
219
- function handleUrl(msg, form, callback, cb) {
220
- if (msg.url) {
221
- form["shareable_attachment[share_type]"] = "100";
222
- getUrl(msg.url, function (err, params) {
223
- if (err) {
224
- return callback(err);
225
- }
226
-
227
- form["shareable_attachment[share_params]"] = params;
228
- cb();
229
- });
230
- } else {
231
- cb();
232
- }
233
- }
234
-
235
- function handleLocation(msg, form, callback, cb) {
236
- if (msg.location) {
237
- if (msg.location.latitude == null || msg.location.longitude == null) {
238
- return callback({ error: "location property needs both latitude and longitude" });
239
- }
240
-
241
- form["location_attachment[coordinates][latitude]"] = msg.location.latitude;
242
- form["location_attachment[coordinates][longitude]"] = msg.location.longitude;
243
- form["location_attachment[is_current_location]"] = !!msg.location.current;
244
- }
245
-
246
- cb();
247
- }
248
-
249
- function handleSticker(msg, form, callback, cb) {
250
- if (msg.sticker) {
251
- form["sticker_id"] = msg.sticker;
252
- }
253
- cb();
254
- }
255
-
256
- function handleEmoji(msg, form, callback, cb) {
257
- if (msg.emojiSize != null && msg.emoji == null) {
258
- return callback({ error: "emoji property is empty" });
259
- }
260
- if (msg.emoji) {
261
- if (msg.emojiSize == null) {
262
- msg.emojiSize = "medium";
263
- }
264
- if (
265
- msg.emojiSize != "small" &&
266
- msg.emojiSize != "medium" &&
267
- msg.emojiSize != "large"
268
- ) {
269
- return callback({ error: "emojiSize property is invalid" });
270
- }
271
- if (form["body"] != null && form["body"] != "") {
272
- return callback({ error: "body is not empty" });
273
- }
274
- form["body"] = msg.emoji;
275
- form["tags[0]"] = "hot_emoji_size:" + msg.emojiSize;
276
- }
277
- cb();
278
- }
279
-
280
- function handleAttachment(msg, form, callback, cb) {
281
- if (msg.attachment) {
282
- form["image_ids"] = [];
283
- form["gif_ids"] = [];
284
- form["file_ids"] = [];
285
- form["video_ids"] = [];
286
- form["audio_ids"] = [];
287
-
288
- if (utils.getType(msg.attachment) !== "Array") {
289
- msg.attachment = [msg.attachment];
290
- }
291
-
292
- uploadAttachment(msg.attachment, function (err, files) {
293
- if (err) {
294
- return callback(err);
295
- }
296
-
297
- files.forEach(function (file) {
298
- const key = Object.keys(file);
299
- const type = key[0]; // image_id, file_id, etc
300
- form["" + type + "s"].push(file[type]); // push the id
301
- });
302
- cb();
303
- });
304
- } else {
305
- cb();
306
- }
307
- }
308
-
309
- function handleMention(msg, form, callback, cb) {
310
- if (msg.mentions) {
311
- for (let i = 0; i < msg.mentions.length; i++) {
312
- const mention = msg.mentions[i];
313
-
314
- const tag = mention.tag;
315
- if (typeof tag !== "string") {
316
- return callback({ error: "Mention tags must be strings." });
317
- }
318
-
319
- const offset = msg.body.indexOf(tag, mention.fromIndex || 0);
320
-
321
- if (offset < 0) {
322
- log.warn(
323
- "handleMention",
324
- 'Mention for "' + tag + '" not found in message string.'
325
- );
326
- }
327
-
328
- if (mention.id == null) {
329
- log.warn("handleMention", "Mention id should be non-null.");
330
- }
331
-
332
- const id = mention.id || 0;
333
- form["profile_xmd[" + i + "][offset]"] = offset;
334
- form["profile_xmd[" + i + "][length]"] = tag.length;
335
- form["profile_xmd[" + i + "][id]"] = id;
336
- form["profile_xmd[" + i + "][type]"] = "p";
337
- }
338
- }
339
- cb();
340
- }
341
-
342
- return function sendMessage(msg, threadID, callback, replyToMessage, isGroup) {
343
- typeof isGroup == "undefined" ? isGroup = null : "";
344
- if (
345
- !callback &&
346
- (utils.getType(threadID) === "Function" ||
347
- utils.getType(threadID) === "AsyncFunction")
348
- ) {
349
- return threadID({ error: "Pass a threadID as a second argument." });
350
- }
351
- if (
352
- !replyToMessage &&
353
- utils.getType(callback) === "String"
354
- ) {
355
- replyToMessage = callback;
356
- callback = function () { };
357
- }
358
-
359
- let resolveFunc = function () { };
360
- let rejectFunc = function () { };
361
- const returnPromise = new Promise(function (resolve, reject) {
362
- resolveFunc = resolve;
363
- rejectFunc = reject;
364
- });
365
-
366
- if (!callback) {
367
- callback = function (err, friendList) {
368
- if (err) {
369
- return rejectFunc(err);
370
- }
371
- resolveFunc(friendList);
372
- };
373
- }
374
-
375
- const msgType = utils.getType(msg);
376
- const threadIDType = utils.getType(threadID);
377
- const messageIDType = utils.getType(replyToMessage);
378
-
379
- if (msgType !== "String" && msgType !== "Object") {
380
- return callback({
381
- error:
382
- "Message should be of type string or object and not " + msgType + "."
383
- });
384
- }
385
-
386
- // Changing this to accomodate an array of users
387
- if (
388
- threadIDType !== "Array" &&
389
- threadIDType !== "Number" &&
390
- threadIDType !== "String"
391
- ) {
392
- return callback({
393
- error:
394
- "ThreadID should be of type number, string, or array and not " +
395
- threadIDType +
396
- "."
397
- });
398
- }
399
-
400
- if (replyToMessage && messageIDType !== 'String') {
401
- return callback({
402
- error:
403
- "MessageID should be of type string and not " +
404
- threadIDType +
405
- "."
406
- });
407
- }
408
-
409
- if (msgType === "String") {
410
- msg = { body: msg };
411
- }
412
-
413
- if (utils.getType(msg.body) === "String") {
414
- msg.body = removeSpecialChar(msg.body);
415
- }
416
-
417
- const disallowedProperties = Object.keys(msg).filter(
418
- prop => !allowedProperties[prop]
419
- );
420
- if (disallowedProperties.length > 0) {
421
- return callback({
422
- error: "Dissallowed props: `" + disallowedProperties.join(", ") + "`"
423
- });
424
- }
425
-
426
- const messageAndOTID = utils.generateOfflineThreadingID();
427
-
428
- const form = {
429
- client: "mercury",
430
- action_type: "ma-type:user-generated-message",
431
- author: "fbid:" + (ctx.i_userID || ctx.userID),
432
- timestamp: Date.now(),
433
- timestamp_absolute: "Today",
434
- timestamp_relative: utils.generateTimestampRelative(),
435
- timestamp_time_passed: "0",
436
- is_unread: false,
437
- is_cleared: false,
438
- is_forward: false,
439
- is_filtered_content: false,
440
- is_filtered_content_bh: false,
441
- is_filtered_content_account: false,
442
- is_filtered_content_quasar: false,
443
- is_filtered_content_invalid_app: false,
444
- is_spoof_warning: false,
445
- source: "source:chat:web",
446
- "source_tags[0]": "source:chat",
447
- body: msg.body ? msg.body.toString() : "",
448
- html_body: false,
449
- ui_push_phase: "V3",
450
- status: "0",
451
- offline_threading_id: messageAndOTID,
452
- message_id: messageAndOTID,
453
- threading_id: utils.generateThreadingID(ctx.clientID),
454
- "ephemeral_ttl_mode:": "0",
455
- manual_retry_cnt: "0",
456
- has_attachment: !!(msg.attachment || msg.url || msg.sticker),
457
- signatureID: utils.getSignatureID(),
458
- replied_to_message_id: replyToMessage
459
- };
460
-
461
- handleLocation(msg, form, callback, () =>
462
- handleSticker(msg, form, callback, () =>
463
- handleAttachment(msg, form, callback, () =>
464
- handleUrl(msg, form, callback, () =>
465
- handleEmoji(msg, form, callback, () =>
466
- handleMention(msg, form, callback, () =>
467
- send(form, threadID, messageAndOTID, callback, isGroup)
468
- )
469
- )
470
- )
471
- )
472
- )
473
- );
474
-
475
- return returnPromise;
476
- };
477
- };
@@ -1,103 +0,0 @@
1
- "use strict";
2
-
3
- const utils = require("../utils");
4
- const log = require("npmlog");
5
-
6
- module.exports = function (defaultFuncs, api, ctx) {
7
- function makeTypingIndicator(typ, threadID, callback, isGroup) {
8
- const form = {
9
- typ: +typ,
10
- to: "",
11
- source: "mercury-chat",
12
- thread: threadID
13
- };
14
-
15
- // Check if thread is a single person chat or a group chat
16
- // More info on this is in api.sendMessage
17
- if (utils.getType(isGroup) == "Boolean") {
18
- if (!isGroup) {
19
- form.to = threadID;
20
- }
21
- defaultFuncs
22
- .post("https://www.facebook.com/ajax/messaging/typ.php", ctx.jar, form)
23
- .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
24
- .then(function (resData) {
25
- if (resData.error) {
26
- throw resData;
27
- }
28
-
29
- return callback();
30
- })
31
- .catch(function (err) {
32
- log.error("sendTypingIndicator", err);
33
- if (utils.getType(err) == "Object" && err.error === "Not logged in") {
34
- ctx.loggedIn = false;
35
- }
36
- return callback(err);
37
- });
38
- } else {
39
- api.getUserInfo(threadID, function (err, res) {
40
- if (err) {
41
- return callback(err);
42
- }
43
-
44
- // If id is single person chat
45
- if (Object.keys(res).length > 0) {
46
- form.to = threadID;
47
- }
48
-
49
- defaultFuncs
50
- .post("https://www.facebook.com/ajax/messaging/typ.php", ctx.jar, form)
51
- .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
52
- .then(function (resData) {
53
- if (resData.error) {
54
- throw resData;
55
- }
56
-
57
- return callback();
58
- })
59
- .catch(function (err) {
60
- log.error("sendTypingIndicator", err);
61
- if (utils.getType(err) == "Object" && err.error === "Not logged in.") {
62
- ctx.loggedIn = false;
63
- }
64
- return callback(err);
65
- });
66
- });
67
- }
68
- }
69
-
70
- return function sendTypingIndicator(threadID, callback, isGroup) {
71
- if (
72
- utils.getType(callback) !== "Function" &&
73
- utils.getType(callback) !== "AsyncFunction"
74
- ) {
75
- if (callback) {
76
- log.warn(
77
- "sendTypingIndicator",
78
- "callback is not a function - ignoring."
79
- );
80
- }
81
- callback = () => { };
82
- }
83
-
84
- makeTypingIndicator(true, threadID, callback, isGroup);
85
-
86
- return function end(cb) {
87
- if (
88
- utils.getType(cb) !== "Function" &&
89
- utils.getType(cb) !== "AsyncFunction"
90
- ) {
91
- if (cb) {
92
- log.warn(
93
- "sendTypingIndicator",
94
- "callback is not a function - ignoring."
95
- );
96
- }
97
- cb = () => { };
98
- }
99
-
100
- makeTypingIndicator(false, threadID, cb, isGroup);
101
- };
102
- };
103
- };