@eryxenx/insta-chat 2.0.1 → 2.0.4

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 (51) hide show
  1. package/CHANGELOG.md +112 -8
  2. package/index.js +105 -1
  3. package/module/login.js +51 -1
  4. package/package.json +9 -2
  5. package/src/api/action/getAppState.js +19 -1
  6. package/src/api/action/getCookies.js +7 -1
  7. package/src/api/action/getCurrentUserID.js +7 -1
  8. package/src/api/action/setOptions.js +8 -1
  9. package/src/api/messaging/editMessage.js +19 -1
  10. package/src/api/messaging/markAsRead.js +7 -1
  11. package/src/api/messaging/resolvePhotoUrl.js +8 -1
  12. package/src/api/messaging/sendMessage.js +45 -1
  13. package/src/api/messaging/sendMessageSync.js +8 -1
  14. package/src/api/messaging/sendTypingIndicator.js +7 -1
  15. package/src/api/messaging/setMessageReaction.js +19 -1
  16. package/src/api/messaging/shareContact.js +19 -1
  17. package/src/api/messaging/unsendMessage.js +16 -1
  18. package/src/api/realtime/getInbox.js +7 -1
  19. package/src/api/realtime/listen.js +7 -1
  20. package/src/api/realtime/stopListening.js +7 -1
  21. package/src/api/threads/getThreadHistory.js +16 -1
  22. package/src/api/threads/getThreadInfo.js +59 -1
  23. package/src/api/threads/getThreadList.js +22 -1
  24. package/src/api/users/getUID.js +12 -1
  25. package/src/api/users/getUserInfo.js +37 -1
  26. package/src/api.js +253 -1
  27. package/src/app/InstaClient.js +352 -1
  28. package/src/app/InstaContext.js +46 -1
  29. package/src/app/createFcaClient.js +59 -1
  30. package/src/app/loadApiMethods.js +30 -1
  31. package/src/constants.js +53 -1
  32. package/src/cookies.js +41 -1
  33. package/src/deviceIdentity.js +31 -1
  34. package/src/events/normalizeEvent.js +142 -1
  35. package/src/http.js +381 -1
  36. package/src/messageContent.js +73 -1
  37. package/src/methods/inbox.js +464 -1
  38. package/src/methods/media.js +224 -1
  39. package/src/methods/message.js +115 -1
  40. package/src/methods/reactions.js +52 -1
  41. package/src/methods/thread.js +96 -1
  42. package/src/methods/typing.js +35 -1
  43. package/src/methods/user.js +33 -1
  44. package/src/session.js +94 -1
  45. package/src/threadDetail.js +36 -1
  46. package/src/utils/antiSuspension.js +284 -0
  47. package/src/utils/dataDir.js +11 -0
  48. package/src/utils/errors.js +106 -0
  49. package/src/utils/format.js +38 -1
  50. package/src/utils/messageStyle.js +57 -1
  51. package/src/utils/sessionGuard.js +93 -0
@@ -4,4 +4,33 @@
4
4
  * Licensed under the Apache License, Version 2.0. See LICENSE and NOTICE.
5
5
  * Original author credit must be retained in all copies and derivatives.
6
6
  */
