UNPKG

@juzi/wechaty-puppet-whatsapp

Version:
121 lines 5.73 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.contactRawPayloadParser = exports.contactRawPayload = exports.contactAvatar = exports.contactList = exports.contactDescription = exports.contactCorporationRemark = exports.contactPhone = exports.contactAlias = void 0; /* eslint-disable no-redeclare */ const PUPPET = __importStar(require("@juzi/wechaty-puppet")); const config_js_1 = require("../config.js"); const error_type_js_1 = require("../exception/error-type.js"); const whatsapp_error_js_1 = __importDefault(require("../exception/whatsapp-error.js")); const miscellaneous_js_1 = require("../helper/miscellaneous.js"); const contact_raw_payload_parser_js_1 = require("../helper/pure-function/contact-raw-payload-parser.js"); const PRE = 'MIXIN_CONTACT'; async function contactAlias(contactId, alias) { config_js_1.log.verbose(PRE, 'contactAlias(%s, %s)', contactId, alias); return PUPPET.throwUnsupportedError(); } exports.contactAlias = contactAlias; async function contactPhone(contactId, phoneList) { config_js_1.log.verbose(PRE, 'contactPhone(%s, %s)', contactId, phoneList); if (typeof phoneList === 'undefined') { const cacheManager = await this.manager.getCacheManager(); const contact = await cacheManager.getContactOrRoomRawPayload(contactId); if (contact) { return [contact.number]; } else { return []; } } } exports.contactPhone = contactPhone; async function contactCorporationRemark(contactId, corporationRemark) { config_js_1.log.verbose(PRE, 'contactCorporationRemark(%s, %s)', contactId, corporationRemark); return PUPPET.throwUnsupportedError(); } exports.contactCorporationRemark = contactCorporationRemark; async function contactDescription(contactId, description) { config_js_1.log.verbose(PRE, 'contactDescription(%s, %s)', contactId, description); return PUPPET.throwUnsupportedError(); } exports.contactDescription = contactDescription; async function contactList() { config_js_1.log.verbose(PRE, 'contactList()'); const cacheManager = await this.manager.getCacheManager(); const contactIdList = await cacheManager.getContactIdList(); return contactIdList; } exports.contactList = contactList; async function contactAvatar(contactId, file) { config_js_1.log.verbose(PRE, 'contactAvatar(%s)', contactId); if (file) { return PUPPET.throwUnsupportedError(); } let avatar = ''; const con = await this.manager.getContactById(contactId); try { avatar = await con.getProfilePicUrl(); } catch (err) { config_js_1.log.error(PRE, 'contactAvatar(%s) error:%s', contactId, err.message); } if (avatar) { return config_js_1.FileBox.fromUrl(avatar); } } exports.contactAvatar = contactAvatar; async function contactRawPayload(id, forceSync = false) { config_js_1.log.verbose(PRE, 'contactRawPayload(%s)', id); if (!(0, miscellaneous_js_1.isContactId)(id)) { throw (0, whatsapp_error_js_1.default)(error_type_js_1.WA_ERROR_TYPE.ERR_CONTACT_NOT_FOUND, `please check contact id: ${id.toString()} again.`); } const cacheManager = await this.manager.getCacheManager(); let contact = await cacheManager.getContactOrRoomRawPayload(id); if (!contact || forceSync) { const rawContact = await this.manager.getContactById(id); const avatar = await rawContact.getProfilePicUrl() || ''; contact = Object.assign(rawContact, { avatar }); await cacheManager.setContactOrRoomRawPayload(id, contact); } return contact; } exports.contactRawPayload = contactRawPayload; async function contactRawPayloadParser(contactPayload) { try { const userName = this.manager.getWhatsAppClient().info.pushname; const result = (0, contact_raw_payload_parser_js_1.parserContactRawPayload)(contactPayload, userName); config_js_1.log.verbose(PRE, 'contactRawPayloadParser whatsAppPayload(%s) result(%s)', JSON.stringify(contactPayload), JSON.stringify(result)); return result; } catch (error) { config_js_1.log.error(PRE, `contactRawPayloadParser(${contactPayload.id._serialized}) failed, error message: ${error.message}`); throw (0, whatsapp_error_js_1.default)(error_type_js_1.WA_ERROR_TYPE.ERR_CONTACT_NOT_FOUND, `contactRawPayloadParser(${contactPayload.id._serialized}) failed, error message: ${error.message}`); } } exports.contactRawPayloadParser = contactRawPayloadParser; //# sourceMappingURL=contact.js.map