@eryxenx/insta-chat 2.0.1 → 2.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +95 -8
- package/index.js +105 -1
- package/module/login.js +51 -1
- package/package.json +9 -2
- package/src/api/action/getAppState.js +19 -1
- package/src/api/action/getCookies.js +7 -1
- package/src/api/action/getCurrentUserID.js +7 -1
- package/src/api/action/setOptions.js +8 -1
- package/src/api/messaging/editMessage.js +19 -1
- package/src/api/messaging/markAsRead.js +7 -1
- package/src/api/messaging/resolvePhotoUrl.js +8 -1
- package/src/api/messaging/sendMessage.js +45 -1
- package/src/api/messaging/sendMessageSync.js +8 -1
- package/src/api/messaging/sendTypingIndicator.js +7 -1
- package/src/api/messaging/setMessageReaction.js +19 -1
- package/src/api/messaging/shareContact.js +19 -1
- package/src/api/messaging/unsendMessage.js +16 -1
- package/src/api/realtime/getInbox.js +7 -1
- package/src/api/realtime/listen.js +7 -1
- package/src/api/realtime/stopListening.js +7 -1
- package/src/api/threads/getThreadHistory.js +16 -1
- package/src/api/threads/getThreadInfo.js +59 -1
- package/src/api/threads/getThreadList.js +22 -1
- package/src/api/users/getUID.js +12 -1
- package/src/api/users/getUserInfo.js +37 -1
- package/src/api.js +253 -1
- package/src/app/InstaClient.js +352 -1
- package/src/app/InstaContext.js +46 -1
- package/src/app/createFcaClient.js +59 -1
- package/src/app/loadApiMethods.js +30 -1
- package/src/constants.js +53 -1
- package/src/cookies.js +41 -1
- package/src/deviceIdentity.js +31 -1
- package/src/events/normalizeEvent.js +142 -1
- package/src/http.js +381 -1
- package/src/messageContent.js +73 -1
- package/src/methods/inbox.js +464 -1
- package/src/methods/media.js +218 -1
- package/src/methods/message.js +115 -1
- package/src/methods/reactions.js +52 -1
- package/src/methods/thread.js +96 -1
- package/src/methods/typing.js +35 -1
- package/src/methods/user.js +33 -1
- package/src/session.js +94 -1
- package/src/threadDetail.js +36 -1
- package/src/utils/antiSuspension.js +269 -0
- package/src/utils/dataDir.js +11 -0
- package/src/utils/errors.js +106 -0
- package/src/utils/format.js +38 -1
- package/src/utils/messageStyle.js +57 -1
- package/src/utils/sessionGuard.js +93 -0
package/src/api.js
CHANGED
|
@@ -4,4 +4,256 @@
|
|
|
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 _0x4cbb(_0x218942,_0x5c5111){_0x218942=_0x218942-0x73;const _0xa679b=_0xa679();let _0x4cbb01=_0xa679b[_0x218942];if(_0x4cbb['QLZDUY']===undefined){var _0x2c56ca=function(_0x2fd0d1){const _0x16e3cb='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x135f1d='',_0x2fde77='';for(let _0x283488=0x0,_0x4326a0,_0xdcacb8,_0x1da7d6=0x0;_0xdcacb8=_0x2fd0d1['charAt'](_0x1da7d6++);~_0xdcacb8&&(_0x4326a0=_0x283488%0x4?_0x4326a0*0x40+_0xdcacb8:_0xdcacb8,_0x283488++%0x4)?_0x135f1d+=String['fromCharCode'](0xff&_0x4326a0>>(-0x2*_0x283488&0x6)):0x0){_0xdcacb8=_0x16e3cb['indexOf'](_0xdcacb8);}for(let _0x120a3c=0x0,_0x423054=_0x135f1d['length'];_0x120a3c<_0x423054;_0x120a3c++){_0x2fde77+='%'+('00'+_0x135f1d['charCodeAt'](_0x120a3c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2fde77);};const _0x449735=function(_0x5edbce,_0x326b60){let _0x5a7cfb=[],_0x57ed99=0x0,_0x259bee,_0x87972f='';_0x5edbce=_0x2c56ca(_0x5edbce);let _0x28798c;for(_0x28798c=0x0;_0x28798c<0x100;_0x28798c++){_0x5a7cfb[_0x28798c]=_0x28798c;}for(_0x28798c=0x0;_0x28798c<0x100;_0x28798c++){_0x57ed99=(_0x57ed99+_0x5a7cfb[_0x28798c]+_0x326b60['charCodeAt'](_0x28798c%_0x326b60['length']))%0x100,_0x259bee=_0x5a7cfb[_0x28798c],_0x5a7cfb[_0x28798c]=_0x5a7cfb[_0x57ed99],_0x5a7cfb[_0x57ed99]=_0x259bee;}_0x28798c=0x0,_0x57ed99=0x0;for(let _0x504dc7=0x0;_0x504dc7<_0x5edbce['length'];_0x504dc7++){_0x28798c=(_0x28798c+0x1)%0x100,_0x57ed99=(_0x57ed99+_0x5a7cfb[_0x28798c])%0x100,_0x259bee=_0x5a7cfb[_0x28798c],_0x5a7cfb[_0x28798c]=_0x5a7cfb[_0x57ed99],_0x5a7cfb[_0x57ed99]=_0x259bee,_0x87972f+=String['fromCharCode'](_0x5edbce['charCodeAt'](_0x504dc7)^_0x5a7cfb[(_0x5a7cfb[_0x28798c]+_0x5a7cfb[_0x57ed99])%0x100]);}return _0x87972f;};_0x4cbb['YxpaqD']=_0x449735,_0x4cbb['yyknEI']={},_0x4cbb['QLZDUY']=!![];}const _0x15146d=_0xa679b[0x0],_0x742949=_0x218942+_0x15146d,_0x14f5c8=_0x4cbb['yyknEI'][_0x742949];return!_0x14f5c8?(_0x4cbb['pxfCCI']===undefined&&(_0x4cbb['pxfCCI']=!![]),_0x4cbb01=_0x4cbb['YxpaqD'](_0x4cbb01,_0x5c5111),_0x4cbb['yyknEI'][_0x742949]=_0x4cbb01):_0x4cbb01=_0x14f5c8,_0x4cbb01;}const _0x474e11=_0x4cbb,_0x1e34ed=_0x4cbb;(function(_0x103da1,_0x4c9ee0){const _0x4f89d6=_0x4cbb,_0x3317ce=_0x4cbb,_0x5137c9=_0x103da1();while(!![]){try{const _0x37d7e1=-parseInt(_0x4f89d6(0xbf,'U3Q1'))/0x1*(-parseInt(_0x4f89d6(0xda,'j6WY'))/0x2)+parseInt(_0x4f89d6(0x182,'UI]2'))/0x3+-parseInt(_0x3317ce(0x139,'j6WY'))/0x4+-parseInt(_0x4f89d6(0x81,'Z!5j'))/0x5+parseInt(_0x4f89d6(0x196,'k%E]'))/0x6+parseInt(_0x3317ce(0xc5,'ycoA'))/0x7*(parseInt(_0x3317ce(0x140,'Cvm!'))/0x8)+-parseInt(_0x3317ce(0x83,'b^i3'))/0x9;if(_0x37d7e1===_0x4c9ee0)break;else _0x5137c9['push'](_0x5137c9['shift']());}catch(_0x7bc7c){_0x5137c9['push'](_0x5137c9['shift']());}}}(_0xa679,0x432b8));const HttpClient=require(_0x474e11(0x135,'k[HE')),{normalizeCookie}=require('./cook'+_0x1e34ed(0x105,'aC7@')),{EP}=require(_0x474e11(0x82,'Cvm!')+_0x474e11(0x14c,'VRF3')),deviceIdentity=require(_0x1e34ed(0xed,'U3Q1')+_0x474e11(0x158,'rAAQ')+_0x1e34ed(0xdb,'I4uR')),fs=require('fs'),path=require(_0x1e34ed(0xd6,'N64X')),MessageMethods=require(_0x1e34ed(0x7e,'9KjW')+_0x1e34ed(0x8f,'VRF3')+_0x1e34ed(0x115,'HnFI')),ReactionMethods=require(_0x474e11(0x77,'I4uR')+'ods/re'+_0x474e11(0x1d7,'Cvm!')+'s'),TypingMethods=require(_0x1e34ed(0x13a,'i9Yi')+_0x1e34ed(0x133,'hMgz')+_0x1e34ed(0x17a,'P%vq')),ThreadMethods=require('./meth'+_0x1e34ed(0x9d,'IY4^')+_0x1e34ed(0xcf,'76Y]')),UserMethods=require(_0x1e34ed(0x13a,'i9Yi')+_0x1e34ed(0x12b,'rAAQ')+'er'),InboxMethods=require(_0x1e34ed(0x14d,'CC%H')+_0x1e34ed(0x162,'rAAQ')+_0x474e11(0x1a6,'ycoA')),MediaMethods=require(_0x474e11(0x1bf,')8Bt')+_0x474e11(0xbc,'c8#U')+'dia');function _0xa679(){const _0x43920a=['ffBdIIhcJK4','cHOer8owiq','gMTtmSk3','WQBcMCkkj8osiq','hCkgW6WSFrBcNd3dHrtcVXldVW','eL/dLtC','asT5WRZdUh3cT2pcSCokW7NcGq','fgbfcmk8WQW','DL0BWPVcOa','W5ucoq','W61CFxZdGL8','W5tcL8oy','g0DzCWpdOdNdHcG','tWvbzG','WRRcGCkqW5ZdRdi','rN47W77cQYm','WQmBD8konSkh','m086y1JdMG','W7VcUMRcR1q9','W6JdK1S','otGAbd7cUI06WORdPrWH','W4ddGSotuGzH','WPldLKTa','W53cISonvYjV','WOJcRCkOtCoz','kCo2WPD9W7tdKq','WRBcI8k3kwS','WQBcLCkqtSok','W7VcUMBcO1yX','rdz+WPO','W7pdJgpcPq','aSoKWQ5mWOZdNW','xcn+WOi','WRJdO8kmm8oyW45j','WR3cJCkkW4e','wmozla','DCo5WOvXW64','W50eWR/cHYZcMq','A0GeWPZcPfa','W7TaBwa','W6xdO8o0wmkHmG','W4tcGmkuqq','C8kCB8o5','qhOKW7S','WRCBySkOpCkD','CbHQkaJcM0xcMCo6rSkcW4BcNa','W4CcWRtcPq7cNG','W7zcW6FcTCkyWQy','pMbclSkUWQ4','WPpdLLLxWRWA','W5pcHqhdUq','w8oelJVcRrS','hdqTW63cVcy','W6tcUMpcQum','rZjKWPBcQCol','pmonnK3dHLe','Cmk+WOTcmq','WPlcK15mWRbv','jCoLgCkWmxy','W7BdNxpcVbC','cWRcSCoYdcO','hHOEASoQjG','W4hdVYCzWQy','abOuz8oz','WQhcICknEa','jmoTg8kT','WOxdGfLnWROB','lSoGWPnSW4NdVa','uIvLWP/dN8oh','aG8ez8oxlq','pSo3WR9W','W6NdLvquiW','W7RcUMNcPa','WPVcMmkyA8ollq','egPEnSkMWQW','WPJcUSk2auu','oNHY','W5eeomoolG','x8oroW','W5FcLSkd','W48eoCod','tamouhxdUW','Ff4BWPRcQru','wbqaxIhdSq','u8k/xue2DW','lSoGWPnSW67dMq','tXHrCW','W5y4aG','gaWvFmowiG','yKGbWOBcPLi','W50UxSkmp1O','W65bW5FcKCk0','r8kPshmG','W4JcHrddPWBcQW','W4NcKbJdUG','W7VcUMBcPa','WO4sWQtcKaZcLa','eSoWWRHGWPO','hhvfnmkGWQC','E0uaWPdcPLe','hvvql8kUWQq','W5ChWQ0U','W4VcIKhcUuW','qwGOW6/cRW','g8oiWQXj','W7hdIIrV','AmkOWOPz','W5OyWQhcIHlcLG','W7xdK1atfSkf','fe7cMe5gpa','WRhcHNvJW5L4q8oip1ldTSoltG','fflcJu9n','rYqtuq','W7RcUMNcPhiW','W57cL8kcheq0','W6JdNwtcPH/dPq','WPVcTSk2seNcVa','WQaBBa','W5aRWQe4','m2RcRKby','w8kUrG','m8oNWOjU','W7NdOSoPe8kfiW','bM5KW4Di','DCk8WP5QW7tdIa','WQ3cU8kzh3m','DCkCCSoQW73cQq','tHqxvdBdVq','WRZcQ8o7qmkqWRHVctuwiCko','WQaCzxFdGHC','z1KgWOu','WQZcGmkgW7ddUG','W5BcPaFdPq','nuiUDfZdJq','oN5KW7Dowa','WOfTqSoqDqnhW6HYWQ/cRmoC','a2XFoG','WRBdTCocWQuima','hYSFsCokla','W7JcNCkcr1aG','uZj+WRhcISow','W4JcLaBdUGBcQG','WRFdPmogWQ8YoW','W47cGHddUYBcGq','oNnJW5Pd','yZy+BHddIW','dfRcHYLo','aSo8WRbrWPe','is9hvhRdQG','W6ldRSoOwCkqpG','gfXKW4jl','tmo1mdlcSc0','W4JcLbVdRtNcRa','WQ/cGCkm','pXRcTe8aga','WRVcNmkukmomiq','i1rNW5Dq','sSouldhcVGS','WP9rW6pdLuxdH23dLwddJSoFyW','W5lcLSk4v1qP','WQdcMmkj','WOBcUSkHg03cUG','W57cVmkEWQdcJ8kL','W7lcPSkJyxqj','FCoooZxcQWO','WQS8ESkplCkq','WRFdTCoqWRiYoG','W7tdPvyz','W5pdIvOp','W57cL8kchfGP','W5KplW','Fmk4WPTcp8o0','W5qvkmox','W54om8otpgq','W7ldM8ozWQNcRCorWOddISkblSoMnmo5','tqnmBq','WPVcJ8kZgKxcUa','E0ehWRJcTq','W4ShW6GYW5jO','z2LovfRdQG','W6FdKsyY','b1VdJbdcH1G','WQVcM8kzW6K','W67cUNm','W5JcPSkuWRZcSCkL','zmo/WODKlW','k01MWPKl','W4i4amkknq','W5NcH8kfqW','bmoqpg7dHq','W6JcUdRdHZdcJa','j1VcRHTzW6K','W4zdW4VcGW','oGdcV1O','W6NcMmkbEmownG','WPFdQConWQi','cCosW6ub','stXeCv7dLG','EmkeDmogW5O','agbFoCkzWQa','W7pdPmoZD8kE','pHLgW4xdTqtcVSouCCoLW7fiWRq','W7JdTSkQfSouW6K','W58Wn8kui0a','W7/dQmoZsa','W6jAE2BdKXe','W6pdT8kUg8ouW6K','WP3cQ8kMga','uCoXoYFcRa4','W4NcLbtdRsNcRa','WQxcI8kFW5ZdTsK','rZj5WOhcLSol','mL49y0K','mSo0WQL6W6NdNa','ihHVW5fRvG','W441WOKKW7i','Dmk4WOPPjCo8','WOnTqmosFGDTW6PhWRdcSmoz','uWrxzL7dNW','x34TW6hcQW','awbFkCkAWRO','lmoPW5KszCkOkd3cTmoOwCkcrq','WQSkBmkyk8kt','W6JcU2pcLve9','W5zcW6FcTq','W6xdTryUWQK','W7lcGCkuuKuI','lLOOEfldHW','e1VdLIdcV0i','t8obWRK','ceRdJdq','WRCBBCk+cmkA','FeGCWPhcKvO','smotWRjAoea','W7PCEMS','qx4NW6ZcHIy','W4CpWRpcJaq','sb4z','WPpdLKraWPGq','W6xdO8oPt8kynq','WQKBz8kZpW','W5ddLJaYWOaS','aWVcQ8o1icG','W6xdGmoZumku','W504a8kvlvi','W4PFW6dcQmkM','W5byW63cQCkoWRu','W6hdHISKWPu7','W67cUNpcIuW+','qmkYw3eKDG','W48rWQW1W5W','agbFoCkdWQa','WRenzSkOf8kX','W6/dIxmsiCkd','WPlcUSkMie3cPG','W5FdGSosCcjH','W5nEW67cQ8kxWRO','W6RdLYy','W6tdG8kQb8obW60','ie1W','qCotWRL1kW','WQ7cISkEW6RdVSkh','WOxdOmkwWRFcLCkS','g8oyW6u','aGSFsmokla','W6NdQZa7','cH3cH8oZmIO','WPldLKDlWQmq','cqVcRmoplYK','m8oTeSkxd3e','qx4NW6ZcNcy','W4ddJSoswabV','ySoseg/dSw1m','mL49y0NdVq','W67dQvOonCkn','tCozkGFcUHW','u8oDld/cJaO','W4xcISkbwL8G','bCoPWRfvWQ7dKq','tGHaBuVdKG','W6pdMZyEWO8U','AMrdrq','W5eel8oulNC','wYnL','W6xdO8o0wmkNmW','W5Gem8oLoNy','W5e+bmkpi1S','rZjKWPBcR8om','acOcyG','WQhdO8oqWQG0oW','o8oPeSk3aa','WRawCCk/p8kr','g3fflq','W4pcLSkbx0Gt','WQtcMmkDyCoE','W7zgWPntg8oI','B8k+WO5p','W6FdI8ktW53dJJm','rCorWOj4i0S','EL4xWOFcJNe','j0FcPfzmda','rmocWQLS','W4Kpl8ocixq','jCokh8kYba','aSkzWRb5pKC','B8k+WOjejSo/','i8ohi3RdRfa','DW/dU34DWRu6r2ShwmkqrW','WP5Ye8kjiKy','WQ7cGcddOu7cUH3cRtCeWQ7dQmo1','W5RdSSk5fmonW7m','W5yCWRO5W5X4','gCoyW6ernCkP','AmkOWOPzgCoE','W5erWRWpW5HV','WQZcJSkkyCoqkG','W6ddMZq+WOiT','WRhcISkaW7BdQCkf','oaFcSfal','ueeDWPtcO2y','W4WalSoukG','gCo5WQ0kWO/dNq','yhrfD3ZdRq','W6ldP8k/bq','fCojW6mi','WOxcPCkiWR3cJW','wCoyWQ55jeS','W71bWPf5pa','qx49W5VcRZW','W5hdNvRcSHi','hhfEg8k9WQy','rSozWRrY','WOBcRmk7bKpdTq','xtnVWPZcI8on','WRRcLmkwzSoVjq','W40qWRTZW4L0','nvRcVH1pW78','W6/dSSkVpCojW7m','fmoEW7i','tG9aru3dLa','W7zgWPntg8oK','WOFcQ8k4rmo2aa','W5NcHSkvWRtcJG','ACkjDSo6','W6ZdIJyN','osKutmot','W57dVCkUg8o2','W5SsWRtcKtxcTq','cGVcT8oencK','WRpcTSk+dq','wrqvBJddQW','bCo4WRbbWRtdKq','kCoXWRfeWOBdQW','WQKRCCk2','WRRcL8kxW5BdNxS','nKrue8ki','W4BdP8oOxCkCkq','mCoPaSkxd3u','CJ5MWPC','jCoPgmk6n3G','WPtdM1HbWRqr','kfVcRYOkW6m','W6XmWPm'];_0xa679=function(){return _0x43920a;};return _0xa679();}class InstaAPI{constructor(_0x48bf1e,_0x3c9ec5={}){const _0x494bd2=_0x1e34ed,_0x546f4f=_0x474e11,_0x18e99a={'pIfbk':function(_0x48f8f1,_0xe0a9e0){return _0x48f8f1(_0xe0a9e0);},'TrkGL':_0x494bd2(0x1a8,'hMgz')+'nid\x20mi'+_0x546f4f(0xb0,'I4uR')+_0x546f4f(0xfd,'N64X')+_0x546f4f(0x100,'JLjF'),'lAAxO':_0x494bd2(0xdf,'UI]2')+_0x494bd2(0xdd,'k[HE')},_0x53c873=_0x18e99a[_0x494bd2(0x155,'aC7@')](normalizeCookie,_0x48bf1e);if(!_0x53c873['sessio'+_0x546f4f(0xcc,'JLjF')])throw new Error(_0x18e99a[_0x546f4f(0x176,'l4@S')]);this['userID']=_0x53c873['ds_use'+_0x546f4f(0x12f,'IY4^')]||null,this[_0x494bd2(0x111,'zBaK')+'me']=null,this[_0x546f4f(0x11b,'YHUe')+'s']=_0x3c9ec5,this[_0x494bd2(0xe3,'ngB(')]=new HttpClient(_0x53c873),this[_0x546f4f(0x1d0,'n*aB')+'ty']=deviceIdentity[_0x494bd2(0x18b,'I4uR')+_0x494bd2(0x19b,'rAAQ')](_0x3c9ec5[_0x494bd2(0x86,'e@J!')+_0x546f4f(0xb4,'N64X')]||path[_0x494bd2(0x99,'9KjW')](process[_0x546f4f(0x19e,'9KjW')](),_0x18e99a[_0x546f4f(0x190,'IY4^')]),_0x53c873[_0x546f4f(0x78,'9KjW')]);const _0x43e5df=_0x3c9ec5[_0x494bd2(0x15f,'P(an')+_0x494bd2(0x169,'uB$4')+'s']||this[_0x546f4f(0x8d,'UI]2')+_0x546f4f(0x1da,'P(an')+'Params'](_0x3c9ec5[_0x494bd2(0x12c,'b^i3')+_0x494bd2(0x1bb,'j6WY')+_0x494bd2(0x1ac,'hMgz')]);if(_0x43e5df)this[_0x546f4f(0xeb,'9lWU')][_0x494bd2(0x9e,'Z!5j')+_0x494bd2(0x9c,'c8#U')+_0x546f4f(0xfa,'!XCZ')](_0x43e5df);this[_0x494bd2(0x1d3,'kYJL')+'e']=new MessageMethods(this[_0x546f4f(0x16f,'A$]J')]),this[_0x494bd2(0x183,'j6WY')+'on']=new ReactionMethods(this[_0x494bd2(0x13b,'UI]2')]),this[_0x494bd2(0x1ce,'rAAQ')]=new TypingMethods(this[_0x546f4f(0x92,'e@J!')]),this[_0x494bd2(0x1dc,'aaqi')]=new ThreadMethods(this[_0x546f4f(0xf9,'c8#U')]),this[_0x546f4f(0xe0,'i9Yi')]=new UserMethods(this[_0x494bd2(0xa6,'QKYl')]),this[_0x494bd2(0x1a5,']46t')]=new InboxMethods(this[_0x546f4f(0x175,'rAAQ')],()=>this[_0x494bd2(0xfc,'k[HE')]),this[_0x494bd2(0x1b3,'IY4^')]=new MediaMethods(this[_0x546f4f(0x91,'j6WY')],this['identi'+'ty']);}[_0x1e34ed(0x7a,'xbm3')+_0x474e11(0xfb,'76Y]')+_0x1e34ed(0xb2,'hMgz')](_0x42d6cc){const _0x1effce=_0x1e34ed,_0x461982=_0x474e11,_0x4e8fcb={'tluMr':function(_0x565549,_0x12f990){return _0x565549(_0x12f990);},'HIZxe':'sessio'+_0x1effce(0x12d,'uB$4')+_0x1effce(0x9a,'uB$4')+_0x461982(0x10a,'ycoA')+_0x1effce(0x13c,'A$]J'),'TVdBk':_0x461982(0x8a,'QKYl')+_0x1effce(0x93,')8Bt'),'BUFyn':_0x1effce(0x146,'9lWU')+_0x461982(0xd0,'#j^C')+_0x1effce(0x113,'Cvm!')+'n','KAewp':function(_0x50183f,_0x2f9594){return _0x50183f===_0x2f9594;},'EAeNG':_0x461982(0x19a,'QKYl'),'lyFxe':_0x461982(0x122,'QKYl'),'FvNdT':_0x461982(0x136,'uB$4')},_0x288093=_0x42d6cc||path[_0x461982(0x99,'9KjW')](process[_0x461982(0x159,'A$]J')](),_0x4e8fcb[_0x1effce(0x11f,'2E7T')]);try{if(_0x4e8fcb[_0x461982(0x14f,'aC7@')](_0x4e8fcb[_0x461982(0xb1,'YHUe')],_0x4e8fcb[_0x1effce(0xf7,'QKYl')])){if(!fs[_0x1effce(0x1b0,'QKYl')+_0x1effce(0x17c,'P(an')](_0x288093))return null;return JSON[_0x1effce(0x8e,'kYJL')](fs[_0x461982(0x18a,'9lWU')+_0x461982(0x126,'xbm3')](_0x288093,_0x4e8fcb[_0x461982(0x128,'xbm3')]));}else return this[_0x461982(0x104,'uB$4')][_0x461982(0x1c7,'U3Q1')+_0x1effce(0x1a2,'9KjW')+_0x461982(0x121,'VRF3')](_0x4ce0d0,_0x1cf59a,_0x329e61);}catch(_0x4847d7){if(_0x4e8fcb[_0x1effce(0x130,'xbm3')](_0x4e8fcb['FvNdT'],_0x461982(0x17f,'ngB('))){const _0xc98dfc=_0x4e8fcb[_0x1effce(0x16a,'UI]2')](_0x1e9b4c,_0x5ba947);if(!_0xc98dfc[_0x1effce(0x15a,'uB$4')+_0x461982(0x1ba,'QKYl')])throw new _0x3d3d60(_0x4e8fcb[_0x1effce(0x172,'9KjW')]);this[_0x461982(0xa9,']46t')]=_0xc98dfc[_0x461982(0x1c3,'JEOl')+_0x461982(0x160,'JLjF')]||null,this[_0x461982(0x10e,'k[HE')+'me']=null,this[_0x1effce(0x19c,'i3Em')+'s']=_0x55766b,this[_0x461982(0x175,'rAAQ')]=new _0x2f9955(_0xc98dfc),this[_0x1effce(0x9b,'N64X')+'ty']=_0x4a13f7[_0x461982(0xf0,'l4@S')+_0x1effce(0x15d,'9I]2')](_0xa63c7c[_0x461982(0x138,'ycoA')+_0x461982(0xab,'uB$4')]||_0x3affea[_0x461982(0x168,'n*aB')](_0x2d4429['cwd'](),_0x4e8fcb[_0x461982(0xa7,'zBaK')]),_0xc98dfc[_0x461982(0x18e,'k[HE')]);const _0x3c8b8a=_0x3a8b66[_0x1effce(0xea,'76Y]')+_0x461982(0x11d,'YHUe')+'s']||this[_0x461982(0xae,'VRF3')+_0x461982(0x89,'c8#U')+_0x1effce(0x84,'j6WY')](_0x240056[_0x461982(0x18c,'N64X')+_0x461982(0x17e,'n*aB')+_0x461982(0x7d,'!XCZ')]);if(_0x3c8b8a)this['http'][_0x1effce(0x88,'IY4^')+_0x1effce(0x171,')8Bt')+'rams'](_0x3c8b8a);this[_0x1effce(0x1be,'A$]J')+'e']=new _0x56a4e4(this[_0x461982(0x10f,'n*aB')]),this[_0x461982(0xd5,'2E7T')+'on']=new _0x50132e(this[_0x461982(0xe3,'ngB(')]),this[_0x461982(0xd8,'VRF3')]=new _0x2fe299(this['http']),this[_0x1effce(0x14e,'hMgz')]=new _0x347d0f(this[_0x461982(0x7b,'9KjW')]),this[_0x1effce(0x123,'k%E]')]=new _0x3bbc9b(this[_0x461982(0x188,'uB$4')]),this[_0x461982(0xbb,'YHUe')]=new _0x31a7da(this[_0x1effce(0x19f,'eK88')],()=>this[_0x1effce(0x148,'9lWU')]),this[_0x461982(0xee,'2E7T')]=new _0x31b8d3(this[_0x461982(0x1dd,'YHUe')],this[_0x461982(0x187,'j6WY')+'ty']);}else return null;}}[_0x474e11(0x1cc,'9I]2')+_0x1e34ed(0x125,'JLjF')+_0x474e11(0xe4,'U3Q1')](_0x3851bf){const _0x301986=_0x474e11,_0x2c87e1=_0x1e34ed;this[_0x301986(0xd9,'N64X')][_0x2c87e1(0x80,'l4@S')+_0x301986(0x1af,'#xuR')+_0x301986(0xa5,'ngB(')](_0x3851bf);}async[_0x474e11(0xca,'i3Em')+_0x474e11(0x1cb,'JLjF')+'on'](_0x104972){const _0x14660d=_0x1e34ed,_0x4f3c55=_0x474e11,_0xf9f3cc={'CTeAO':function(_0xa6b648,_0x46bef9){return _0xa6b648(_0x46bef9);},'ebiKo':'./sess'+_0x14660d(0xb8,'cp[9'),'ohiFu':function(_0x2d5498,_0x78135b){return _0x2d5498(_0x78135b);}};if(_0x104972)return this[_0x4f3c55(0x96,'U3Q1')+_0x14660d(0xf3,'!XCZ')+_0x4f3c55(0xbe,'eK88')](_0x104972),!![];try{const {harvestSessionParams:_0x5dc482}=_0xf9f3cc[_0x4f3c55(0xd3,'uB$4')](require,_0xf9f3cc[_0x14660d(0x181,'hMgz')]),_0x54dae7=await _0xf9f3cc[_0x4f3c55(0xd4,'c8#U')](_0x5dc482,this[_0x4f3c55(0xd7,'b^i3')][_0x4f3c55(0x109,'kYJL')]);if(_0x54dae7)return this[_0x4f3c55(0xac,'ycoA')+_0x14660d(0x1c8,'#j^C')+_0x4f3c55(0x117,'9lWU')](_0x54dae7),!![];}catch(_0x4cc48f){}return![];}async[_0x474e11(0x185,'hMgz')](){const _0x1e5db6=_0x1e34ed,_0x291307=_0x1e34ed,_0x3fb80b={'xblNq':function(_0x3a57af,_0x5e0737){return _0x3a57af!==_0x5e0737;},'APQEf':_0x1e5db6(0x97,'b^i3'),'dmfEx':_0x1e5db6(0x14a,'ycoA')+_0x1e5db6(0x177,'9lWU')+_0x291307(0xa3,'c8#U'),'MpUVj':function(_0x424399,_0x2a61f5){return _0x424399===_0x2a61f5;},'TnenV':'object'},_0xabf406=await this[_0x1e5db6(0x165,'kYJL')][_0x291307(0x1b6,'JLjF')+_0x291307(0xff,'k[HE')]();if(!_0xabf406){if(_0x3fb80b[_0x1e5db6(0x95,'cp[9')](_0x3fb80b[_0x291307(0xd1,'c8#U')],_0x291307(0x14b,'Z!5j')))return this[_0x291307(0xf4,'b^i3')][_0x1e5db6(0x19d,'eK88')+_0x1e5db6(0x90,'CC%H')+_0x1e5db6(0x13d,'9lWU')](_0x39aea9,_0x584203,_0x5a7feb);else{const _0x2c7ac6=new Error(_0x291307(0x144,'rAAQ')+_0x1e5db6(0x154,'c8#U')+_0x1e5db6(0x10b,'UI]2')+_0x291307(0x16b,'IY4^')+'\x20authe'+_0x1e5db6(0x137,'ngB(')+'ed\x20(ac'+_0x291307(0xc3,'i9Yi')+'may\x20be'+_0x291307(0x119,']46t')+_0x1e5db6(0xb7,'Z!5j')+_0x291307(0xf2,'76Y]')+_0x291307(0x103,'YHUe')+_0x1e5db6(0x17b,'c8#U')+_0x291307(0xc4,'rAAQ'));_0x2c7ac6[_0x1e5db6(0x16d,'QKYl')]=_0x3fb80b[_0x291307(0x11a,'VRF3')];throw _0x2c7ac6;}}try{const _0x21e79c=await this[_0x291307(0x165,'kYJL')][_0x291307(0x170,'2E7T')](EP[_0x1e5db6(0x15c,'rAAQ')+'T_USER']),_0xa86c7a=_0x3fb80b[_0x1e5db6(0x114,'#xuR')](typeof _0x21e79c,_0x3fb80b[_0x291307(0xa8,'j6WY')])?_0x21e79c?.[_0x1e5db6(0x199,'#xuR')]:null;_0xa86c7a?.['pk']&&(this[_0x291307(0x87,'k%E]')]=String(_0xa86c7a['pk']),this[_0x291307(0x15b,')8Bt')+'me']=_0xa86c7a[_0x291307(0x153,'P%vq')+'me']||null);}catch(_0x11d317){}try{await this[_0x1e5db6(0x132,'k[HE')][_0x1e5db6(0x166,'kYJL')+'rapTok'+_0x291307(0x163,'kYJL')]();}catch(_0x2bac6b){}return{'userID':this[_0x1e5db6(0x79,'UI]2')],'username':this['userna'+'me']};}[_0x474e11(0x145,'N64X')+_0x1e34ed(0x195,'YHUe')+_0x474e11(0x179,'#xuR')](){const _0x1bfef2=_0x474e11;return this[_0x1bfef2(0x1b5,'aaqi')];}[_0x1e34ed(0x1a7,'76Y]')+_0x474e11(0x120,'U3Q1')](_0x27229f,_0x156e75,_0x58fb07=null){const _0x36769e=_0x1e34ed;return this[_0x36769e(0x1ad,'Cvm!')+'e']['send'](_0x27229f,_0x156e75,_0x58fb07);}[_0x474e11(0x73,'rAAQ')+_0x1e34ed(0x189,'9I]2')+'ge'](_0x448d21,_0x57d409,_0xc9f4df=null){const _0x2efd00=_0x474e11,_0x2b38d4=_0x1e34ed;return this[_0x2efd00(0x1ab,'JEOl')+'e'][_0x2efd00(0x174,'Cvm!')](_0x448d21,_0x57d409,_0xc9f4df);}[_0x474e11(0x1a4,'U3Q1')+'nk'](_0x52405a,_0x41a817,_0x309ff8){const _0x5562e5=_0x1e34ed,_0x2f8377=_0x1e34ed;return this[_0x5562e5(0x112,'UI]2')+'e'][_0x5562e5(0x1b4,'YHUe')+'nk'](_0x52405a,_0x41a817,_0x309ff8);}[_0x474e11(0x7c,'kYJL')+_0x1e34ed(0xe9,'YHUe')+'e'](_0x51d39c,_0x122cba){const _0x3750fd=_0x1e34ed;return this['messag'+'e'][_0x3750fd(0x94,'9KjW')](_0x51d39c,_0x122cba);}[_0x1e34ed(0xf5,'JEOl')+'ssage'](_0x27e72f,_0x2dfb0f,_0x3fe80){const _0x80e667=_0x1e34ed,_0x1550be=_0x1e34ed;return this[_0x80e667(0x1d3,'kYJL')+'e'][_0x80e667(0x1d2,'CC%H')](_0x27e72f,_0x2dfb0f,_0x3fe80);}[_0x1e34ed(0xf6,'zBaK')+_0x474e11(0x164,'k%E]')](_0x53dbd9,_0x2df06e,_0x275cc6){const _0x330fd5=_0x1e34ed,_0x2b0822=_0x1e34ed;return this[_0x330fd5(0xd2,'k[HE')+'on'][_0x330fd5(0x101,'2E7T')](_0x53dbd9,_0x2df06e,_0x275cc6);}[_0x474e11(0xcb,'2E7T')+_0x474e11(0x102,'c8#U')+'on'](_0x38c68b,_0x3e304f){const _0x45bd7e=_0x1e34ed,_0x52e0a1=_0x1e34ed;return this[_0x45bd7e(0x10c,'ycoA')+'on'][_0x52e0a1(0x8b,'A$]J')](_0x38c68b,_0x3e304f);}[_0x1e34ed(0x1ca,'i3Em')+_0x1e34ed(0xc1,'UI]2')](_0xccde9f){const _0x24ae8d=_0x1e34ed,_0x2c8248=_0x1e34ed;return this[_0x24ae8d(0x124,']46t')][_0x24ae8d(0x18d,'i3Em')](_0xccde9f);}['stopTy'+_0x474e11(0x141,'YHUe')](_0x3bbbc0){return this['typing']['stop'](_0x3bbbc0);}[_0x1e34ed(0xc9,'aaqi')+_0x474e11(0x1c6,'!XCZ')+'o'](_0x4a89e0){const _0x28a450=_0x1e34ed,_0x30d8de=_0x474e11;return this[_0x28a450(0x11c,'UI]2')][_0x28a450(0x1c5,'JEOl')+'o'](_0x4a89e0);}[_0x1e34ed(0x16e,'eK88')+_0x1e34ed(0x9f,'j6WY')+_0x1e34ed(0x1a3,'i9Yi')](_0x446fa0,_0x27870d){const _0xf1698b=_0x1e34ed,_0x495b7a=_0x1e34ed;return this[_0xf1698b(0x13e,'i3Em')][_0xf1698b(0x1b7,'uB$4')+_0xf1698b(0x17d,'e@J!')](_0x446fa0,_0x27870d);}['markTh'+_0x1e34ed(0x142,'P(an')+'en'](_0x1fc582,_0x2da16c){const _0x5a1a0c=_0x1e34ed,_0x547bbd=_0x1e34ed;return this[_0x5a1a0c(0x156,'9I]2')][_0x5a1a0c(0x1cd,'9I]2')+'en'](_0x1fc582,_0x2da16c);}['muteTh'+_0x1e34ed(0x76,'k%E]')](_0x3e1edd){const _0x4745d4=_0x1e34ed;return this[_0x4745d4(0xb9,'eK88')]['mute'](_0x3e1edd);}['unmute'+_0x1e34ed(0x1aa,'QKYl')](_0x8d6178){const _0x34c3a5=_0x1e34ed;return this[_0x34c3a5(0x1b2,'HnFI')]['unmute'](_0x8d6178);}[_0x474e11(0x16c,'CC%H')+_0x474e11(0x118,'2E7T')](_0x1783f6){const _0x218d58=_0x1e34ed,_0x48b0f0=_0x474e11;return this[_0x218d58(0x85,'IY4^')][_0x48b0f0(0xc6,'n*aB')](_0x1783f6);}[_0x474e11(0x198,'2E7T')+_0x1e34ed(0x143,'zBaK')+'up'](_0x1ed3c9,_0x536bbe){const _0x3c5660=_0x474e11,_0x5cb1e8=_0x1e34ed;return this[_0x3c5660(0x193,'n*aB')][_0x5cb1e8(0x178,'Z!5j')+'rs'](_0x1ed3c9,[_0x536bbe]);}[_0x1e34ed(0x1c4,'76Y]')+_0x474e11(0xe8,'#xuR')+_0x1e34ed(0x184,'Cvm!')+'p'](_0x58a33c,_0x3065b1){const _0x3fefbe=_0x1e34ed,_0x4c7e00=_0x1e34ed;return this[_0x3fefbe(0xb6,'76Y]')][_0x4c7e00(0x7f,'k%E]')+_0x3fefbe(0x161,'JLjF')](_0x58a33c,_0x3065b1);}[_0x474e11(0x10d,'HnFI')+_0x474e11(0xa4,')8Bt')](_0x50c08d){const _0x1a317b=_0x1e34ed,_0x24559a=_0x1e34ed;return this[_0x1a317b(0x11e,'IY4^')][_0x1a317b(0x1d1,'QKYl')+'o'](_0x50c08d);}[_0x474e11(0xc0,'YHUe')+_0x474e11(0x150,'9I]2')+'yUsern'+_0x474e11(0x107,'9I]2')](_0x43a62a){const _0x57f0f3=_0x474e11,_0x36a6d0=_0x474e11;return this[_0x57f0f3(0xe2,'rAAQ')][_0x36a6d0(0x1b1,'2E7T')+_0x57f0f3(0x15e,'aaqi')+_0x36a6d0(0x8c,'P%vq')](_0x43a62a);}[_0x474e11(0xe5,'aaqi')+_0x474e11(0x134,'aC7@')](_0x4ba683,_0x51aaf0){const _0x4cd5f5=_0x1e34ed;return this[_0x4cd5f5(0xe2,'rAAQ')]['search'](_0x4ba683,_0x51aaf0);}[_0x474e11(0x1d8,'N64X')+_0x474e11(0x131,'HnFI')](_0x839284,_0x5ac8f4,_0x3c6068){const _0xfc2ce6=_0x474e11,_0x2b72f1=_0x1e34ed;return this[_0xfc2ce6(0x1db,'!XCZ')][_0xfc2ce6(0xde,']46t')+_0x2b72f1(0x1d4,'N64X')](_0x839284,_0x5ac8f4,_0x3c6068);}[_0x474e11(0x18f,'aC7@')+'otoBuf'+_0x474e11(0x1bc,'VnIs')](_0x3f7c2f,_0x2f05d8,_0xff2a2f){const _0x154697=_0x1e34ed,_0x25b7e1=_0x1e34ed;return this[_0x154697(0x74,'c8#U')][_0x25b7e1(0xe1,'hMgz')+_0x154697(0x197,'aaqi')+_0x25b7e1(0x110,'Cvm!')](_0x3f7c2f,_0x2f05d8,_0xff2a2f);}[_0x474e11(0x1d8,'N64X')+_0x1e34ed(0x1c1,'zBaK')+_0x474e11(0x1c2,'QKYl')](_0x3d5313,_0xbc747a,_0x26c784){const _0x194297=_0x1e34ed,_0x173f6c=_0x474e11;return this[_0x194297(0xf8,'zBaK')][_0x173f6c(0x12a,'2E7T')+_0x173f6c(0x98,'YHUe')+'mUrl'](_0x3d5313,_0xbc747a,_0x26c784);}[_0x1e34ed(0x75,'cp[9')+'deo'](_0x29cb18,_0x39aa56,_0xf74b68){const _0x5b9391=_0x1e34ed,_0x2b2670=_0x1e34ed;return this[_0x5b9391(0xf1,'k%E]')][_0x2b2670(0xc7,'I4uR')+_0x2b2670(0x12e,'aaqi')](_0x29cb18,_0x39aa56,_0xf74b68);}[_0x474e11(0x151,'9lWU')+_0x1e34ed(0x1d6,'kYJL')+_0x1e34ed(0x152,'I4uR')](_0x2fe938,_0x1f2097,_0x38bc5a){const _0x5dfbfe=_0x474e11,_0x5d457f=_0x1e34ed;return this[_0x5dfbfe(0x194,'U3Q1')][_0x5dfbfe(0x180,'YHUe')+_0x5dfbfe(0xaa,'JEOl')+_0x5dfbfe(0x1c0,'e@J!')](_0x2fe938,_0x1f2097,_0x38bc5a);}[_0x1e34ed(0x1d5,'hMgz')+'deoFro'+_0x474e11(0x1c2,'QKYl')](_0x2e2a06,_0x536e2a,_0x4e177e){const _0x39203e=_0x1e34ed,_0x18b039=_0x1e34ed;return this[_0x39203e(0x173,'VnIs')][_0x18b039(0xad,'VRF3')+_0x39203e(0x1b8,'#j^C')+_0x39203e(0xaf,'aaqi')](_0x2e2a06,_0x536e2a,_0x4e177e);}[_0x1e34ed(0xa2,'cp[9')+_0x474e11(0xc2,'kYJL')](_0x3ef013,_0x5c4f87,_0x362eb8){const _0x127721=_0x1e34ed,_0x1da51a=_0x474e11;return this[_0x127721(0x1bd,'9KjW')][_0x1da51a(0x1a0,'aaqi')+_0x127721(0xa0,'e@J!')](_0x3ef013,_0x5c4f87,_0x362eb8);}[_0x474e11(0xb5,'!XCZ')+_0x474e11(0x13f,'aC7@')+_0x1e34ed(0xdc,'9I]2')](_0x133737,_0x392f5e,_0x5311a2){const _0x76f1c8=_0x474e11,_0x39effe=_0x474e11;return this[_0x76f1c8(0x106,'kYJL')][_0x39effe(0xce,'#j^C')+_0x76f1c8(0x191,'k%E]')+_0x39effe(0x108,'rAAQ')](_0x133737,_0x392f5e,_0x5311a2);}[_0x474e11(0x1a1,'UI]2')+_0x1e34ed(0xa1,'n*aB')+_0x474e11(0x1d9,'zBaK')](_0x4d5f13,_0x2725f4,_0xcf15d1){const _0x166235=_0x1e34ed,_0x28a6b7=_0x474e11;return this[_0x166235(0x1a9,'aaqi')][_0x28a6b7(0xef,'N64X')+_0x166235(0xe7,']46t')+_0x28a6b7(0x129,'ycoA')](_0x4d5f13,_0x2725f4,_0xcf15d1);}[_0x474e11(0xb3,'!XCZ')+'ox'](_0xd4a53c){const _0x381d77=_0x474e11;return this['inbox'][_0x381d77(0xba,'zBaK')+'ox'](_0xd4a53c);}[_0x474e11(0x186,'i9Yi')](_0x36bb3d,_0x366775){const _0x29b3bb=_0x474e11,_0x10a7f0=_0x1e34ed;return this[_0x29b3bb(0x1ae,'#xuR')]['listen'](_0x36bb3d,_0x366775||this[_0x29b3bb(0xfe,'zBaK')+'s'][_0x29b3bb(0x1b9,'#xuR')+_0x29b3bb(0xc8,'U3Q1')]);}[_0x1e34ed(0x1cf,'VRF3')+_0x1e34ed(0x116,'9lWU')+'g'](){const _0x2cf27a=_0x1e34ed,_0x39f877=_0x474e11;this[_0x2cf27a(0x149,'aC7@')]['stopLi'+_0x2cf27a(0x147,'P(an')+'g']();}}module[_0x1e34ed(0xec,'9I]2')+'s']=InstaAPI;
|
|
7
|
+
|
|
8
|
+
const HttpClient = require("./http");
|
|
9
|
+
const { normalizeCookie } = require("./cookies");
|
|
10
|
+
const { EP } = require("./constants");
|
|
11
|
+
const deviceIdentity = require("./deviceIdentity");
|
|
12
|
+
const sessionGuard = require("./utils/sessionGuard");
|
|
13
|
+
const { dataPath } = require("./utils/dataDir");
|
|
14
|
+
const fs = require("fs");
|
|
15
|
+
const path = require("path");
|
|
16
|
+
|
|
17
|
+
const MessageMethods = require("./methods/message");
|
|
18
|
+
const ReactionMethods = require("./methods/reactions");
|
|
19
|
+
const TypingMethods = require("./methods/typing");
|
|
20
|
+
const ThreadMethods = require("./methods/thread");
|
|
21
|
+
const UserMethods = require("./methods/user");
|
|
22
|
+
const InboxMethods = require("./methods/inbox");
|
|
23
|
+
const MediaMethods = require("./methods/media");
|
|
24
|
+
|
|
25
|
+
class InstaAPI {
|
|
26
|
+
constructor(cookieRaw, options = {}) {
|
|
27
|
+
const jar = normalizeCookie(cookieRaw);
|
|
28
|
+
if (!jar.sessionid) throw new Error("sessionid missing from cookie");
|
|
29
|
+
|
|
30
|
+
this.userID = jar.ds_user_id || null;
|
|
31
|
+
this.username = null;
|
|
32
|
+
this.options = options;
|
|
33
|
+
|
|
34
|
+
const restored = sessionGuard.loadSaved(options.appStateFile || options.sessionGuardFile, jar);
|
|
35
|
+
const cookies = restored ? { ...jar, ...restored } : jar;
|
|
36
|
+
|
|
37
|
+
this.http = new HttpClient(cookies);
|
|
38
|
+
this.identity = deviceIdentity.loadOrCreate(
|
|
39
|
+
options.deviceFile || dataPath("device.json"),
|
|
40
|
+
cookies.ig_did
|
|
41
|
+
);
|
|
42
|
+
|
|
43
|
+
const sessionParams = options.sessionParams || this._loadSessionParams(options.sessionParamsFile);
|
|
44
|
+
if (sessionParams) this.http.setSessionParams(sessionParams);
|
|
45
|
+
|
|
46
|
+
this.message = new MessageMethods(this.http);
|
|
47
|
+
this.reaction = new ReactionMethods(this.http);
|
|
48
|
+
this.typing = new TypingMethods(this.http);
|
|
49
|
+
this.thread = new ThreadMethods(this.http);
|
|
50
|
+
this.user = new UserMethods(this.http);
|
|
51
|
+
this.inbox = new InboxMethods(this.http, () => this.userID);
|
|
52
|
+
this.media = new MediaMethods(this.http, this.identity);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
_loadSessionParams(file) {
|
|
56
|
+
const target = file || dataPath("session-params.json");
|
|
57
|
+
try {
|
|
58
|
+
if (!fs.existsSync(target)) return null;
|
|
59
|
+
return JSON.parse(fs.readFileSync(target, "utf8"));
|
|
60
|
+
} catch (_) {
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
setSessionParams(params) {
|
|
66
|
+
this.http.setSessionParams(params);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// Instagram's web API needs the browser session params (__dyn/__csr/__hs/...).
|
|
70
|
+
// They expire, so re-harvest them (scripts/harvestSession.js) and call this to
|
|
71
|
+
// refresh a running client without restarting.
|
|
72
|
+
async refreshSession(params) {
|
|
73
|
+
if (params) {
|
|
74
|
+
this.setSessionParams(params);
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
77
|
+
try {
|
|
78
|
+
const { harvestSessionParams } = require("./session");
|
|
79
|
+
const fresh = await harvestSessionParams(this.http.seed);
|
|
80
|
+
if (fresh) {
|
|
81
|
+
this.setSessionParams(fresh);
|
|
82
|
+
return true;
|
|
83
|
+
}
|
|
84
|
+
} catch (_) {}
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
_sessionError(check) {
|
|
89
|
+
const table = {
|
|
90
|
+
auth: ["IG_SESSION_INVALID", "Instagram session is not authenticated (account may be suspended or the cookie expired)"],
|
|
91
|
+
challenge: ["IG_CHALLENGE", "Instagram requires a security check (challenge/checkpoint) before this session can be used"],
|
|
92
|
+
suspended: ["IG_SUSPENDED", "Instagram reports this account as suspended or disabled"],
|
|
93
|
+
rate_limited: ["IG_TRANSIENT", "Instagram is rate-limiting this session; the cookie is still valid, retry later"],
|
|
94
|
+
transient: ["IG_TRANSIENT", "Instagram could not be reached cleanly; the cookie may still be valid, retry later"]
|
|
95
|
+
};
|
|
96
|
+
const [code, message] = table[check.state] || table.transient;
|
|
97
|
+
const err = new Error(message);
|
|
98
|
+
err.code = code;
|
|
99
|
+
err.state = check.state;
|
|
100
|
+
err.retryAfterMs = check.retryAfterMs || 0;
|
|
101
|
+
err.cause = check.error || null;
|
|
102
|
+
return err;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
async init() {
|
|
106
|
+
const check = await this.http.checkSession();
|
|
107
|
+
if (check.state !== "ok") throw this._sessionError(check);
|
|
108
|
+
try {
|
|
109
|
+
const res = await this.http.get(EP.CURRENT_USER);
|
|
110
|
+
const user = typeof res === "object" ? res?.user : null;
|
|
111
|
+
if (user?.pk) {
|
|
112
|
+
this.userID = String(user.pk);
|
|
113
|
+
this.username = user.username || null;
|
|
114
|
+
}
|
|
115
|
+
} catch (_) {
|
|
116
|
+
// The API endpoint can return HTML; the session cookie already carries the id.
|
|
117
|
+
}
|
|
118
|
+
try {
|
|
119
|
+
await this.http.bootstrapTokens();
|
|
120
|
+
} catch (_) {
|
|
121
|
+
// GraphQL tokens are only needed for sending; polling still works without them.
|
|
122
|
+
}
|
|
123
|
+
return { userID: this.userID, username: this.username };
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
getCurrentUserID() {
|
|
127
|
+
return this.userID;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
sendMessage(text, threadID, replyToItemId = null) {
|
|
131
|
+
return this.message.send(text, threadID, replyToItemId);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
replyToMessage(threadID, text, replyToItemId = null) {
|
|
135
|
+
return this.message.reply(threadID, text, replyToItemId);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
sendLink(threadID, link, text) {
|
|
139
|
+
return this.message.sendLink(threadID, link, text);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
unsendMessage(threadID, itemID) {
|
|
143
|
+
return this.message.unsend(threadID, itemID);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
editMessage(threadID, itemID, text) {
|
|
147
|
+
return this.message.edit(threadID, itemID, text);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
sendReaction(threadID, itemID, emoji) {
|
|
151
|
+
return this.reaction.send(threadID, itemID, emoji);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
removeReaction(threadID, itemID) {
|
|
155
|
+
return this.reaction.remove(threadID, itemID);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
startTyping(threadID) {
|
|
159
|
+
return this.typing.start(threadID);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
stopTyping(threadID) {
|
|
163
|
+
return this.typing.stop(threadID);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
getThreadInfo(threadID) {
|
|
167
|
+
return this.thread.getInfo(threadID);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
getThreadHistory(threadID, limit) {
|
|
171
|
+
return this.thread.getHistory(threadID, limit);
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
markThreadSeen(threadID, itemID) {
|
|
175
|
+
return this.thread.markSeen(threadID, itemID);
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
muteThread(threadID) {
|
|
179
|
+
return this.thread.mute(threadID);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
unmuteThread(threadID) {
|
|
183
|
+
return this.thread.unmute(threadID);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
hideThread(threadID) {
|
|
187
|
+
return this.thread.hide(threadID);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
addUserToGroup(threadID, userID) {
|
|
191
|
+
return this.thread.addUsers(threadID, [userID]);
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
removeUserFromGroup(threadID, userID) {
|
|
195
|
+
return this.thread.removeUser(threadID, userID);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
getUserInfo(userID) {
|
|
199
|
+
return this.user.getInfo(userID);
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
getUserInfoByUsername(username) {
|
|
203
|
+
return this.user.getInfoByUsername(username);
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
searchUsers(query, limit) {
|
|
207
|
+
return this.user.search(query, limit);
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
sendPhoto(threadID, filePath, options) {
|
|
211
|
+
return this.media.sendPhoto(threadID, filePath, options);
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
sendPhotoBuffer(threadID, buffer, options) {
|
|
215
|
+
return this.media.sendPhotoBuffer(threadID, buffer, options);
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
sendPhotoFromUrl(threadID, url, options) {
|
|
219
|
+
return this.media.sendPhotoFromUrl(threadID, url, options);
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
sendVideo(threadID, filePath, options) {
|
|
223
|
+
return this.media.sendVideo(threadID, filePath, options);
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
sendVideoBuffer(threadID, buffer, options) {
|
|
227
|
+
return this.media.sendVideoBuffer(threadID, buffer, options);
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
sendVideoFromUrl(threadID, url, options) {
|
|
231
|
+
return this.media.sendVideoFromUrl(threadID, url, options);
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
sendVoice(threadID, filePath, options) {
|
|
235
|
+
return this.media.sendVoice(threadID, filePath, options);
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
sendVoiceBuffer(threadID, buffer, options) {
|
|
239
|
+
return this.media.sendVoiceBuffer(threadID, buffer, options);
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
sendVoiceFromUrl(threadID, url, options) {
|
|
243
|
+
return this.media.sendVoiceFromUrl(threadID, url, options);
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
getInbox(cursor) {
|
|
247
|
+
return this.inbox.getInbox(cursor);
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
listen(callback, intervalMs) {
|
|
251
|
+
return this.inbox.listen(callback, intervalMs || this.options.pollInterval);
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
stopListening() {
|
|
255
|
+
this.inbox.stopListening();
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
module.exports = InstaAPI;
|