7
- const _0xdae0ee=_0x2702,_0x5ed780=_0x2702;(function(_0x201ccf,_0x7fdd28){const _0x594ae2=_0x2702,_0x54bee4=_0x2702,_0x4d920b=_0x201ccf();while(!![]){try{const _0x467a29=-parseInt(_0x594ae2(0x18f,'#tW)'))/0x1+parseInt(_0x54bee4(0x19f,'fLF^'))/0x2*(parseInt(_0x594ae2(0x1ae,'K556'))/0x3)+parseInt(_0x594ae2(0x1a2,'j3m7'))/0x4*(parseInt(_0x594ae2(0x191,'#tW)'))/0x5)+-parseInt(_0x594ae2(0x189,'69G3'))/0x6*(parseInt(_0x594ae2(0x1a9,'69G3'))/0x7)+-parseInt(_0x594ae2(0x1b6,'JaCQ'))/0x8+-parseInt(_0x594ae2(0x1b5,')mo5'))/0x9+parseInt(_0x594ae2(0x19a,'yk0b'))/0xa;if(_0x467a29===_0x7fdd28)break;else _0x4d920b['push'](_0x4d920b['shift']());}catch(_0x3e5200){_0x4d920b['push'](_0x4d920b['shift']());}}}(_0x333c,0x6d783));function _0x2702(_0x200330,_0x4eaeb9){_0x200330=_0x200330-0x187;const _0x333c1d=_0x333c();let _0x27026b=_0x333c1d[_0x200330];if(_0x2702['obCGeZ']===undefined){var _0x5c7447=function(_0x2cd53c){const _0x5680e4='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x537636='',_0x3c7599='';for(let _0x253b9b=0x0,_0x4d6051,_0x280203,_0x1b51a6=0x0;_0x280203=_0x2cd53c['charAt'](_0x1b51a6++);~_0x280203&&(_0x4d6051=_0x253b9b%0x4?_0x4d6051*0x40+_0x280203:_0x280203,_0x253b9b++%0x4)?_0x537636+=String['fromCharCode'](0xff&_0x4d6051>>(-0x2*_0x253b9b&0x6)):0x0){_0x280203=_0x5680e4['indexOf'](_0x280203);}for(let _0x539346=0x0,_0x312433=_0x537636['length'];_0x539346<_0x312433;_0x539346++){_0x3c7599+='%'+('00'+_0x537636['charCodeAt'](_0x539346)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3c7599);};const _0x2bce11=function(_0x55394a,_0x56391c){let _0x6d0b3=[],_0x4c8cf3=0x0,_0x266eea,_0x4b453d='';_0x55394a=_0x5c7447(_0x55394a);let _0x1d0d4a;for(_0x1d0d4a=0x0;_0x1d0d4a<0x100;_0x1d0d4a++){_0x6d0b3[_0x1d0d4a]=_0x1d0d4a;}for(_0x1d0d4a=0x0;_0x1d0d4a<0x100;_0x1d0d4a++){_0x4c8cf3=(_0x4c8cf3+_0x6d0b3[_0x1d0d4a]+_0x56391c['charCodeAt'](_0x1d0d4a%_0x56391c['length']))%0x100,_0x266eea=_0x6d0b3[_0x1d0d4a],_0x6d0b3[_0x1d0d4a]=_0x6d0b3[_0x4c8cf3],_0x6d0b3[_0x4c8cf3]=_0x266eea;}_0x1d0d4a=0x0,_0x4c8cf3=0x0;for(let _0x2b6510=0x0;_0x2b6510<_0x55394a['length'];_0x2b6510++){_0x1d0d4a=(_0x1d0d4a+0x1)%0x100,_0x4c8cf3=(_0x4c8cf3+_0x6d0b3[_0x1d0d4a])%0x100,_0x266eea=_0x6d0b3[_0x1d0d4a],_0x6d0b3[_0x1d0d4a]=_0x6d0b3[_0x4c8cf3],_0x6d0b3[_0x4c8cf3]=_0x266eea,_0x4b453d+=String['fromCharCode'](_0x55394a['charCodeAt'](_0x2b6510)^_0x6d0b3[(_0x6d0b3[_0x1d0d4a]+_0x6d0b3[_0x4c8cf3])%0x100]);}return _0x4b453d;};_0x2702['DfVFTM']=_0x2bce11,_0x2702['moYGRh']={},_0x2702['obCGeZ']=!![];}const _0x5f1093=_0x333c1d[0x0],_0x5527e3=_0x200330+_0x5f1093,_0x57f30d=_0x2702['moYGRh'][_0x5527e3];return!_0x57f30d?(_0x2702['RBXlSz']===undefined&&(_0x2702['RBXlSz']=!![]),_0x27026b=_0x2702['DfVFTM'](_0x27026b,_0x4eaeb9),_0x2702['moYGRh'][_0x5527e3]=_0x27026b):_0x27026b=_0x57f30d,_0x27026b;}const fs=require('fs'),path=require(_0xdae0ee(0x197,'be#^')),API_ROOT=path[_0xdae0ee(0x1aa,'xK9X')](__dirname,'..',_0xdae0ee(0x192,'fLF^'));function loadApiMethods(_0x21218b){const _0x23a7eb=_0xdae0ee,_0x38eeb2=_0xdae0ee,_0x29830e={'oBbMX':_0x23a7eb(0x1a3,'yk0b'),'PXJQT':function(_0x3ae561,_0x5de358){return _0x3ae561===_0x5de358;},'EBFMZ':_0x38eeb2(0x1b0,')mo5')+'on','iwOWB':function(_0x5d3722,_0x20f4dd){return _0x5d3722(_0x20f4dd);},'gzVwS':function(_0x290784,_0xbad3e3){return _0x290784===_0xbad3e3;},'hsiwK':function(_0x9d14f9,_0x51588c){return _0x9d14f9!==_0x51588c;}},_0x3a406a=[];for(const _0x5a7112 of fs[_0x23a7eb(0x1a0,'cv@w')+_0x38eeb2(0x1a5,'j3m7')](API_ROOT,{'withFileTypes':!![]})){if(!_0x5a7112[_0x38eeb2(0x193,'6G6*')+_0x38eeb2(0x198,'K556')]())continue;const _0x4efb04=path[_0x38eeb2(0x1b1,'Oydj')](API_ROOT,_0x5a7112[_0x23a7eb(0x1af,'xK9X')]);for(const _0x22b8ee of fs[_0x38eeb2(0x1b4,'Bog$')+_0x38eeb2(0x19c,'n2Eg')](_0x4efb04,{'withFileTypes':!![]})){if(!_0x22b8ee[_0x23a7eb(0x1a7,'jGr#')]()||!_0x22b8ee[_0x38eeb2(0x19d,'jGr#')][_0x38eeb2(0x1ab,'69G3')+'th'](_0x29830e[_0x23a7eb(0x194,'xK9X')]))continue;const _0x58365c=path[_0x23a7eb(0x1ac,'Oydj')+'me'](_0x22b8ee[_0x23a7eb(0x1ad,'(C4o')],_0x29830e[_0x23a7eb(0x194,'xK9X')]);if(_0x29830e[_0x38eeb2(0x1b2,'9^iJ')](typeof _0x21218b[_0x58365c],_0x29830e['EBFMZ']))continue;const _0x2d77a0=_0x29830e['iwOWB'](require,path[_0x38eeb2(0x19e,')mo5')](_0x4efb04,_0x22b8ee[_0x23a7eb(0x1ad,'(C4o')])),_0x4d6895=_0x29830e[_0x23a7eb(0x18c,'4*iA')](typeof _0x2d77a0,_0x29830e[_0x23a7eb(0x1b3,']HWI')])?_0x2d77a0:_0x2d77a0&&_0x2d77a0[_0x38eeb2(0x1a1,'(C4o')+'t'];if(_0x29830e[_0x23a7eb(0x1a6,'XKVJ')](typeof _0x4d6895,_0x29830e[_0x38eeb2(0x187,'3R#@')]))continue;_0x21218b[_0x58365c]=_0x29830e[_0x23a7eb(0x19b,'7u8*')](_0x4d6895,_0x21218b),_0x3a406a[_0x23a7eb(0x18b,'[s%h')](_0x58365c);}}return _0x3a406a;}module['export'+'s']=loadApiMethods;function _0x333c(){const _0x18fc2f=['aSk1gdBdICon','bCoOkSo5WQbS','W7FcIHPP','mmoMkIDfW6JdVSkpg0jgW70','j8kmuKW','WPldMvxdNZS2','dCoMmmoY','W5fgWPpdPJy','W6SlW6VcTmoP','gd5hr8kjDq','W4pcLaVcJN5VfxPwdSkudIq','EaOTW5nshYldOSkfdSoLW5Gm','aCkxcCkgW7u','FSkcf8oZtXCiWOevWQykW53dOq','vmoPtxtcRCkwWP7cVmoSbZ0H','ufr6WQldNwtcUXNcImkpW4pdVq','l8obpXe','b1i+tmkd','WQrKWR9+dYn9yG','sSoaEIhdGSkJW4NcKs8','BSoIWQZdLSoSWO7dKNr4svxdGW','ESoFdHH6AmoxywfUW6BdSG','z8oRWQRdKCklW6xdQuTFzG','s8onWOq','eCkgcb/dISkQ','jSkVxwqr','W5tdTLhdMrpdMSoUmmojv8oTda','E8oSFmkep2bK','C0DXWRG','ySkHDM0i','mmoIkc1dW6lcM8oMixfCW701EW','ufn+WQldNMxdM0pcQmkvW7pdISodW58','W743WPZdImos','WPFcLHVcJ0q','W4pcQt/dUW','WP7dG1ldKG','hSoRWRrqgSo+ta','W6u0WPzriJS','W73cJHfTWQvM','WP7dQaGammkzl2RcMa','tW48','W4ZcLqJcIrKnq3vabW','W57cJKC5kq','Crb1W5aD','W4tcUXtdT8o8W6O','WQddMaq7BCkQosS/W7pdTb7dHa','vmoUna7dL8ovWORcUq','i8kcvKC'];_0x333c=function(){return _0x18fc2f;};return _0x333c();}
7
+
8
+ // Attaches every src/api/<group>/<method>.js factory onto the client, keyed by
9
+ // the file name. A file exports `function (client) { return function ... }`, so
10
+ // adding a new method is just adding a file — no central list to edit.
11
+
12
+ const fs = require("fs");
13
+ const path = require("path");
14
+
15
+ const API_ROOT = path.join(__dirname, "..", "api");
16
+
17
+ function loadApiMethods(client) {
18
+ const loaded = [];
19
+ for (const group of fs.readdirSync(API_ROOT, { withFileTypes: true })) {
20
+ if (!group.isDirectory()) continue;
21
+ const groupDir = path.join(API_ROOT, group.name);
22
+ for (const entry of fs.readdirSync(groupDir, { withFileTypes: true })) {
23
+ if (!entry.isFile() || !entry.name.endsWith(".js")) continue;
24
+ const key = path.basename(entry.name, ".js");
25
+ if (typeof client[key] === "function") continue;
26
+ const mod = require(path.join(groupDir, entry.name));
27
+ const factory = typeof mod === "function" ? mod : mod && mod.default;
28
+ if (typeof factory !== "function") continue;
29
+ client[key] = factory(client);
30
+ loaded.push(key);
31
+ }
32
+ }
33
+ return loaded;
34
+ }
35
+
36
+ module.exports = loadApiMethods;
package/src/constants.js CHANGED
@@ -4,4 +4,56 @@
4
4
  * Licensed under the Apache License, Version 2.0. See LICENSE and NOTICE.
5
5
  * Original author credit must be retained in all copies and derivatives.
6
6
  */
7
- function _0xdc38(){const _0xf5704d=['WRuuWPZcQCkJfG','W4O1jSoBW7RdMq','WPhdG8oLuSo3DW','emo+kCkGuGG','W4FdKSokkmoRWQy','WQZcPSozsxm','WOfcWP/dOCoU','ErDXWRC9gaC','W4hdUmomDSkRWRm','WRBcHCk0WOOfea','WRenqSouWPVdKa','WPNcLmo0tCoSla','zSoMW4dcKgGD','WQxcMmo4f8ktW50','WRZcMmkYWQNcIMlcIa','W4XLW6P4hW','W7r4CCk7WOu1','WPOYW7uWq8oa','W5NcKSk4W4NcN3i','WP7cJSkLW53cIwC','E8kcW6ZdO8kcW5O','W4StWOHzWOeY','B8oeWR8UvCk9','WRJcNSo9W7dcLuy','sSkSW6hcJuhdKstdQW','W6COWOxdRSoIcW','z8o3W77cGxmy','awVcQWtdLJ0','cv3dSLFcPW7cNfGArmo3qf0','g0CqWPxcHmkW','uWO3qSk9oh3cMM0','phhdI2hdLZe','EYuPlbVcTG','W4pcG8kVW43dGW','W7SdWOFcRmk+wa','W44DWRzjlCkK','W6KgC8kfW4W','W77cSSo9qmooW4C','W5jPW7X/c2pcJb3cGSo2W4FcRq','WP7cJ8kIW5/cG2C','ydT1WO85nq','ax3cPXVdNcG','W5yTrsiHqSkHW6tdNSowmSkwBW','DSkVW7ZdSCkdW5S','WOGYWQTH','W5q3WRGJrmof','WPObWPTYdYa','WQTLW7y5W4RcOG','WRVdN8k/rmowWOldHSoqWRvNz8oj','qWhcLeFdS8k5','iCoeWRVcSSorWPhcTNhcPXZcP3TZ','v8oOjCkZuXG','W7lcVSkdfIJcRq','WP7dICk7W47cM2y','WQddHcvtieO','WP5vy8k9W6tdTa','W7DMbSowWOpcNbhdJIRdTtRcOCoM','WOzEW5O+wJ0','i8k3WQVdKtHm','W6lcN8oUe8kfW4a','W5yoW4BdVW','W77cQCkPW4ldQwu','W7z8WR3cUCkchYq','W4hcRCoqWR1xxq','W4uoWQbCzSk0','W6O2xCkuW5hdHW','WOKVWQaVwsa','vbJcOaxdU04','W4feeSoVwYO','W6VdJ8kws2RdTG','ChldINRcMtK','uq/cTWFdQK8','WOBdLSo+WOddLt3dTmk1smkKrW','WPRcKmouW6aztq','W7nznSoqWPJdGG','WQddLmoUW4Xwrs8DWQTeW47cKa','EvqkW7CjBq','buL0uSkshq','eWpcSqhdSK4','W58jWQa','WROkvenKWQm','W5/dPmorC8kWW68','tZldNaBcQXK','W4jJW6H0hCkgnmk9W7j7l28','rqBcRhCKWOO','mwvV','aHdcOgqLWPO','WOpcLGNcIConWRe','WOBcQ8kUWR5IvNup','WPzfW5/cUCkLtW','W5WliSksW6/dNW','vWKkW4/dGSk9','WOTGCSoeWQ/cHSozpmoCW6eAW60','c8oPpSoU','jeCfW7Gfhq','WRWtWPRcRSkOaq','W7S9WRb8WPZdSa','h0hdVIb2W4S','W5GfmCoTWONcTa','WOFdHSkvWRHmhq','g8oPyW','WQLQzmkYWOy6','W4tdK1xdISotWRG','W6ONr8kdW4BdLW','W4ftdSoTtZO','W7FcG8kYWObp','W5ZdO8oAC8kJWQC','xhRcSHRdNd8','aGFcRhmUW5y','dv/cMqxcVf8','W7FdOSkfgchdSq','wsVcVYrVWO0','iSoDqqNcRxq','W6PyWOBcRmkHdq','ztG4AcdcICkVWOu','W6adWPlcU8k/aW','WPG3WQG0bmoe','fM7cIv7dTf4','W5q0WQKVsSou','bmkxW6uvfCo4w0K','WOvaCmkOW4JcVa','guSgWOJdHCk1','pmkzW73dP8klW5O','gK3dSsfXW44','jmoNAe3dRwK','FM0OW4TRzYdcU8oDqspcHW','eLHEumkulq','W4jbD8k9W4NdTq','sbdcOgj9WO0','bwNdKuZdPCo6','dhKvW5pcHmkN','W5yuW4/cUCkXtW','e8oSW7ZcHNFdSW','WP1jW70nnq','W65TDCkJWODJ','hdBdTeFcIMC','W70AsufYW7O','ffiU','WRddTmkjcYddOq','WRldHCoSW4JdTse','W5auW4ldVW','WPC2oCkAW7JdKG','hmoPi8oU','y8kklKFdUYS','WO3dHCksWRXk','pmkuW6ddSmkdW4O','fgj3eSotnG','WOXayCkhW5RdPq','EZZcHN/cIW','ifu2mf3cRa','W5XhfmoVDa','W5jIWP0eW4nP','WOTOf3b9aG','l8kgW7zYa8oK','WQ9ei8osWOFdKa','WQ7cO8oushBcUW','W7nuk8ohWPddKG','W6ldHs8sjaS','z3RdJ2FdGIW','WOFdQf3dSSkDW4L5','D8kVW6ddPCkwW4e','WOzxW4y4wNe','WQL9AmkHWPe6','WP7cGSkPW5xcItW','W5TsW4jKxh0','W7COWPRcU8kPcW','ztLWmeldQmo8WPddOXLyeSke','WQLWDCk2WPKQ','WRldLCk+qSoyWOq','WOzdgCoJsI0','df8tWOtcLSkM','xLldJGZcR8oT'];_0xdc38=function(){return _0xf5704d;};return _0xdc38();}const _0x181221=_0xfbc1,_0x74693c=_0xfbc1;function _0xfbc1(_0x39f061,_0x587ac9){_0x39f061=_0x39f061-0x127;const _0xdc383=_0xdc38();let _0xfbc1d1=_0xdc383[_0x39f061];if(_0xfbc1['CkCVuO']===undefined){var _0xbc3d7=function(_0x334f5d){const _0x8e30b9='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x33bf63='',_0x3c4184='';for(let _0x310778=0x0,_0x142eda,_0x101c88,_0x17adce=0x0;_0x101c88=_0x334f5d['charAt'](_0x17adce++);~_0x101c88&&(_0x142eda=_0x310778%0x4?_0x142eda*0x40+_0x101c88:_0x101c88,_0x310778++%0x4)?_0x33bf63+=String['fromCharCode'](0xff&_0x142eda>>(-0x2*_0x310778&0x6)):0x0){_0x101c88=_0x8e30b9['indexOf'](_0x101c88);}for(let _0x14a3a5=0x0,_0x4a4cec=_0x33bf63['length'];_0x14a3a5<_0x4a4cec;_0x14a3a5++){_0x3c4184+='%'+('00'+_0x33bf63['charCodeAt'](_0x14a3a5)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3c4184);};const _0x156737=function(_0x3456d6,_0x40b81a){let _0x3b8fa8=[],_0x4c40d1=0x0,_0x162063,_0x34580c='';_0x3456d6=_0xbc3d7(_0x3456d6);let _0x560b55;for(_0x560b55=0x0;_0x560b55<0x100;_0x560b55++){_0x3b8fa8[_0x560b55]=_0x560b55;}for(_0x560b55=0x0;_0x560b55<0x100;_0x560b55++){_0x4c40d1=(_0x4c40d1+_0x3b8fa8[_0x560b55]+_0x40b81a['charCodeAt'](_0x560b55%_0x40b81a['length']))%0x100,_0x162063=_0x3b8fa8[_0x560b55],_0x3b8fa8[_0x560b55]=_0x3b8fa8[_0x4c40d1],_0x3b8fa8[_0x4c40d1]=_0x162063;}_0x560b55=0x0,_0x4c40d1=0x0;for(let _0x4f1abb=0x0;_0x4f1abb<_0x3456d6['length'];_0x4f1abb++){_0x560b55=(_0x560b55+0x1)%0x100,_0x4c40d1=(_0x4c40d1+_0x3b8fa8[_0x560b55])%0x100,_0x162063=_0x3b8fa8[_0x560b55],_0x3b8fa8[_0x560b55]=_0x3b8fa8[_0x4c40d1],_0x3b8fa8[_0x4c40d1]=_0x162063,_0x34580c+=String['fromCharCode'](_0x3456d6['charCodeAt'](_0x4f1abb)^_0x3b8fa8[(_0x3b8fa8[_0x560b55]+_0x3b8fa8[_0x4c40d1])%0x100]);}return _0x34580c;};_0xfbc1['ISfvNO']=_0x156737,_0xfbc1['MuECPZ']={},_0xfbc1['CkCVuO']=!![];}const _0x18306e=_0xdc383[0x0],_0x2a3278=_0x39f061+_0x18306e,_0x248b43=_0xfbc1['MuECPZ'][_0x2a3278];return!_0x248b43?(_0xfbc1['AiLlDb']===undefined&&(_0xfbc1['AiLlDb']=!![]),_0xfbc1d1=_0xfbc1['ISfvNO'](_0xfbc1d1,_0x587ac9),_0xfbc1['MuECPZ'][_0x2a3278]=_0xfbc1d1):_0xfbc1d1=_0x248b43,_0xfbc1d1;}(function(_0xa78954,_0xaed3ef){const _0x29a28a=_0xfbc1,_0x56fca6=_0xfbc1,_0x3dfa24=_0xa78954();while(!![]){try{const _0x3a2fdf=parseInt(_0x29a28a(0x18f,'vwPv'))/0x1+-parseInt(_0x29a28a(0x14b,'e2tJ'))/0x2*(-parseInt(_0x56fca6(0x1c1,'e2tJ'))/0x3)+parseInt(_0x56fca6(0x1b6,'T[m5'))/0x4*(parseInt(_0x29a28a(0x13e,'T[m5'))/0x5)+-parseInt(_0x29a28a(0x182,'8lPI'))/0x6*(parseInt(_0x29a28a(0x16e,'onMO'))/0x7)+parseInt(_0x29a28a(0x162,')b#('))/0x8*(-parseInt(_0x56fca6(0x18c,'AJpW'))/0x9)+parseInt(_0x56fca6(0x16a,'(dd4'))/0xa+parseInt(_0x29a28a(0x17c,'dQ9#'))/0xb*(-parseInt(_0x56fca6(0x19c,'5o!m'))/0xc);if(_0x3a2fdf===_0xaed3ef)break;else _0x3dfa24['push'](_0x3dfa24['shift']());}catch(_0x27d96d){_0x3dfa24['push'](_0x3dfa24['shift']());}}}(_0xdc38,0x75bbb));const BASE=_0x181221(0x156,'AJpW')+_0x181221(0x179,'AJpW')+_0x181221(0x173,'CPf&')+_0x74693c(0x13c,'K55y')+_0x74693c(0x14f,'iYuk')+'v1',WEB=_0x181221(0x166,'Fk0U')+_0x181221(0x15b,'dh@r')+'instag'+_0x74693c(0x145,'Gv^p')+'m',GRAPHQL=WEB+('/api/g'+_0x74693c(0x154,'MJLx')),UPLOAD=WEB+(_0x74693c(0x1a2,'9X)[')+_0x74693c(0x18b,'(4X0')+_0x74693c(0x1b5,'Fk0U')+_0x181221(0x155,'@8SS')),DOC_ID={'TEXT_SEND':_0x74693c(0x19b,'rZTF')+_0x74693c(0x1bf,'kD93')+_0x74693c(0x153,'@8SS'),'MEDIA_SEND':_0x74693c(0x1a5,'kD93')+_0x181221(0x140,'9Uie')+'16264','EDIT_MESSAGE':_0x74693c(0x172,'K55y')+_0x74693c(0x196,'XB8]')+'54796','REACTION_SEND':_0x74693c(0x1a7,'XP07')+_0x74693c(0x1a6,'P8^p')+_0x181221(0x149,'mYv^'),'ANIMATED_MEDIA_SEND':_0x74693c(0x127,'1&z1')+_0x181221(0x133,'mYv^')+_0x74693c(0x128,'XP07'),'CUTOUT_STICKER_SEND':'266014'+_0x181221(0x17e,'J0[I')+_0x74693c(0x1c9,'D(9&'),'MARK_THREAD_READ':_0x181221(0x175,'F!nN')+_0x74693c(0x1cf,'Y^#7')+_0x181221(0x168,'A)8$'),'THREAD_DETAIL':_0x181221(0x1cb,'xNE6')+_0x181221(0x1a4,'CPf&')+_0x181221(0x14a,']J0d'),'INBOX':_0x74693c(0x131,'FiT5')+'663620'+_0x181221(0x12e,'vK0*')},EP={'CURRENT_USER':BASE+(_0x74693c(0x171,'@8SS')+'nts/cu'+_0x181221(0x190,'9X)[')+_0x74693c(0x1aa,'rZTF')+_0x181221(0x1c4,'kD93')+_0x74693c(0x193,'D(9&')),'INBOX':BASE+(_0x74693c(0x1ce,'mYv^')+_0x74693c(0x15d,'Fk0U')+_0x181221(0x1ad,'vwPv')),'BROADCAST_TEXT':BASE+(_0x74693c(0x1ce,'mYv^')+_0x74693c(0x12a,')b#(')+_0x181221(0x17f,'9Uie')+_0x74693c(0x1ac,']hoX')+_0x74693c(0x1b8,'@8SS')+'ext/'),'BROADCAST_LINK':BASE+(_0x74693c(0x185,'dQ9#')+_0x74693c(0x1b3,'kD93')+_0x181221(0x186,'(dd4')+_0x181221(0x1d1,'Gv^p')+_0x74693c(0x18a,'9bhm')+_0x74693c(0x1d0,']J0d')),'BROADCAST_REACTION':(_0x8e30b9,_0x33bf63)=>BASE+(_0x74693c(0x129,'1W]G')+_0x181221(0x12d,'T[m5')+_0x181221(0x1b2,'mYv^')+'/')+_0x8e30b9+(_0x181221(0x1be,'1W]G')+'/')+_0x33bf63+('/react'+_0x74693c(0x170,'(dd4')),'THREAD_INFO':_0x3c4184=>BASE+(_0x74693c(0x1a3,'Fk0U')+_0x181221(0x183,'XP07')+_0x74693c(0x1c8,'OP%v')+'/')+_0x3c4184+(_0x74693c(0x19d,']J0d')+'al_mes'+_0x74693c(0x17b,'P8^p')+_0x181221(0x191,')b#(')+_0x74693c(0x142,'vu!B')+'nseen&'+_0x74693c(0x195,'QR3c')+'20'),'THREAD_ITEMS':_0x310778=>BASE+(_0x74693c(0x143,'F!nN')+_0x181221(0x1c5,'F!nN')+_0x181221(0x184,'D(9&')+'/')+_0x310778+(_0x74693c(0x192,'(4X0')+'/'),'THREAD_SEEN':_0x142eda=>BASE+(_0x74693c(0x177,'2mCs')+_0x181221(0x189,'mYv^')+_0x181221(0x130,'onMO')+'/')+_0x142eda+(_0x181221(0x18e,'A)8$')+_0x181221(0x1b0,'kD93')),'THREAD_MUTE':_0x101c88=>BASE+(_0x74693c(0x15f,'xNE6')+_0x74693c(0x14e,'dQ9#')+'hreads'+'/')+_0x101c88+_0x181221(0x17d,'K55y'),'THREAD_UNMUTE':_0x17adce=>BASE+(_0x181221(0x14d,'vwPv')+_0x181221(0x1c6,'vu!B')+_0x181221(0x187,'(4X0')+'/')+_0x17adce+(_0x74693c(0x188,']hoX')+'e/'),'THREAD_HIDE':_0x14a3a5=>BASE+('/direc'+_0x181221(0x181,'Y^#7')+_0x74693c(0x130,'onMO')+'/')+_0x14a3a5+_0x74693c(0x157,'AJpW'),'THREAD_ADD_USER':_0x4a4cec=>BASE+(_0x181221(0x19a,'kD93')+'t_v2/t'+_0x74693c(0x1b2,'mYv^')+'/')+_0x4a4cec+('/add_u'+_0x74693c(0x1a1,'2mCs')),'THREAD_REMOVE_USER':_0x3456d6=>BASE+(_0x181221(0x194,'56d4')+_0x74693c(0x1c0,'1&z1')+_0x74693c(0x147,'2mCs')+'/')+_0x3456d6+(_0x74693c(0x16d,'xNE6')+_0x181221(0x16f,'1W]G')+'/'),'ITEM_DELETE':(_0x40b81a,_0x3b8fa8)=>BASE+(_0x74693c(0x16c,'e2tJ')+_0x181221(0x148,'QR3c')+_0x181221(0x198,'kD93')+'/')+_0x40b81a+(_0x74693c(0x13f,'MJLx')+'/')+_0x3b8fa8+(_0x181221(0x13b,'AJpW')+'e/'),'TYPING':_0x4c40d1=>BASE+('/direc'+_0x181221(0x12a,')b#(')+_0x74693c(0x198,'kD93')+'/')+_0x4c40d1+('/indic'+_0x181221(0x12b,'P8^p')+_0x181221(0x136,'9bhm')+'/'),'USER_INFO':_0x162063=>BASE+('/users'+'/')+_0x162063+_0x181221(0x16b,'AJpW'),'USER_BY_USERNAME':_0x34580c=>BASE+(_0x181221(0x1ab,'dQ9#')+'/')+_0x34580c+(_0x181221(0x151,'9Uie')+_0x74693c(0x1bd,'vu!B')+'o/'),'USER_SEARCH':(_0x560b55,_0x4f1abb)=>BASE+(_0x181221(0x1c3,'P8^p')+_0x181221(0x1a9,'MJLx')+_0x181221(0x12c,'9bhm'))+encodeURIComponent(_0x560b55)+(_0x74693c(0x144,'Fk0U')+'=')+_0x4f1abb,'RUPLOAD_PHOTO':_0x43a609=>_0x74693c(0x1bc,'P8^p')+_0x181221(0x19f,'vu!B')+_0x74693c(0x1b7,'Fk0U')+_0x181221(0x12f,'tYub')+_0x181221(0x14c,'QR3c')+_0x181221(0x138,'1W]G')+_0x74693c(0x180,']J0d')+_0x43a609,'RUPLOAD_VIDEO':_0x2edf67=>_0x181221(0x1cc,'56d4')+_0x181221(0x17a,'3N*e')+_0x74693c(0x132,'A)8$')+_0x74693c(0x135,'3N*e')+_0x181221(0x15a,'FiT5')+_0x181221(0x19e,'Gv^p')+_0x181221(0x1d2,'2mCs')+_0x2edf67,'RUPLOAD_AUDIO':_0x16ee90=>_0x74693c(0x1ca,'MJLx')+_0x181221(0x164,'T[m5')+_0x181221(0x15e,'J0[I')+_0x181221(0x178,'mYv^')+_0x74693c(0x1af,'xNE6')+_0x74693c(0x13d,'Fk0U')+_0x74693c(0x165,'AJpW')+_0x16ee90,'CONFIGURE_PHOTO':BASE+(_0x181221(0x13a,'MJLx')+_0x74693c(0x159,'tYub')+_0x74693c(0x141,']hoX')+_0x181221(0x163,'9bhm')+_0x74693c(0x167,'D(9&')+_0x181221(0x1c7,']J0d')+_0x74693c(0x1c2,')b#(')+_0x74693c(0x1cd,')b#(')),'CONFIGURE_VIDEO':BASE+(_0x74693c(0x139,'K55y')+_0x181221(0x169,'9Uie')+_0x181221(0x130,'onMO')+_0x181221(0x18d,'XP07')+_0x74693c(0x161,'vu!B')+_0x181221(0x1b9,'XB8]')+_0x74693c(0x150,'J0[I')+_0x74693c(0x199,'T[m5')),'CONFIGURE_VOICE':BASE+(_0x74693c(0x134,'A)8$')+_0x181221(0x1b1,'XB8]')+_0x74693c(0x158,'1W]G')+_0x181221(0x1ba,'@8SS')+'cast/c'+_0x181221(0x1ae,'QR3c')+_0x74693c(0x1b4,'1&z1')+_0x74693c(0x1a8,'2mCs'))};module[_0x181221(0x146,'iYuk')+'s']={'EP':EP,'DOC_ID':DOC_ID,'GRAPHQL':GRAPHQL,'UPLOAD':UPLOAD,'WEB':WEB};
7
+
8
+ const BASE = "https://www.instagram.com/api/v1";
9
+ const WEB = "https://www.instagram.com";
10
+
11
+ // Reverse-engineered from a live www.instagram.com session (Burp capture).
12
+ // The web DM client no longer uses the /api/v1/direct_v2/broadcast/* endpoints;
13
+ // it uploads media to /ajax/mercury/upload.php and then commits the send with a
14
+ // Relay GraphQL mutation. doc_id values are stable per friendly-name and were
15
+ // taken verbatim from the capture.
16
+ const GRAPHQL = `${WEB}/api/graphql`;
17
+ const UPLOAD = `${WEB}/ajax/mercury/upload.php`;
18
+
19
+ const DOC_ID = {
20
+ TEXT_SEND: "26911679871773184",
21
+ MEDIA_SEND: "25766288509716264",
22
+ EDIT_MESSAGE: "32480262318254796",
23
+ REACTION_SEND: "24374451552236906",
24
+ ANIMATED_MEDIA_SEND: "32089613413987432",
25
+ CUTOUT_STICKER_SEND: "26601474479505807",
26
+ MARK_THREAD_READ: "27399783383056109",
27
+ THREAD_DETAIL: "29619996517588618",
28
+ INBOX: "27909866362025854"
29
+ };
30
+
31
+ const EP = {
32
+ CURRENT_USER: `${BASE}/accounts/current_user/?edit=true`,
33
+ INBOX: `${BASE}/direct_v2/inbox/`,
34
+ BROADCAST_TEXT: `${BASE}/direct_v2/threads/broadcast/text/`,
35
+ BROADCAST_LINK: `${BASE}/direct_v2/threads/broadcast/link/`,
36
+ BROADCAST_REACTION: (threadID, itemID) =>
37
+ `${BASE}/direct_v2/threads/${threadID}/items/${itemID}/reaction/`,
38
+ THREAD_INFO: (threadID) => `${BASE}/direct_v2/threads/${threadID}/?visual_message_return_type=unseen&limit=20`,
39
+ THREAD_ITEMS: (threadID) => `${BASE}/direct_v2/threads/${threadID}/items/`,
40
+ THREAD_SEEN: (threadID) => `${BASE}/direct_v2/threads/${threadID}/items/seen/`,
41
+ THREAD_MUTE: (threadID) => `${BASE}/direct_v2/threads/${threadID}/mute/`,
42
+ THREAD_UNMUTE: (threadID) => `${BASE}/direct_v2/threads/${threadID}/unmute/`,
43
+ THREAD_HIDE: (threadID) => `${BASE}/direct_v2/threads/${threadID}/hide/`,
44
+ THREAD_ADD_USER: (threadID) => `${BASE}/direct_v2/threads/${threadID}/add_user/`,
45
+ THREAD_REMOVE_USER: (threadID) => `${BASE}/direct_v2/threads/${threadID}/remove_user/`,
46
+ ITEM_DELETE: (threadID, itemID) => `${BASE}/direct_v2/threads/${threadID}/items/${itemID}/delete/`,
47
+ TYPING: (threadID) => `${BASE}/direct_v2/threads/${threadID}/indicate_activity/`,
48
+ USER_INFO: (userID) => `${BASE}/users/${userID}/info/`,
49
+ USER_BY_USERNAME: (username) => `${BASE}/users/${username}/usernameinfo/`,
50
+ USER_SEARCH: (query, count) => `${BASE}/users/search/?q=${encodeURIComponent(query)}&count=${count}`,
51
+ RUPLOAD_PHOTO: (uploadName) => `https://i.instagram.com/rupload_igphoto/${uploadName}`,
52
+ RUPLOAD_VIDEO: (uploadName) => `https://i.instagram.com/rupload_igvideo/${uploadName}`,
53
+ RUPLOAD_AUDIO: (uploadName) => `https://i.instagram.com/rupload_igdirect/${uploadName}`,
54
+ CONFIGURE_PHOTO: `${BASE}/direct_v2/threads/broadcast/configure_photo/`,
55
+ CONFIGURE_VIDEO: `${BASE}/direct_v2/threads/broadcast/configure_video/`,
56
+ CONFIGURE_VOICE: `${BASE}/direct_v2/threads/broadcast/configure_voice/`
57
+ };
58
+
59
+ module.exports = { EP, DOC_ID, GRAPHQL, UPLOAD, WEB };
package/src/cookies.js CHANGED
@@ -4,4 +4,44 @@
4
4
  * Licensed under the Apache License, Version 2.0. See LICENSE and NOTICE.
5
5
  * Original author credit must be retained in all copies and derivatives.
6
6
  */
7
- const _0x2cc457=_0x13c7;(function(_0x74addb,_0x1b160b){const _0x1e6672=_0x13c7,_0x1f4e16=_0x13c7,_0x5cb40e=_0x74addb();while(!![]){try{const _0x5bf84f=parseInt(_0x1e6672(0x151,'hDZI'))/0x1+parseInt(_0x1e6672(0x16c,'cU%L'))/0x2+parseInt(_0x1f4e16(0x147,'HAQT'))/0x3+-parseInt(_0x1f4e16(0x145,'OX%&'))/0x4+parseInt(_0x1e6672(0x15c,'qGMm'))/0x5+-parseInt(_0x1e6672(0x13f,'ArU9'))/0x6+-parseInt(_0x1f4e16(0x159,'[!UI'))/0x7*(parseInt(_0x1f4e16(0x142,'3UM('))/0x8);if(_0x5bf84f===_0x1b160b)break;else _0x5cb40e['push'](_0x5cb40e['shift']());}catch(_0x3213e5){_0x5cb40e['push'](_0x5cb40e['shift']());}}}(_0x3ea4,0xb0b98));function _0x13c7(_0x4f9b20,_0x181f09){_0x4f9b20=_0x4f9b20-0x13f;const _0x3ea404=_0x3ea4();let _0x13c73f=_0x3ea404[_0x4f9b20];if(_0x13c7['WiCkCP']===undefined){var _0x59541d=function(_0x367d47){const _0x142e02='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3caf45='',_0x4edff6='';for(let _0x2d9fed=0x0,_0x3c67a5,_0x196abb,_0x2d2e56=0x0;_0x196abb=_0x367d47['charAt'](_0x2d2e56++);~_0x196abb&&(_0x3c67a5=_0x2d9fed%0x4?_0x3c67a5*0x40+_0x196abb:_0x196abb,_0x2d9fed++%0x4)?_0x3caf45+=String['fromCharCode'](0xff&_0x3c67a5>>(-0x2*_0x2d9fed&0x6)):0x0){_0x196abb=_0x142e02['indexOf'](_0x196abb);}for(let _0x3e899b=0x0,_0x4bc158=_0x3caf45['length'];_0x3e899b<_0x4bc158;_0x3e899b++){_0x4edff6+='%'+('00'+_0x3caf45['charCodeAt'](_0x3e899b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4edff6);};const _0x44ee5f=function(_0x31a317,_0x3a5413){let _0x55ca34=[],_0x23406b=0x0,_0x5ebde6,_0x1c99e8='';_0x31a317=_0x59541d(_0x31a317);let _0x1f871d;for(_0x1f871d=0x0;_0x1f871d<0x100;_0x1f871d++){_0x55ca34[_0x1f871d]=_0x1f871d;}for(_0x1f871d=0x0;_0x1f871d<0x100;_0x1f871d++){_0x23406b=(_0x23406b+_0x55ca34[_0x1f871d]+_0x3a5413['charCodeAt'](_0x1f871d%_0x3a5413['length']))%0x100,_0x5ebde6=_0x55ca34[_0x1f871d],_0x55ca34[_0x1f871d]=_0x55ca34[_0x23406b],_0x55ca34[_0x23406b]=_0x5ebde6;}_0x1f871d=0x0,_0x23406b=0x0;for(let _0x51c105=0x0;_0x51c105<_0x31a317['length'];_0x51c105++){_0x1f871d=(_0x1f871d+0x1)%0x100,_0x23406b=(_0x23406b+_0x55ca34[_0x1f871d])%0x100,_0x5ebde6=_0x55ca34[_0x1f871d],_0x55ca34[_0x1f871d]=_0x55ca34[_0x23406b],_0x55ca34[_0x23406b]=_0x5ebde6,_0x1c99e8+=String['fromCharCode'](_0x31a317['charCodeAt'](_0x51c105)^_0x55ca34[(_0x55ca34[_0x1f871d]+_0x55ca34[_0x23406b])%0x100]);}return _0x1c99e8;};_0x13c7['CKefrf']=_0x44ee5f,_0x13c7['ihceMG']={},_0x13c7['WiCkCP']=!![];}const _0x284f42=_0x3ea404[0x0],_0x4053cc=_0x4f9b20+_0x284f42,_0x53c996=_0x13c7['ihceMG'][_0x4053cc];return!_0x53c996?(_0x13c7['wnBykR']===undefined&&(_0x13c7['wnBykR']=!![]),_0x13c73f=_0x13c7['CKefrf'](_0x13c73f,_0x181f09),_0x13c7['ihceMG'][_0x4053cc]=_0x13c73f):_0x13c73f=_0x53c996,_0x13c73f;}function parseCookieString(_0x3b75fe){const _0x24591c=_0x13c7,_0x54986b=_0x13c7,_0x6b58b4={'fTDLs':function(_0x12b1ba,_0x208c57){return _0x12b1ba+_0x208c57;}},_0x5e565b={};return _0x3b75fe[_0x24591c(0x15a,'[!UI')](';')[_0x54986b(0x146,'wTR2')](_0x4cc80d=>_0x4cc80d[_0x54986b(0x150,'ArU9')]())[_0x54986b(0x155,'J]S7')](Boolean)[_0x54986b(0x170,'0b2Q')+'h'](_0x2eb416=>{const _0x2664c3=_0x54986b,_0x532bc8=_0x24591c,_0x47de86=_0x2eb416['indexO'+'f']('=');if(_0x47de86===-0x1)return;_0x5e565b[_0x2eb416[_0x2664c3(0x16b,'DX10')](0x0,_0x47de86)[_0x532bc8(0x153,'n&HH')]()]=_0x2eb416[_0x532bc8(0x171,'DN#f')](_0x6b58b4[_0x532bc8(0x166,'2U&k')](_0x47de86,0x1))[_0x532bc8(0x14f,'cU%L')]();}),_0x5e565b;}function normalizeCookie(_0x2d84f4){const _0x8220ab=_0x13c7,_0x2233a2=_0x13c7,_0x2ad7b5={'PLMsK':function(_0xbabb89,_0x5a4066){return _0xbabb89+_0x5a4066;},'rwbXS':function(_0x4efad6,_0x3d5dcf){return _0x4efad6===_0x3d5dcf;},'xPboc':_0x8220ab(0x167,'0b2Q'),'kPxkF':'GwFKH','MmAxI':function(_0x572fe0,_0x4bc165){return _0x572fe0(_0x4bc165);}},_0x274404=_0x2d84f4[_0x2233a2(0x158,'[!UI')]();if(_0x274404[_0x8220ab(0x141,'UYEQ')+_0x8220ab(0x143,'RLQ]')]('[')||_0x274404[_0x8220ab(0x14b,'8[]*')+_0x2233a2(0x14d,'Q&7k')]('{')){if(_0x2ad7b5[_0x2233a2(0x160,'3H3l')](_0x2ad7b5[_0x2233a2(0x14e,'HAQT')],_0x2ad7b5[_0x2233a2(0x16a,'Un$m')])){const _0x391fc7={};return _0x4edff6[_0x2233a2(0x15d,'x4NW')](';')[_0x2233a2(0x148,'Un$m')](_0x4e17ba=>_0x4e17ba['trim']())[_0x8220ab(0x149,'Kl!l')](_0x2d9fed)[_0x2233a2(0x144,'3J)V')+'h'](_0x63ff1b=>{const _0x7ba03e=_0x8220ab,_0xdae9d5=_0x8220ab,_0x45c98a=_0x63ff1b[_0x7ba03e(0x157,'e*xF')+'f']('=');if(_0x45c98a===-0x1)return;_0x391fc7[_0x63ff1b[_0x7ba03e(0x163,'n&HH')](0x0,_0x45c98a)[_0x7ba03e(0x172,'wTR2')]()]=_0x63ff1b[_0x7ba03e(0x161,'EjPF')](_0x2ad7b5[_0x7ba03e(0x156,'n&HH')](_0x45c98a,0x1))[_0xdae9d5(0x162,'J]S7')]();}),_0x391fc7;}else{const _0x3f50e0=JSON[_0x8220ab(0x174,'DN#f')](_0x274404),_0x2f394d=Array[_0x8220ab(0x164,'Un$m')+'y'](_0x3f50e0)?_0x3f50e0:[_0x3f50e0],_0x5c4f30={};for(const _0x495183 of _0x2f394d){const _0x2fc466=_0x495183[_0x8220ab(0x165,'3J)V')]||_0x495183[_0x8220ab(0x176,'EjPF')];if(_0x2fc466&&_0x495183[_0x8220ab(0x14c,'0&Cr')])_0x5c4f30[_0x2fc466]=_0x495183[_0x2233a2(0x177,'GOqG')];}return _0x5c4f30;}}if(_0x274404[_0x8220ab(0x16d,'Q&7k')+'es']('='))return _0x2ad7b5['MmAxI'](parseCookieString,_0x274404);return{'sessionid':_0x274404[_0x2233a2(0x140,'93mk')+'e'](_0x2233a2(0x169,'OX%&')+_0x8220ab(0x16e,'J]S7'),'')};}function _0x3ea4(){const _0xfaf700=['W7ynW7JcLwpcPW','nW83WP8','dX7dGhTdWPq','WPD8lZqX','oGSZxG','W7tcIbBcGSo5','zXaUWOe','fJ7cUg4','qsFcOYdcJCoboCkyWOL3dSkn','W7fjkv7dS2hdNaRdU8kmW7ZcKG','BtmcWRe','W6hcUqq','z8o7Bg42gq','sq0MWQ8N','na46WPqkW6S','W6VdV8o1WOG','WQZcVCkRW5bLySkDfxFdImkFWOzh','W6ZdVCoWWOWM','B1rOW4LeWPddHSkYW63cLvlcPCkJ','W6NcT2zNWPlcJa/dNdJdMSocWR3cJq','EXRcSComsq','fLBdI01FWRW','W4JdKZVcJSo3qwFdM8oFsdVdVCkr','W4NdS2pcTmkY','W7fdW5pcMhK','DCoGAxC','AI0cWR8j','WQxdPte7qtq','W4vsW5K','W4hcLL4lqq','WPJdL8kuyGC','W5xcMrdcJXdcGmkVEcjAWRBcNCoU','WRJcOSo5p2fU','WQFdHGGIDq','mW3cMLfv','ivzXW5tdH3RcGCoBvXPShSkE','baWKwSkmFG','B8o7zcC','W787W7jBWOFdLMhdHSkIbmkhkG','WQ3dL8kKDbWM','W7DYBSoPW5u','W7P7WRTS','WOpdH1pdIe7dLW','W7r/DCo5W5u','W5JcJCoBW4ddVCoLW6TK','W6XoW5FcNG','WO3cH2BdISkG','vx3dQtuVBH7cKmk0W6eaea','DuFcUflcMSky','WPVdSCoxW6vOWRK','W5bsW50Fd8k/W5ZcVa','yMpcIfG','W4HyW5lcPSkMWRC','W77dSmk/FZGWqSorxSoWW4bDWR4','W6nOWQi','WR/dRuxdNmkOExlcOqNcT8oSWOhdOW','WQhdTWa'];_0x3ea4=function(){return _0xfaf700;};return _0x3ea4();}function toHeader(_0x42255f){const _0x3ffd74=_0x13c7,_0x4d0ee6=_0x13c7;return Object[_0x3ffd74(0x173,'xoc(')+'s'](_0x42255f)[_0x3ffd74(0x154,'HAQT')](([_0x2e6d74,_0x2c8903])=>_0x2e6d74+'='+_0x2c8903)[_0x3ffd74(0x14a,'e*xF')](';\x20');}module[_0x2cc457(0x15e,'ol7B')+'s']={'normalizeCookie':normalizeCookie,'toHeader':toHeader};
7
+
8
+ function parseCookieString(raw) {
9
+ const jar = {};
10
+ raw
11
+ .split(";")
12
+ .map((c) => c.trim())
13
+ .filter(Boolean)
14
+ .forEach((pair) => {
15
+ const idx = pair.indexOf("=");
16
+ if (idx === -1) return;
17
+ jar[pair.slice(0, idx).trim()] = pair.slice(idx + 1).trim();
18
+ });
19
+ return jar;
20
+ }
21
+
22
+ function normalizeCookie(input) {
23
+ const trimmed = input.trim();
24
+
25
+ if (trimmed.startsWith("[") || trimmed.startsWith("{")) {
26
+ const parsed = JSON.parse(trimmed);
27
+ const arr = Array.isArray(parsed) ? parsed : [parsed];
28
+ const jar = {};
29
+ for (const c of arr) {
30
+ const key = c.key || c.name;
31
+ if (key && c.value) jar[key] = c.value;
32
+ }
33
+ return jar;
34
+ }
35
+
36
+ if (trimmed.includes("=")) return parseCookieString(trimmed);
37
+
38
+ return { sessionid: trimmed.replace("sessionid=", "") };
39
+ }
40
+
41
+ function toHeader(jar) {
42
+ return Object.entries(jar)
43
+ .map(([k, v]) => `${k}=${v}`)
44
+ .join("; ");
45
+ }
46
+
47
+ module.exports = { normalizeCookie, toHeader };
@@ -4,4 +4,34 @@
4
4
  * Licensed under the Apache License, Version 2.0. See LICENSE and NOTICE.
5
5
  * Original author credit must be retained in all copies and derivatives.
6
6
  */
7
- const _0x42c160=_0xec36,_0x19eefd=_0xec36;(function(_0x30d0f0,_0x51a08d){const _0x32f495=_0xec36,_0x517af4=_0xec36,_0x37fb41=_0x30d0f0();while(!![]){try{const _0x3529e3=parseInt(_0x32f495(0x1ff,'AwcO'))/0x1*(parseInt(_0x517af4(0x208,'UDqw'))/0x2)+-parseInt(_0x32f495(0x1fc,'!3o!'))/0x3+-parseInt(_0x32f495(0x1dd,'FtaB'))/0x4+parseInt(_0x32f495(0x209,'[9Jt'))/0x5*(parseInt(_0x32f495(0x20b,'4tA@'))/0x6)+-parseInt(_0x517af4(0x20c,'4tA@'))/0x7+-parseInt(_0x32f495(0x202,'Ycwf'))/0x8*(-parseInt(_0x517af4(0x1da,'^@aL'))/0x9)+-parseInt(_0x517af4(0x1fe,'%*#&'))/0xa;if(_0x3529e3===_0x51a08d)break;else _0x37fb41['push'](_0x37fb41['shift']());}catch(_0xe08784){_0x37fb41['push'](_0x37fb41['shift']());}}}(_0x39dc,0xc918e));function _0x39dc(){const _0x1e6f0f=['W6mDBLTs','ceyZWRldGa','W7vJBCkMW5VcIq','wrqgW6qUk2rq','WQy+oCo0WPJdJWDhW5H4W7hdKmox','d2rBWOhcGCo6','W6zAW7SnxLtdTW','W6iKWQTomI3cMq3cQCkVfZ3cUW','ovupW7G','n8oEWRmqW67cRbWD','pMiiWRpdRG','WRJcP8kCW7i6Ba','Duy9WQZdGd/cQW','WPKECtxcMcagityFW7xcRvq','W443tCkCo04','WRaeWPVdQSkcmXFdTCoCW77cOHi','W4adWRBcISkG','wCo+WOddRH3cUNZcKaVcUmo2W7S','Dmk8WOqKW6tcKa','t0hdIJ7dVY0','W74NrNTCW68','W4RcK8k2W4e','tImrW5NdLSkTW6BcTJFcPSoMW64F','W7mwW6tdUSoUWRpcSb9KsJfZfq','W6nRzmkNW4FcKa','W4jZzmkG','b8kpCCkuzaW','W60jWRiPW6iu','W75XzmkBbmk8iSovWRvUhSozWQu','W5m/WRpcHa','BNVdQG','W7zcWOVdTa','oCk/DaXI','WRGQemocr8oH','W7qPWPVcS8kN','umkzWRSIW7tcGq','W4G9rmkdpvu','W4i+W5ZdG8oxW7K','x8kZW7xdLWZdGW','W7FdTftdRWVcM8oQ','jeqr','q8kkWQOR','W6KhWOW1W7a','cwbnWONcM8o4','W6FdSmo5WR5IpNOuFwCkaWq','W7yyhCkI','WP53aSozErdcGbhcImoiEtyg','cSkmWOOVW4VcI2u','WQrXW7VcJ1xcMZddSL0IW73cH8k7','WQ/cG1KAkaetEa/cTuG','W4C5W4RdN8ozW70','WOpdRWRcSCo1WOS','WRxdISo3WP3dUmkObmkqmSkjW64FdG','W65vWP0','W7/dNdaiWPldUq'];_0x39dc=function(){return _0x1e6f0f;};return _0x39dc();}const fs=require('fs'),path=require(_0x42c160(0x1f7,'[k*7')),crypto=require(_0x42c160(0x1dc,'!3o!'));function _0xec36(_0x45cefc,_0x10ab43){_0x45cefc=_0x45cefc-0x1da;const _0x39dc2e=_0x39dc();let _0xec36c1=_0x39dc2e[_0x45cefc];if(_0xec36['fVKfbz']===undefined){var _0x4cab02=function(_0x32c1fd){const _0x2dc249='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5b496f='',_0x1edb22='';for(let _0x1582b6=0x0,_0x41e006,_0xf7317e,_0x135e57=0x0;_0xf7317e=_0x32c1fd['charAt'](_0x135e57++);~_0xf7317e&&(_0x41e006=_0x1582b6%0x4?_0x41e006*0x40+_0xf7317e:_0xf7317e,_0x1582b6++%0x4)?_0x5b496f+=String['fromCharCode'](0xff&_0x41e006>>(-0x2*_0x1582b6&0x6)):0x0){_0xf7317e=_0x2dc249['indexOf'](_0xf7317e);}for(let _0x31145b=0x0,_0x242ab0=_0x5b496f['length'];_0x31145b<_0x242ab0;_0x31145b++){_0x1edb22+='%'+('00'+_0x5b496f['charCodeAt'](_0x31145b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1edb22);};const _0x239ebd=function(_0x48e7e8,_0x52aa66){let _0x14c63a=[],_0x276483=0x0,_0x45f2ac,_0x14760c='';_0x48e7e8=_0x4cab02(_0x48e7e8);let _0x3a68a8;for(_0x3a68a8=0x0;_0x3a68a8<0x100;_0x3a68a8++){_0x14c63a[_0x3a68a8]=_0x3a68a8;}for(_0x3a68a8=0x0;_0x3a68a8<0x100;_0x3a68a8++){_0x276483=(_0x276483+_0x14c63a[_0x3a68a8]+_0x52aa66['charCodeAt'](_0x3a68a8%_0x52aa66['length']))%0x100,_0x45f2ac=_0x14c63a[_0x3a68a8],_0x14c63a[_0x3a68a8]=_0x14c63a[_0x276483],_0x14c63a[_0x276483]=_0x45f2ac;}_0x3a68a8=0x0,_0x276483=0x0;for(let _0x4231d9=0x0;_0x4231d9<_0x48e7e8['length'];_0x4231d9++){_0x3a68a8=(_0x3a68a8+0x1)%0x100,_0x276483=(_0x276483+_0x14c63a[_0x3a68a8])%0x100,_0x45f2ac=_0x14c63a[_0x3a68a8],_0x14c63a[_0x3a68a8]=_0x14c63a[_0x276483],_0x14c63a[_0x276483]=_0x45f2ac,_0x14760c+=String['fromCharCode'](_0x48e7e8['charCodeAt'](_0x4231d9)^_0x14c63a[(_0x14c63a[_0x3a68a8]+_0x14c63a[_0x276483])%0x100]);}return _0x14760c;};_0xec36['heVxMd']=_0x239ebd,_0xec36['QVQTEw']={},_0xec36['fVKfbz']=!![];}const _0x287edc=_0x39dc2e[0x0],_0x58e385=_0x45cefc+_0x287edc,_0x5c88d5=_0xec36['QVQTEw'][_0x58e385];return!_0x5c88d5?(_0xec36['fvrsPA']===undefined&&(_0xec36['fvrsPA']=!![]),_0xec36c1=_0xec36['heVxMd'](_0xec36c1,_0x10ab43),_0xec36['QVQTEw'][_0x58e385]=_0xec36c1):_0xec36c1=_0x5c88d5,_0xec36c1;}function generateDeviceId(){const _0x4a4a45=_0x19eefd,_0x6d2cc4=_0x42c160,_0x44ed14={'DgZrK':_0x4a4a45(0x203,'FtaB'),'FiLJb':_0x6d2cc4(0x1f6,'^@aL')};return _0x6d2cc4(0x204,'&q(q')+'d-'+crypto[_0x4a4a45(0x1f1,'[k*7')+_0x6d2cc4(0x1e3,'Ycwf')](_0x44ed14[_0x6d2cc4(0x206,'^@aL')])[_0x4a4a45(0x1f9,'z6@b')](crypto['random'+_0x4a4a45(0x1ed,'jGXS')]())[_0x6d2cc4(0x207,'[9Jt')](_0x44ed14[_0x6d2cc4(0x1de,'[rNc')])['slice'](0x0,0x10);}function loadOrCreate(_0x34854d,_0x5ddc80){const _0x366ea9=_0x19eefd,_0x12198a=_0x42c160,_0x5aceb3={'jHATk':_0x366ea9(0x20d,'^@aL')};if(fs[_0x12198a(0x1f4,'gZtL')+_0x366ea9(0x1e7,'[9Jt')](_0x34854d))try{const _0x577bc7=JSON[_0x366ea9(0x1f8,'T]Dj')](fs['readFi'+_0x366ea9(0x210,'IK4#')](_0x34854d,_0x5aceb3[_0x366ea9(0x205,'cDUa')]));if(_0x577bc7[_0x12198a(0x1e8,'mPH9')+'Id']&&_0x577bc7[_0x366ea9(0x1fb,'Rd0l')])return _0x577bc7;}catch(_0x5b9306){}const _0x1d82c3={'deviceId':_0x5ddc80?_0x12198a(0x200,'8qwp')+'d-'+_0x5ddc80[_0x366ea9(0x1e1,'ugDH')+'e'](/-/g,'')[_0x12198a(0x1e9,'T]Dj')+_0x366ea9(0x20f,'^@aL')]()[_0x366ea9(0x1ee,'70SA')](0x0,0x10):generateDeviceId(),'uuid':_0x5ddc80?_0x5ddc80[_0x12198a(0x1ef,'TcoI')+_0x366ea9(0x1f0,'[rNc')]():crypto[_0x366ea9(0x1e6,'[9Jt')+_0x12198a(0x1eb,'[rNc')]()};try{fs[_0x12198a(0x1e0,'W4y&')+_0x366ea9(0x1ec,'RW3@')](path[_0x366ea9(0x1f3,'8qwp')+'e'](_0x34854d),{'recursive':!![]}),fs[_0x366ea9(0x1e2,'cDUa')+_0x12198a(0x201,'m40c')+'c'](_0x34854d,JSON[_0x366ea9(0x20a,'z6@b')+'ify'](_0x1d82c3,null,0x2));}catch(_0x37925c){}return _0x1d82c3;}module[_0x42c160(0x1f2,'!3o!')+'s']={'loadOrCreate':loadOrCreate,'generateDeviceId':generateDeviceId};
7
+
8
+ const fs = require("fs");
9
+ const path = require("path");
10
+ const crypto = require("crypto");
11
+
12
+ function generateDeviceId() {
13
+ return `android-${crypto.createHash("md5").update(crypto.randomUUID()).digest("hex").slice(0, 16)}`;
14
+ }
15
+
16
+ function loadOrCreate(filePath, igDid) {
17
+ if (fs.existsSync(filePath)) {
18
+ try {
19
+ const saved = JSON.parse(fs.readFileSync(filePath, "utf8"));
20
+ if (saved.deviceId && saved.uuid) return saved;
21
+ } catch (_) {}
22
+ }
23
+
24
+ const identity = {
25
+ deviceId: igDid ? `android-${igDid.replace(/-/g, "").toLowerCase().slice(0, 16)}` : generateDeviceId(),
26
+ uuid: igDid ? igDid.toLowerCase() : crypto.randomUUID()
27
+ };
28
+
29
+ try {
30
+ fs.mkdirSync(path.dirname(filePath), { recursive: true });
31
+ fs.writeFileSync(filePath, JSON.stringify(identity, null, 2));
32
+ } catch (_) {}
33
+
34
+ return identity;
35
+ }
36
+
37
+ module.exports = { loadOrCreate, generateDeviceId };
@@ -4,4 +4,145 @@
4
4
  * Licensed under the Apache License, Version 2.0. See LICENSE and NOTICE.
5
5
  * Original author credit must be retained in all copies and derivatives.
6
6
  */
7
- const _0x42dd24=_0x47ee,_0x351b19=_0x47ee;(function(_0x58304a,_0x101ea4){const _0x155c70=_0x47ee,_0x58cfee=_0x47ee,_0x32b052=_0x58304a();while(!![]){try{const _0x47cc38=parseInt(_0x155c70(0x28a,'ZFst'))/0x1*(parseInt(_0x58cfee(0x24d,'2O%q'))/0x2)+-parseInt(_0x58cfee(0x266,'#Tj('))/0x3+-parseInt(_0x155c70(0x24e,'WQ#Y'))/0x4+parseInt(_0x58cfee(0x25c,'3)Dj'))/0x5*(parseInt(_0x58cfee(0x289,'njXp'))/0x6)+-parseInt(_0x58cfee(0x222,'ZFst'))/0x7+parseInt(_0x155c70(0x27d,'njXp'))/0x8*(-parseInt(_0x155c70(0x25b,'GxSm'))/0x9)+-parseInt(_0x58cfee(0x258,'$SCh'))/0xa*(-parseInt(_0x58cfee(0x25e,'3di#'))/0xb);if(_0x47cc38===_0x101ea4)break;else _0x32b052['push'](_0x32b052['shift']());}catch(_0x835258){_0x32b052['push'](_0x32b052['shift']());}}}(_0x2ad3,0x26825));const USERNAME_RE=/@([A-Za-z0-9._]{1,30})/g;class EventNormalizer{constructor(_0xb85a9a){const _0x902e2=_0x47ee,_0x44dca1=_0x47ee;this[_0x902e2(0x282,'GxSm')]=_0xb85a9a,this['_reply'+_0x44dca1(0x203,'9&kn')]=new Map();}async['_findR'+'eply'](_0x50465b,_0x4b6232){const _0x228d85=_0x47ee,_0x111672=_0x47ee,_0x20b748={'ZGdkD':function(_0x463f10,_0x20da8c){return _0x463f10(_0x20da8c);},'yMekJ':function(_0xf50d9,_0x373306){return _0xf50d9!==_0x373306;},'KCOUr':'OViKK'};if(!_0x4b6232)return null;const _0x5653e=_0x50465b+':'+_0x4b6232;if(this[_0x228d85(0x224,'3)Dj')+_0x228d85(0x293,'&vO0')][_0x228d85(0x244,'Nefj')](_0x5653e))return this[_0x111672(0x23b,')z6D')+_0x228d85(0x1e1,'^9hJ')][_0x228d85(0x245,'$SCh')](_0x5653e);try{const _0x96ebf4=await this[_0x111672(0x214,'$9re')][_0x111672(0x297,'7uah')][_0x228d85(0x223,'njXp')+_0x228d85(0x1ef,'l%Yx')+_0x228d85(0x273,'2O%q')](_0x20b748[_0x228d85(0x20c,'L9Fj')](String,_0x50465b),0x32);for(const _0x51897e of _0x96ebf4){const _0x3bd4b2=_0x51897e[_0x228d85(0x287,'FLHJ')+'d']||_0x51897e[_0x228d85(0x256,'0&f$')+_0x111672(0x253,'ZFst')];if(_0x3bd4b2)this[_0x111672(0x1f9,'#pDI')+_0x111672(0x257,'$SCh')][_0x111672(0x249,'GxSm')](_0x50465b+':'+_0x3bd4b2,_0x51897e);}return this[_0x111672(0x29c,'9sR5')+_0x228d85(0x257,'$SCh')][_0x228d85(0x281,'L9Fj')](_0x5653e)||null;}catch(_0x30571e){if(_0x20b748[_0x111672(0x270,'9agz')](_0x20b748[_0x228d85(0x206,'eMUu')],_0x20b748[_0x228d85(0x1fb,'oT2P')]))this[_0x111672(0x221,'2O%q')][_0x228d85(0x1ee,'Ol*q')+'erThre'+'ad'](_0x29e54b[_0x111672(0x1f3,'Nefj')+_0x228d85(0x1fd,'2O%q')],_0x219bd8);else return null;}}async[_0x42dd24(0x243,'DYs[')+_0x42dd24(0x20d,'k5[@')+_0x351b19(0x225,'k5[@')](_0x28ecff){const _0x57c27d=_0x351b19,_0x576bc0=_0x42dd24,_0x1f35b6={'PKzya':function(_0xe0debb,_0x187468){return _0xe0debb(_0x187468);}};if(typeof this[_0x57c27d(0x277,'h*F#')]['_resol'+_0x576bc0(0x1ea,'7uah')+_0x576bc0(0x1f0,'WxxW')+_0x576bc0(0x290,'L9Fj')]===_0x576bc0(0x21a,'njXp')+'on')return this[_0x57c27d(0x231,'1sBK')][_0x576bc0(0x288,'XwOA')+_0x576bc0(0x286,'$9re')+'ionsOf'+_0x576bc0(0x210,'oLjn')](_0x28ecff);const _0x411f2b={},_0x388ca5=[...new Set((_0x28ecff[_0x576bc0(0x284,'i7WQ')](USERNAME_RE)||[])[_0x57c27d(0x24c,'SI!1')](_0x31f9d9=>_0x31f9d9[_0x576bc0(0x29a,'3di#')](0x1)))];for(const _0x250c87 of _0x388ca5){try{const _0x445787=await this[_0x576bc0(0x216,'HE9P')][_0x576bc0(0x29e,'^9hJ')][_0x57c27d(0x227,'9agz')+_0x576bc0(0x28c,'Eu9v')+'yUsern'+'ame'](_0x250c87);if(_0x445787)_0x411f2b[_0x1f35b6[_0x57c27d(0x2a0,'U5Hx')](String,_0x445787['pk']||_0x445787['id'])]=_0x445787[_0x57c27d(0x208,'3di#')+'me'];}catch(_0x4fa73d){}}return _0x411f2b;}async[_0x42dd24(0x1ed,'z5H!')+_0x42dd24(0x218,'2O%q')](_0x1476ec){const _0x48c0eb=_0x351b19,_0x22afb5=_0x42dd24,_0x3a3809={'AoOsn':_0x48c0eb(0x29b,'WQ#Y'),'vjciK':function(_0x168e94,_0x25001e){return _0x168e94(_0x25001e);},'XgyuT':function(_0x21d32f,_0x3de959){return _0x21d32f(_0x3de959);},'JWeql':function(_0x4efc2a,_0xad1934){return _0x4efc2a!==_0xad1934;},'myzUx':_0x48c0eb(0x21d,'1sBK')+'e','RydWx':function(_0x351b6d,_0x1cce1b){return _0x351b6d(_0x1cce1b);},'aGxfe':function(_0x38111e,_0x3a59ab){return _0x38111e===_0x3a59ab;},'NccZo':_0x22afb5(0x251,'$9re'),'kkqDo':function(_0x4cc9a8,_0x286003){return _0x4cc9a8!==_0x286003;},'aobNP':_0x22afb5(0x267,'oT2P'),'mvsIq':function(_0x2f772e,_0x53f210){return _0x2f772e(_0x53f210);},'vckfO':_0x22afb5(0x27e,'eMUu')+'on'};if(!_0x1476ec||_0x1476ec[_0x48c0eb(0x279,'oLjn')]===_0x3a3809[_0x48c0eb(0x205,'z5H!')]){if(!_0x1476ec)return null;return{'type':_0x3a3809[_0x22afb5(0x23e,'FCwU')],'threadID':_0x3a3809[_0x22afb5(0x202,'7uah')](String,_0x1476ec[_0x48c0eb(0x276,'oLjn')+'ID']),'senderID':_0x3a3809[_0x22afb5(0x283,'eMUu')](String,_0x1476ec['author']||''),'author':_0x1476ec[_0x48c0eb(0x29d,'oT2P')]?_0x3a3809[_0x22afb5(0x1e0,'1sBK')](String,_0x1476ec[_0x48c0eb(0x1f5,'E!&s')]):'','messageID':_0x3a3809[_0x48c0eb(0x1e6,'Eu9v')](String,_0x1476ec[_0x48c0eb(0x299,'B0ae')+_0x22afb5(0x24a,'oLjn')]),'body':null,'logMessageType':_0x1476ec[_0x48c0eb(0x26f,'oLjn')+_0x48c0eb(0x20f,'%Oc5')+'pe'],'logMessageData':_0x1476ec[_0x48c0eb(0x1fe,'njXp')+_0x48c0eb(0x23a,'HE9P')+'ta']||{},'isGroup':_0x1476ec[_0x22afb5(0x228,'Eu9v')+'p'],'participantIDs':(_0x1476ec[_0x48c0eb(0x237,'7uah')+_0x48c0eb(0x230,'3)Dj')+'Ds']||[])[_0x22afb5(0x296,'VryT')](String),'timestamp':_0x1476ec[_0x48c0eb(0x226,'1sBK')+_0x48c0eb(0x252,'3)Dj')]||Date[_0x48c0eb(0x236,'&vO0')](),'mentions':{}};}if(_0x3a3809[_0x48c0eb(0x1e2,'Ol*q')](_0x1476ec[_0x22afb5(0x274,'1sBK')],_0x3a3809[_0x48c0eb(0x26e,'i7WQ')]))return null;const _0x421828=_0x3a3809[_0x48c0eb(0x247,'0&f$')](String,_0x1476ec[_0x22afb5(0x1f1,'k5[@')+'ID']),_0x21f408=String(_0x1476ec[_0x22afb5(0x29f,'oT2P')+'ID']||''),_0x22c8b5=_0x1476ec[_0x22afb5(0x1eb,'i7WQ')]||'';let _0x24f743=_0x21f408;try{if(_0x3a3809[_0x22afb5(0x1e7,'WxxW')](_0x22afb5(0x254,'k5[@'),_0x3a3809[_0x22afb5(0x264,'k5[@')])){const _0xccd3fb=await this[_0x48c0eb(0x211,'E!&s')]['api'][_0x48c0eb(0x262,'B0ae')+_0x22afb5(0x23d,'WQ#Y')](_0x21f408);if(_0xccd3fb)_0x24f743=_0xccd3fb[_0x22afb5(0x24f,'3)Dj')+_0x48c0eb(0x1f8,'ZFst')]||_0xccd3fb[_0x22afb5(0x1f2,'#Tj(')+'me']||_0x21f408;}else{const _0x541344=_0x14d034['item_i'+'d']||_0x1f1791[_0x22afb5(0x280,'Ol*q')+'eID'];if(_0x541344)this[_0x48c0eb(0x1fc,'i7WQ')+_0x48c0eb(0x238,'9sR5')][_0x48c0eb(0x204,'3di#')](_0x5dd5e1+':'+_0x541344,_0x3f2827);}}catch(_0x2a6114){}const _0x1793fa={'type':_0x3a3809[_0x22afb5(0x250,'B0ae')],'threadID':_0x421828,'senderID':_0x21f408,'userID':_0x21f408,'messageID':_0x3a3809[_0x48c0eb(0x27f,'2O%q')](String,_0x1476ec[_0x48c0eb(0x1f3,'Nefj')+_0x22afb5(0x24b,'eMUu')]),'body':_0x22c8b5,'senderName':_0x24f743,'mentions':_0x22c8b5[_0x22afb5(0x1ff,'njXp')+'es']('@')?await this[_0x48c0eb(0x232,'Nefj')+_0x48c0eb(0x27a,'GxSm')+_0x22afb5(0x1e8,'XwOA')](_0x22c8b5):{},'attachments':(_0x1476ec[_0x48c0eb(0x22c,'l%Yx')+_0x48c0eb(0x23f,'h*F#')]||[])[_0x22afb5(0x22b,'GxSm')](_0x50b2b9=>({'type':_0x50b2b9[_0x22afb5(0x1fa,'oT2P')],'url':_0x50b2b9[_0x48c0eb(0x207,'#Tj(')],'filename':null,'caption':_0x50b2b9[_0x22afb5(0x263,'9&kn')+'n']||null})),'timestamp':_0x1476ec[_0x22afb5(0x26b,'%Oc5')+_0x22afb5(0x233,'@#wI')]},_0x2c863c=_0x1476ec[_0x22afb5(0x21e,'3GT&')+_0x22afb5(0x217,'9agz')+_0x22afb5(0x239,'i7WQ')]||null;if(_0x2c863c||_0x1476ec[_0x48c0eb(0x1f6,'WQ8x')+_0x48c0eb(0x1e5,'9agz')+_0x48c0eb(0x229,'i7WQ')]){const _0x5026ac=_0x2c863c||await this['_findR'+_0x22afb5(0x28e,'HE9P')](_0x421828,_0x1476ec[_0x48c0eb(0x291,'9sR5')+_0x22afb5(0x1e3,'ZFst')+_0x22afb5(0x28f,'DYs[')]);if(_0x5026ac){if(_0x3a3809[_0x22afb5(0x25a,'B0ae')](_0x3a3809[_0x48c0eb(0x2a2,'9agz')],_0x48c0eb(0x21f,'WQ8x')))this[_0x48c0eb(0x201,'9agz')]=_0x4a3337,this['_reply'+_0x48c0eb(0x292,'9agz')]=new _0x4b2933();else{const _0x57aa2f=_0x3a3809[_0x22afb5(0x20a,'#pDI')](String,_0x5026ac[_0x48c0eb(0x271,'U5Hx')+'ID']||_0x5026ac[_0x22afb5(0x26a,'DYs[')+'d']||_0x5026ac[_0x48c0eb(0x259,'GxSm')+'_fbid']||'');_0x1793fa[_0x48c0eb(0x234,'^9hJ')]=_0x48c0eb(0x215,'HE9P')+_0x22afb5(0x261,'7uah')+'y',_0x1793fa[_0x48c0eb(0x1ec,'$9re')+_0x22afb5(0x21c,'WQ#Y')]={'messageID':_0x3a3809[_0x48c0eb(0x220,'z5H!')](String,_0x5026ac[_0x48c0eb(0x256,'0&f$')+_0x48c0eb(0x21b,'9&kn')]||_0x5026ac['item_i'+'d']||''),'senderID':_0x57aa2f,'body':_0x5026ac[_0x48c0eb(0x2a1,'Eu9v')]||_0x5026ac[_0x48c0eb(0x219,'GxSm')]||'','attachments':(_0x5026ac[_0x22afb5(0x27b,'L9Fj')+'ments']||[])[_0x48c0eb(0x240,'L[LV')](_0x273518=>({'type':_0x273518[_0x22afb5(0x22a,'njXp')],'url':_0x273518[_0x48c0eb(0x27c,'FLHJ')],'filename':null,'caption':_0x273518[_0x22afb5(0x242,'$9re')+'n']||null}))},_0x1793fa['messag'+_0x48c0eb(0x213,'ZFst')][_0x22afb5(0x260,'B0ae')+_0x48c0eb(0x26d,'z5H!')]=_0x5026ac['sender'+'Name']||null;if(!_0x1793fa[_0x22afb5(0x294,'k5[@')+_0x48c0eb(0x269,'3di#')][_0x22afb5(0x248,'E!&s')+_0x48c0eb(0x200,'0&f$')])try{const _0x3d9834=await this['client'][_0x48c0eb(0x298,'#pDI')][_0x48c0eb(0x1e9,'ZFst')+_0x22afb5(0x241,'eMUu')](_0x57aa2f);_0x1793fa[_0x48c0eb(0x255,'^9hJ')+_0x22afb5(0x20e,'z5H!')]['sender'+_0x48c0eb(0x200,'0&f$')]=_0x3d9834?.[_0x22afb5(0x285,'#Tj(')+_0x48c0eb(0x28b,'ck!f')]||_0x3d9834?.['userna'+'me']||_0x57aa2f;}catch(_0x187579){_0x1793fa[_0x48c0eb(0x22f,')z6D')+_0x22afb5(0x25f,'@#wI')][_0x48c0eb(0x265,'SI!1')+_0x22afb5(0x275,'XwOA')]=_0x57aa2f;}}}}return _0x3a3809[_0x48c0eb(0x1e4,'%Oc5')](typeof this['client']['rememb'+_0x48c0eb(0x28d,'L9Fj')+'ad'],_0x3a3809['vckfO'])&&this[_0x48c0eb(0x22e,'U5Hx')][_0x22afb5(0x246,'#pDI')+_0x48c0eb(0x22d,'U5Hx')+'ad'](_0x1793fa[_0x48c0eb(0x25d,'ck!f')+_0x48c0eb(0x1f4,'1sBK')],_0x421828),_0x1793fa;}}function _0x47ee(_0x2de67e,_0x16717e){_0x2de67e=_0x2de67e-0x1e0;const _0x2ad350=_0x2ad3();let _0x47ee9a=_0x2ad350[_0x2de67e];if(_0x47ee['WTvXsO']===undefined){var _0x47cfd2=function(_0x184f3d){const _0xf5ad0f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x417c50='',_0x4a3337='';for(let _0x4b2933=0x0,_0x452404,_0xeae91c,_0x11aae8=0x0;_0xeae91c=_0x184f3d['charAt'](_0x11aae8++);~_0xeae91c&&(_0x452404=_0x4b2933%0x4?_0x452404*0x40+_0xeae91c:_0xeae91c,_0x4b2933++%0x4)?_0x417c50+=String['fromCharCode'](0xff&_0x452404>>(-0x2*_0x4b2933&0x6)):0x0){_0xeae91c=_0xf5ad0f['indexOf'](_0xeae91c);}for(let _0x2c4ccf=0x0,_0x14d034=_0x417c50['length'];_0x2c4ccf<_0x14d034;_0x2c4ccf++){_0x4a3337+='%'+('00'+_0x417c50['charCodeAt'](_0x2c4ccf)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4a3337);};const _0x1d331d=function(_0x1f1791,_0x5dd5e1){let _0x3f2827=[],_0x14e766=0x0,_0x46dce6,_0x17f484='';_0x1f1791=_0x47cfd2(_0x1f1791);let _0x2a600d;for(_0x2a600d=0x0;_0x2a600d<0x100;_0x2a600d++){_0x3f2827[_0x2a600d]=_0x2a600d;}for(_0x2a600d=0x0;_0x2a600d<0x100;_0x2a600d++){_0x14e766=(_0x14e766+_0x3f2827[_0x2a600d]+_0x5dd5e1['charCodeAt'](_0x2a600d%_0x5dd5e1['length']))%0x100,_0x46dce6=_0x3f2827[_0x2a600d],_0x3f2827[_0x2a600d]=_0x3f2827[_0x14e766],_0x3f2827[_0x14e766]=_0x46dce6;}_0x2a600d=0x0,_0x14e766=0x0;for(let _0x390d6e=0x0;_0x390d6e<_0x1f1791['length'];_0x390d6e++){_0x2a600d=(_0x2a600d+0x1)%0x100,_0x14e766=(_0x14e766+_0x3f2827[_0x2a600d])%0x100,_0x46dce6=_0x3f2827[_0x2a600d],_0x3f2827[_0x2a600d]=_0x3f2827[_0x14e766],_0x3f2827[_0x14e766]=_0x46dce6,_0x17f484+=String['fromCharCode'](_0x1f1791['charCodeAt'](_0x390d6e)^_0x3f2827[(_0x3f2827[_0x2a600d]+_0x3f2827[_0x14e766])%0x100]);}return _0x17f484;};_0x47ee['UHqAXx']=_0x1d331d,_0x47ee['OPZXEt']={},_0x47ee['WTvXsO']=!![];}const _0x551579=_0x2ad350[0x0],_0x3cd9f3=_0x2de67e+_0x551579,_0x33b57f=_0x47ee['OPZXEt'][_0x3cd9f3];return!_0x33b57f?(_0x47ee['CjfNgT']===undefined&&(_0x47ee['CjfNgT']=!![]),_0x47ee9a=_0x47ee['UHqAXx'](_0x47ee9a,_0x16717e),_0x47ee['OPZXEt'][_0x3cd9f3]=_0x47ee9a):_0x47ee9a=_0x33b57f,_0x47ee9a;}function _0x2ad3(){const _0x46340b=['WRPoxW','cSoMmq','W7SxW4u','AmoTW5OcWQOt','WR9Qw8opW5m','W6FdUCknW5tcGq','WQnAdmoVc2G','WRZcV8k0nXBdIW','W6ygaq','WQ7cR8kUoXZdIW','bhfqlue','WOhdTwKR','oCo3WReDW50','WODlESo2W58','W4qxcXxdTG','WQpcM8oJcmow','WRWbwJ4aza','W5OBueKH','pmomWRWAW7Ky','WPxdSg47W6C','W47dTLFcK8o3','WO8ciCoC','WR8Wqsihza','hCoZfqhdHmk4','W5xdO0vr','W50HWP3dKmo+dG','ugdcJColW6XQ','WPVcQCoRhmoxga','gmoTn29LeG','W4BdNKhcHSoDta','WPWdW5ieWQby','E8kxDwzrWO8','fN47bIRdIq','WRPLrW','WPCnWQmOeCkT','ecjQkSk+WPu','WP7cHb7dHCo6wbHyW7qs','WRK4ua','W4uvW4NcR8oYcq','WQNcS8kWoG','WPBcICkpcGS','W6JdVKryWRf5','C8kjvG','WRnOzZ8EEG','WRzPyX4oBq','W69UWQFdLa','o8o0WRO2W6mj','hCo8oW3dOq','WQFdGIj9W68','WR9JrG','F2dcSmovW6m','WRtcSCk4WO3dMG','E8kwFa','WRL1v8oEW5Gq','C8k4ySk1WOD2','W7CrW5/cLSoV','W6awfJT1z3/dT8oFWPFdMG','qazWsvK','WP4oW60eWQ9i','w13cMSowW6f/','W4G9t0OqW4K','W4/dGGqsWPC','WPuuWR4LemkR','nSo0WQGEW5T3emkDsmoTpW','WR0huaCyEa','W5mOWOFdHSoXhq','ihbCqd0z','lNLgvJik','pmomWRWEW6Go','F8k6DW','C8kPW6HE','WRLYBHepya','WOhdQGu','W6FdNCknW4RcMwi','WRjjCmoWW6Oq','btFdHatdPIK','cb19dSkC','BhBcM8oXW7u','DCkSE8k/WPT2','W6LLaevmnfrHWRyYWOBdRwe','WRHIDcytEW','EHZdIHZcISoi','WOeeW44s','WQTfBSoMW7Gd','p8o9WQCgW74y','WORdQuOGW4pcLa','W5RdHuu','WQT+CbC','ASkTW6a','hmo4j0zVcq','muH+pfjk','n1zdmu5B','aXddS1nQWQS','tb7dJGlcKSo4','WRXaASoMW6ud','jgKTbItdGG','W5/cHNq','W7mpgbG','q2tcGqxdMYL9WQ1F','W7H0WOu','g8o3kHddG8kV','WR9jcSo3aG','W4tdRuzn','pNrivHGF','mqFdPvbNWRu','n8oXbstdS8olvW','W7ddHSkgW5ZcMG','uGVcPSkuWQ4','AmoCksBdQW','WOrEWRG','WO3cU8kzWR7dHW','W5mLWP7dL8o2bG','D2P0creQ','e3O7','WRldJdK','W6GcW4hcUSoZeG','W7n2WQ7dPSok','WOuDWRKKg8kT','DmkPW6q','W4ZdPYK','WPRcU8kZ','qSovWPW','jmkiumkSWP5MWPu','WRVcUmoDWO/dHINdSg1QWPOXda','qXVdGWdcUCoF','AmoXW5mKWRm','W74sWRVdGCow','rapdNW','WR0CCq','WQy9W7udWOG','W6OtgW7dSSop','W4XQWRNdGSotW6S','WPBdIc4wyq','W6tcNhXoBmo6W6xdJ8kKBG','DmkPW75oWOHJ','BSoJW5G1WQq','nCo4WQCEW5X7lSkcB8osla','evJcMGhcSSouW5/cLCkx','t2tdTcWVsW','W7GXamkFWOi+W49VWRtdK2i','W5VcUwflsMS','DSoTW4CvWQ4g','dSojkGhdMSkG','ySoTW50KWRGr','WOFdGJfHW6pdTa','WQyiW4m7WQ4','xmorWOj+W4W1','omoxkcygW5S4wCkzWOlcQwW','WRFcKmkNfZi','WPy7W77dLSoDW7yaiCog','WQLuv8oCW5Oi','xwT0cceV','W481ruO3W4q','lNyMesNdVhhcVeTSrW','Cg7cKSod','W5RdTvT9WQu','W4xdGqOXWPFdGW','iCovWRy4W4C','j19emevD','hCkaW5SUWPGTW5xdPSkDw8kG','ySkVymkJ','WQTvC8oM','WQGmiSok','W53dHH8zWPpdLa','zSovlJFdTSoB','W49pW6j1tCoTW4uFW5islCkX','W53dLX0z','CCkPW51pWOnL','EZvGq37dMW','W6GCbq','W6GZnbuuC8o4WP7dMW','WPNcH8kzWRVdNca','tSkNA8kVWQe','WOtcQCo1cSoBhq','FsrG','zmkGW7LpWOnL','WONcMmkuWRhdOW','W5RdRvvlWRu','AmkrFhHGWOa','W4yHWQpdHSoXhq','W7qAdd1FoG','WRKFkSoCk8oS','W64/oeznB8o0WRJdPmkeW48','W69SdernvZj0WQuzWOy','q2ZdOG','WPhdK2m0W4pcOW','FZnasM/dLG','kgvdsG','rvf1','Fc19thG','WO5ngCoZdNq','g8o5WRa7W6G','W5v6WPhdICkV','WOuoW5msWQbB','W6KFo8kXWRjcW5xcVCkvWQGqcW'];_0x2ad3=function(){return _0x46340b;};return _0x2ad3();}module[_0x351b19(0x209,'2O%q')+'s']=EventNormalizer;
7
+
8
+ // Turns a raw Instagram inbox event into the FCA / GoatBot-Pro event shape that
9
+ // commands expect: senderID, threadID, messageID, body, mentions, messageReply,
10
+ // type, attachments, senderName.
11
+
12
+ const USERNAME_RE = /@([A-Za-z0-9._]{1,30})/g;
13
+
14
+ class EventNormalizer {
15
+ constructor(client) {
16
+ this.client = client;
17
+ this._replyCache = new Map(); // threadID -> { itemId: item }
18
+ }
19
+
20
+ async _findReply(threadID, itemID) {
21
+ if (!itemID) return null;
22
+ const key = `${threadID}:${itemID}`;
23
+ if (this._replyCache.has(key)) return this._replyCache.get(key);
24
+ try {
25
+ const items = await this.client.api.getThreadHistory(String(threadID), 50);
26
+ for (const item of items) {
27
+ const id = item.item_id || item.messageID;
28
+ if (id) this._replyCache.set(`${threadID}:${id}`, item);
29
+ }
30
+ return this._replyCache.get(key) || null;
31
+ } catch (_) {
32
+ return null;
33
+ }
34
+ }
35
+
36
+ // Resolves @username mentions to a { userID: name } map. Instagram text
37
+ // messages carry no structured mention list, and username lookups rate-limit
38
+ // (429) for web sessions, so resolve against the users the client already
39
+ // learned from the inbox / thread views.
40
+ async _resolveMentions(body) {
41
+ if (typeof this.client._resolveMentionsOffline === "function") {
42
+ return this.client._resolveMentionsOffline(body);
43
+ }
44
+ const mentions = {};
45
+ const names = [...new Set((body.match(USERNAME_RE) || []).map((m) => m.slice(1)))];
46
+ for (const username of names) {
47
+ try {
48
+ const user = await this.client.api.getUserInfoByUsername(username);
49
+ if (user) mentions[String(user.pk || user.id)] = user.username;
50
+ } catch (_) {}
51
+ }
52
+ return mentions;
53
+ }
54
+
55
+ async normalize(raw) {
56
+ // Instagram system activity (member added/removed, name/image change) is
57
+ // synthesized by the inbox poller as an already-shaped "event" — GoatBot's
58
+ // handlerEvent/onEvent dispatch on event.type === "event".
59
+ if (!raw || raw.type === "event") {
60
+ if (!raw) return null;
61
+ return {
62
+ type: "event",
63
+ threadID: String(raw.threadID),
64
+ senderID: String(raw.author || ""),
65
+ author: raw.author ? String(raw.author) : "",
66
+ messageID: String(raw.messageID),
67
+ body: null,
68
+ logMessageType: raw.logMessageType,
69
+ logMessageData: raw.logMessageData || {},
70
+ isGroup: raw.isGroup,
71
+ participantIDs: (raw.participantIDs || []).map(String),
72
+ timestamp: raw.timestamp || Date.now(),
73
+ mentions: {}
74
+ };
75
+ }
76
+ if (raw.type !== "message") return null;
77
+
78
+ const threadID = String(raw.threadID);
79
+ const senderID = String(raw.senderID || "");
80
+ const body = raw.body || "";
81
+
82
+ let senderName = senderID;
83
+ try {
84
+ const u = await this.client.api.getUserInfo(senderID);
85
+ if (u) senderName = u.full_name || u.username || senderID;
86
+ } catch (_) {}
87
+
88
+ const event = {
89
+ type: "message",
90
+ threadID,
91
+ senderID,
92
+ userID: senderID,
93
+ messageID: String(raw.messageID),
94
+ body,
95
+ senderName,
96
+ mentions: body.includes("@") ? await this._resolveMentions(body) : {},
97
+ attachments: (raw.attachments || []).map((a) => ({
98
+ type: a.type,
99
+ url: a.url,
100
+ filename: null,
101
+ caption: a.caption || null
102
+ })),
103
+ timestamp: raw.timestamp
104
+ };
105
+
106
+ // Reply context. The client already resolves the replied-to message from the
107
+ // thread-detail query (raw.repliedToMessage); fall back to a history lookup
108
+ // only when it is absent.
109
+ const replied = raw.repliedToMessage || null;
110
+ if (replied || raw.repliedToItemId) {
111
+ const reply = replied || (await this._findReply(threadID, raw.repliedToItemId));
112
+ if (reply) {
113
+ const senderId = String(reply.senderID || reply.user_id || reply.sender_fbid || "");
114
+ event.type = "message_reply";
115
+ event.messageReply = {
116
+ messageID: String(reply.messageID || reply.item_id || ""),
117
+ senderID: senderId,
118
+ body: reply.body || reply.text || "",
119
+ attachments: (reply.attachments || []).map((a) => ({
120
+ type: a.type,
121
+ url: a.url,
122
+ filename: null,
123
+ caption: a.caption || null
124
+ }))
125
+ };
126
+ event.messageReply.senderName = reply.senderName || null;
127
+ if (!event.messageReply.senderName) {
128
+ try {
129
+ const u = await this.client.api.getUserInfo(senderId);
130
+ event.messageReply.senderName = u?.full_name || u?.username || senderId;
131
+ } catch (_) {
132
+ event.messageReply.senderName = senderId;
133
+ }
134
+ }
135
+ }
136
+ }
137
+
138
+ // Commands react to the inbound message by id (setMessageReaction), so the
139
+ // client must know which thread it belongs to.
140
+ if (typeof this.client.rememberThread === "function") {
141
+ this.client.rememberThread(event.messageID, threadID);
142
+ }
143
+
144
+ return event;
145
+ }
146
+ }
147
+
148
+ module.exports = EventNormalizer;