OverviewFilesCommitsIssuesDocsReleasesPeers

keet-cli / deobfuscated / api / v1 / helpers.js

111 lines · javascript ref:
const {
  encodeChatMessage,encodeReactionsDigest,encodeMyReactions}
=require('./encode');
const {
  getMemberForDeviceKey}
=require('../../lib/contract/query'),b4a=require('b4a'),{
  contract:{
    hyperschema:{
      getEnum:getContractEnum}
  }
}
=require('../../spec'),Label=getContractEnum("@keet/label-type");
async function getChatMessages(_0x4e136b,_0x272b7a,_0x107f2a,_0x4ced55,_0x15129c,_0xe5f326){
  _0x3adf25={
    _0x420181:0x249,_0x39428a:0x2f},_0x381509={
    _0x31e668:0x106,_0xfd2b00:0x141}
  ;
  const [_0x21d55a,_0xdb34b3]=await Promise.all([_0x107f2a.get("@local/rooms",{'roomKey':_0x272b7a}),_0x4e136b()]);
  if(!_0xdb34b3||!_0x21d55a)return[];
  const _0x26c054=Array.isArray(_0xdb34b3)?_0xdb34b3:[_0xdb34b3],_0x3a1390=[];
  for(const _0x135809 of _0x26c054){
    _0x3a1390.push(getChatMessage(_0x272b7a,_0x4ced55,_0x15129c,_0x21d55a,_0xe5f326,_0x135809));
  }
return Promise.all(_0x3a1390);
}
async function getReactions({roomKey:_0x38cbbd,local:_0x1aee77,snapshot:_0x4e4608,room:_0x267147,oplog:_0x119fc8,msgId:_0x521929}){
  _0x477e40={
    _0x10f3c6:0x11e,_0x360c94:0x296,_0x4ed5ad:0x1aa},_0xc1855c={
    _0x1f745b:0xae,_0x34a5e2:0x154,_0x563730:0x7}
  ;
  const [_0x1d571c,_0x94862a]=await Promise.all([_0x521929?{'id':_0x521929}:_0x4e4608.get("@keet/chat-by-message-id",{'oplog':_0x119fc8}),_0x267147||_0x1aee77.get("@local/rooms",{'roomKey':_0x38cbbd})]);
  if(!_0x1d571c||!_0x94862a)return null;
  const {
    selfMember:_0x59a4c0}
  =_0x94862a,[_0x1bc161,_0x2bf7a4]=await Promise.all([_0x4e4608.get("@keet/reaction-digests",{'id':_0x1d571c.id}),_0x59a4c0?_0x4e4608.find("@keet/reactions",{'gte':{'id':_0x1d571c.id,'sender':_0x59a4c0.key},'lte':{'id':_0x1d571c.id,'sender':_0x59a4c0.key}}).toArray():[]]),_0x5e3aa3={
    'digest':encodeReactionsDigest(_0x1bc161),'mine':encodeMyReactions(_0x2bf7a4)}
  ;
  return _0x5e3aa3;
}
async function getChatLabels({snapshot:_0x35beb6,msgId:_0x1edb41,localRoom:_0x48c576}){
  _0xdda013={
    _0x1a66ab:0x234,_0x43f6d7:0x1b1},_0x2d9b91={
    _0x317458:0x3be,_0x244a75:0x6d,_0x30a703:0x109}
  ;
  if(!_0x1edb41||!_0x48c576)return null;
  const {
    selfMember:_0x3c3735}
  =_0x48c576,[_0x2f6c49,_0xa0c09]=await Promise.all([_0x35beb6.get("@keet/chat-label-digests",{'id':_0x1edb41}),_0x3c3735?_0x35beb6.findOne("@keet/chat-labels",{'gte':{'id':_0x1edb41,'sender':_0x3c3735.key,'label':Label.Flag},'lte':{'id':_0x1edb41,'sender':_0x3c3735.key,'label':Label.Flag}}):![]]);
  return{
    'flags':_0x2f6c49?..labels.find(_0x238dc6=>_0x238dc6.label===Label.Flag)?..count??-0x9e8,'flagged':!!_0xa0c09,'flagsClock':_0x2f6c49?..flagsClock??-0x38c0,'editedAt':_0x2f6c49?..editedAt??0x0}
  ;
}
function isDMRead({dm:_0x401931,readLengths:_0x8759ec,selfMember:_0x413a68},_0x22ca1b){
  _0x209f72={
    _0xd99a44:0x1c0,_0x395acb:0x1d3,_0x6637b6:0x1c9,_0xf8451a:0x1bf,_0x27e751:0x1cb,_0x37a24e:0x1c9,_0x4fee14:0x1cf},_0x3cbc42={
    _0x7301fd:0x419,_0x26e779:0x150},_0x84d499={
    _0x3f5a02:0xd9,_0x1b63f9:0x1a1,_0x2414f4:0x7},_0x73a0c3={
    _0x27ced4:0x465}
  ;
  if(!_0x401931?..length||!_0x22ca1b||!_0x8759ec?..length||!_0x413a68)return![];
  return!!_0x8759ec.find(_0x4d7665=>{return!b4a.equals(_0x4d7665.memberKey,_0x413a68.key)&&_0x22ca1b.index<_0x4d7665.length;});
}
async function getChatMessage(_0x96a163,_0x530e2f,_0x390b68,_0x140550,_0x3b196d,_0x3b5b0e){
  _0x3ab371={
    _0x1bf6c3:0x2c},_0x2a08d6={
    _0x226b2d:0x14c,_0x2d53a9:0x4cf,_0x4b53ae:0x1e7},_0x4813f6=getMemberForDeviceKey(_0x530e2f,_0x3b5b0e.oplog.key),{
    filePromises:_0x48c49d,linkFilePromises:_0x5df35a}
  =loadMessageFiles(_0x96a163,_0x530e2f,_0x390b68,_0x3b196d,_0x3b5b0e),[_0x3bba9c,_0x1ff1a7,_0x14e844,_0x1e0088]=await Promise.all([_0x4813f6,Promise.all(_0x48c49d),getReactions({'snapshot':_0x530e2f,'room':_0x140550,'msgId':_0x3b5b0e.id}),getChatLabels({'snapshot':_0x530e2f,'localRoom':_0x140550,'msgId':_0x3b5b0e.id}),Promise.all(_0x5df35a)]);
  _0x3b5b0e.reactions=_0x14e844,_0x3b5b0e.labels=_0x1e0088;
  return _0x1ff1a7.length&&(_0x3b5b0e.message.files=_0x1ff1a7),_0x3b5b0e.read=isDMRead(_0x140550,_0x3b5b0e.id),encodeChatMessage({'record':_0x3b5b0e,'member':_0x3bba9c,'localRoom':_0x140550});
}
async function loadFile(_0xbca521,_0x34ccd9,_0x5dc7f0,_0x283866,_0x34ab3a){
  _0x2b2c4c={
    _0x38ad61:0xbc,_0x3ad666:0x65},_0xbc4a2d={
    _0x335ef2:0xc1,_0x169f99:0x257}
  ;
  const _0x1253ed=await _0x5dc7f0.get("@keet/files",{'id':_0x34ab3a});
  if(!_0x1253ed)return null;
  const _0x5ab9e7=await _0x34ccd9.getFileEntryWithPreview(_0xbca521,_0x1253ed.file,{'loadBlob':_0xe39486=>_0x283866.get(_0xe39486)});
  return{
    ..._0x1253ed.file,'entry':_0x5ab9e7}
  ;
}
function loadMessageFiles(_0x40946d,_0x4a26a3,_0x22b5cb,_0x11d010,_0xf54d95){
  _0x8b9bd4={
    _0x195eaa:0x55,_0x233674:0x57,_0xd5698e:0x56,_0x3abd59:0x5b,_0x11f9a9:0x61,_0x539ff5:0x24c,_0x41c6ec:0x256,_0x1eb0d5:0x6c,_0x1649b7:0x5a,_0x3045d4:0x75,_0x426fc0:0x4e,_0x5e912d:0x61,_0x87ce59:0x43,_0x2b0a15:0x4f,_0x3856bc:0x57},_0x4e641a={
    _0x494dba:0x12d,_0x227f72:0x147,_0x46a393:0x115,_0x4b0098:0x12e,_0x356268:0x13a,_0x5491e1:0x11e,_0x143457:0x130},_0x1040ac={
    _0x47cc52:0x459,_0x152c48:0x75},_0x3a9464={
    _0x44fd30:0x19c,_0x37a19b:0x226,_0x3f6968:0x110},_0x3a82e8={
    _0x174a06:0x135,_0x1fa98b:0x55},_0x12cb8f=[],_0x334f17=[];
  if(_0xf54d95.message?..files?..length>0x0)for(const _0xa7783b of _0xf54d95.message.files){
    _0x12cb8f.push(loadFile(_0x40946d,_0x11d010,_0x4a26a3,_0x22b5cb,_0xa7783b));
  }
const _0x279bb6=_0xf54d95.message?..display?..httpLink||[];
for(const _0x18073d of _0x279bb6)_0x4ff8d5(_0x18073d);
const _0x587ef0=_0xf54d95.message?..display?..pearLink||[];
for(const _0xfabb8e of _0x587ef0)_0x4ff8d5(_0xfabb8e);
return{
  'filePromises':_0x12cb8f,'linkFilePromises':_0x334f17}
;
function _0x4ff8d5(_0x1d5f98){
  if((_0x1d5f98?..preview?..files||[]).length){
    const _0x917e8f=_0x1d5f98.preview.files.map(async _0x4b72a3=>{_0x10958a={_0x2ef6f4:0x3};_0x1d5f98.preview.file=await loadFile(_0x40946d,_0x11d010,_0x4a26a3,_0x22b5cb,_0x4b72a3);});
    _0x334f17.push(..._0x917e8f);
  }
}
}
module.exports={
  'getChatMessages':getChatMessages,'getReactions':getReactions,'getChatLabels':getChatLabels,'getChatMessage':getChatMessage,'isDMRead':isDMRead}
;