tjc-sdk
Version:
TIANJI IM SDK
2 lines (1 loc) • 6.29 kB
JavaScript
import{ipcMain as e,BrowserWindow as t}from"electron";let s;const o="protoAsyncCallback",r={getUserInfoEx:n("getUserInfoEx"),searchUser:n("searchUser"),searchUserEx:n("searchUserEx"),setFavUser:n("setFavUser"),deleteFriend:n("deleteFriend"),handleFriendRequest:(e,t)=>{let o=t.methodArgs;s.handleFriendRequest(o[0],o[1],a(e,t.reqId,0,!0),a(e,t.reqId,1,!0),o[2])},setBlackList:n("setBlackList"),setFriendAlias:n("setFriendAlias"),createGroup:n("createGroup"),setGroupManager:n("setGroupManager"),allowGroupMember:n("allowGroupMember"),muteGroupMember:n("muteGroupMember"),setGroupRemark:n("setGroupRemark"),addMembers:n("addMembers"),getGroupMembersEx:n("getGroupMembersEx"),getGroupInfoEx:n("getGroupInfoEx"),kickoffMembers:n("kickoffMembers"),dismissGroup:n("dismissGroup"),modifyGroupInfo:n("modifyGroupInfo"),modifyGroupAlias:n("modifyGroupAlias"),modifyGroupMemberAlias:n("modifyGroupMemberAlias"),modifyGroupMemberExtra:n("modifyGroupMemberExtra"),transferGroup:n("transferGroup"),setFavGroup:n("setFavGroup"),quitGroup:n("quitGroup"),getMyGroups:n("getMyGroups"),getCommonGroups:n("getCommonGroups"),setUserSetting:n("setUserSetting"),modifyMyInfo:n("modifyMyInfo"),setGlobalSlient:n("setGlobalSlient"),setHiddenNotificationDetail:n("setHiddenNotificationDetail"),setHiddenGroupMemberName:n("setHiddenGroupMemberName"),setUserReceiptEnable:n("setUserReceiptEnable"),joinChatroom:n("joinChatroom"),quitChatroom:n("quitChatroom"),getChatroomInfo:n("getChatroomInfo"),getChatroomMemberInfo:n("getChatroomMemberInfo"),createChannel:n("createChannel"),modifyChannelInfo:n("modifyChannelInfo"),searchChannel:n("searchChannel"),listenChannel:n("listenChannel"),getRemoteListenedChannels:n("getRemoteListenedChannels"),destoryChannel:n("destoryChannel"),setConversationTop:n("setConversationTop"),setConversationSlient:n("setConversationSlient"),sendFriendRequest:n("sendFriendRequest"),requireLock:n("requireLock"),releaseLock:n("releaseLock"),getMessagesV2:n("getMessagesV2"),getMentionedMessages:n("getMentionedMessages"),getMessagesExV2:n("getMessagesExV2"),getMessagesEx2V2:n("getMessagesEx2V2"),getMessagesByTimestampV2:n("getMessagesByTimestampV2"),getMessagesByStatusV2:n("getMessagesByStatusV2"),getUserMessagesV2:n("getUserMessagesV2"),getUserMessagesExV2:n("getUserMessagesExV2"),loadRemoteDomains:n("loadRemoteDomains"),sendSavedMessage:(e,t)=>{s.sendSavedMessage(...t.methodArgs,((...r)=>{let n={code:0,reqId:t.reqId,cbIndex:0,done:!0,cbArgs:r},a=t.methodArgs[0],d=s.getMessage(a);c("onSendMessage")(d),i(a),e.sender.send(o,n)}),((...s)=>{let r={code:0,reqId:t.reqId,cbIndex:1,done:!0,cbArgs:s};i(t.methodArgs[0]),e.sender.send(o,r)}))},recall:n("recall"),deleteRemoteMessage:n("deleteRemoteMessage"),updateRemoteMessageContent:n("updateRemoteMessageContent"),watchOnlineState:n("watchOnlineState"),unwatchOnlineState:n("unwatchOnlineState"),getAuthorizedMediaUrl:n("getAuthorizedMediaUrl"),getUploadMediaUrl:n("getUploadMediaUrl"),getConversationFiles:n("getConversationFiles"),getMyFiles:n("getMyFiles"),deleteFileRecord:n("deleteFileRecord"),clearRemoteConversationMessages:n("clearRemoteConversationMessages"),uploadMedia:(e,t)=>{s.uploadMedia(...t.methodArgs,a(e,t.reqId,0,!0),a(e,t.reqId,1,!0),a(e,t.reqId,2,!1))},searchFiles:n("searchFiles"),searchMyFiles:n("searchMyFiles"),createSecretChat:n("createSecretChat"),destroySecretChat:n("destroySecretChat"),getAuthCode:n("getAuthCode"),configApplication:n("configApplication"),getRemoteMessage:n("getRemoteMessage"),sendConferenceRequest:(e,t)=>{let o=t.methodArgs;s.sendConferenceRequest(o[0],o[1],o[2],o[3],a(e,t.reqId,0,!0),a(e,t.reqId,1,!0),o[4])},getRemoteMessages:(e,t)=>{let o=t.methodArgs;s.getRemoteMessages(o[0],o[1],o[2],a(e,t.reqId,0,!0),a(e,t.reqId,1,!0),o[3])}};function n(e){return(t,o)=>{s[e](...o.methodArgs,a(t,o.reqId,0,!0),a(t,o.reqId,1,!0))}}function a(e,t,s,r){return(...n)=>{let a={code:0,reqId:t,cbIndex:s,done:r,cbArgs:n};e.sender.send(o,a)}}function d(t){s=t,s.setConnectionStatusListener(c("connectionStatus")),s.setConnectToServerListener(c("connectToServer"),c("connectedToServer")),s.setReceiveMessageListener(c("onReceiveMessage"),c("onRecallMessage"),c("onDeleteRemoteMessage"),c("onUserReceivedMessage"),c("onUserReadedMessage")),s.setConferenceEventListener(c("conferenceEvent")),s.setOnlineEventListener(c("onlineEvent")),s.setUserInfoUpdateListener(c("userInfoUpdate")),s.setFriendUpdateListener(c("friendUpdate")),s.setFriendRequestListener(c("friendRequestUpdate")),s.setGroupInfoUpdateListener(c("groupInfoUpdate")),s.setDomainInfoCallback(c("domainInfoUpdate")),s.setSettingUpdateListener(c("settingUpdate")),s.setChannelInfoUpdateListener(c("channelInfoUpdate")),s.setGroupMemberUpdateListener(c("groupMemberUpdate")),s.setSecretChatStateListener(c("secretChatStateChange")),s.setSecretMessageBurnStateListener(c("secretMessageStartBurn"),c("secretMessageBurned")),e.on("invokeProtoMethod",((e,t)=>{try{e.returnValue={code:0,value:s[t.methodName](...t.methodArgs)},"updateMessageStatus"===t.methodName&&i(t.methodArgs[0])}catch(s){if(e.returnValue={code:-1,error:s.message},"production"!==process.env.NODE_ENV)throw new Error(t.methodName+" "+s.message)}})),e.on("invokeProtoMethodAsync",((e,t)=>{let s=r[t.methodName];if(s)try{s(e,t)}catch(s){let r={code:-1,reqId:t.reqId,message:s.message,done:!0};if(e.sender.send(o,r),"production"!==process.env.NODE_ENV)throw new Error(t.methodName+" "+s.message)}})),e.on("sendMessage",((e,t)=>{try{let r,n=s.sendMessage(...t.methodArgs,((...s)=>{let n={code:0,reqId:t.reqId,cbIndex:0,done:!1,cbArgs:s};r=s[0],e.sender.send(o,n)}),((...s)=>{let r={code:0,reqId:t.reqId,cbIndex:1,done:!1,cbArgs:s};e.sender.send(o,r)}),((...s)=>{let n={code:0,reqId:t.reqId,cbIndex:2,done:!0,cbArgs:s};i(r),e.sender.send(o,n)}),((...s)=>{let n={code:0,reqId:t.reqId,cbIndex:3,done:!0,cbArgs:s};i(r),e.sender.send(o,n)}));e.returnValue={code:0,value:n},c("onSendMessage")(n)}catch(t){if(e.returnValue={code:-1,value:"sendMessage "+t.message},"production"!==process.env.NODE_ENV)throw new Error("sendMessage "+t.message)}}))}function i(e){if(e<=0)return;let t=s.getMessage(e);c("onMessageStatusUpdate")(t)}function c(e){return(...s)=>{let o=t.getAllWindows();o&&o.forEach((t=>{t.webContents.send("protoEvent",{eventName:e,eventArgs:s})}))}}export{d as init};