UNPKG

@juzi/wechaty-puppet-whatsapp

Version:
69 lines 2.95 kB
import * as PUPPET from '@juzi/wechaty-puppet'; import { log } from '../config.js'; import { WA_ERROR_TYPE } from '../exception/error-type.js'; import WAError from '../exception/whatsapp-error.js'; import '@juzi/wechaty-puppet/payloads'; const PRE = 'MIXIN_FRIENDSHIP'; export async function friendshipRawPayload(id) { const cache = await this.manager.getCacheManager(); const friendship = await cache.getFriendshipRawPayload(id); if (!friendship) { throw WAError(WA_ERROR_TYPE.ERR_MSG_NOT_FOUND, 'Friendship not found', `friendshipId: ${id}`); } return friendship; } export async function friendshipRawPayloadParser(rawPayload) { return rawPayload; } export async function friendshipSearchPhone(phone) { log.verbose(PRE, 'friendshipSearchPhone(%s)', phone); const contactId = `${phone}@c.us`; const isUser = await this.manager.isWhatsappUser(contactId); if (!isUser) { throw WAError(WA_ERROR_TYPE.ERR_CONTACT_NOT_FOUND, 'Not a registered user on WhatsApp.', `contactId: ${contactId}`); } return contactId; } export async function friendshipSearchWeixin(weixin) { log.verbose(PRE, 'friendshipSearchWeixin(%s)', weixin); return PUPPET.throwUnsupportedError(); } export async function friendshipSearchHandle(handle) { log.verbose(PRE, 'friendshipSearchHandle(%s)', handle); return PUPPET.throwUnsupportedError(); } export async function friendshipAdd(contactId, option) { let hello = ''; if (typeof (option) === 'object') { hello = option.hello || ''; } else { hello = option || ''; } // allow no hello for miaohui batch add // if (hello.length === 0) { // hello = STRINGS[LANGUAGE].DEFAULT_HELLO_MESSAGE // } log.info(PRE, 'friendshipAdd(%s, %s)', contactId, JSON.stringify(option)); const isUser = await this.manager.isWhatsappUser(contactId); if (!isUser) { throw WAError(WA_ERROR_TYPE.ERR_CONTACT_NOT_FOUND, 'Not a registered user on WhatsApp.', `contactId: ${contactId}`); } const contactPayload = await this.contactRawPayload(contactId, true); if (!contactPayload.isMyContact) { const contactPhone = contactId.split('@')[0] || ''; await this.manager.getWhatsAppClient().saveOrEditAddressbookContact(contactPhone, contactPayload.pushname || contactPhone, '', true); } if (hello) { await this.messageSendText(contactId, hello); } } export async function friendshipAccept(friendshipId) { const friendshipPayload = await this.friendshipRawPayload(friendshipId); const contactPhone = friendshipPayload.contactId.split('@')[0] || ''; const contactPayload = await this.contactRawPayload(friendshipPayload.contactId, true); if (!contactPayload.isMyContact) { await this.manager.getWhatsAppClient().saveOrEditAddressbookContact(contactPhone, contactPayload.pushname || '', '', true); } } //# sourceMappingURL=friendship.js.map