@juzi/wechaty-puppet-whatsapp
Version:
Wechaty Puppet for WhatsApp
121 lines • 5.73 kB
JavaScript
;
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