@juzi/wechaty-puppet-whatsapp
Version:
Wechaty Puppet for WhatsApp
105 lines • 4.97 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.friendshipAccept = exports.friendshipAdd = exports.friendshipSearchHandle = exports.friendshipSearchWeixin = exports.friendshipSearchPhone = exports.friendshipRawPayloadParser = exports.friendshipRawPayload = void 0;
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"));
require("@juzi/wechaty-puppet/payloads");
const PRE = 'MIXIN_FRIENDSHIP';
async function friendshipRawPayload(id) {
const cache = await this.manager.getCacheManager();
const friendship = await cache.getFriendshipRawPayload(id);
if (!friendship) {
throw (0, whatsapp_error_js_1.default)(error_type_js_1.WA_ERROR_TYPE.ERR_MSG_NOT_FOUND, 'Friendship not found', `friendshipId: ${id}`);
}
return friendship;
}
exports.friendshipRawPayload = friendshipRawPayload;
async function friendshipRawPayloadParser(rawPayload) {
return rawPayload;
}
exports.friendshipRawPayloadParser = friendshipRawPayloadParser;
async function friendshipSearchPhone(phone) {
config_js_1.log.verbose(PRE, 'friendshipSearchPhone(%s)', phone);
const contactId = `${phone}@c.us`;
const isUser = await this.manager.isWhatsappUser(contactId);
if (!isUser) {
throw (0, whatsapp_error_js_1.default)(error_type_js_1.WA_ERROR_TYPE.ERR_CONTACT_NOT_FOUND, 'Not a registered user on WhatsApp.', `contactId: ${contactId}`);
}
return contactId;
}
exports.friendshipSearchPhone = friendshipSearchPhone;
async function friendshipSearchWeixin(weixin) {
config_js_1.log.verbose(PRE, 'friendshipSearchWeixin(%s)', weixin);
return PUPPET.throwUnsupportedError();
}
exports.friendshipSearchWeixin = friendshipSearchWeixin;
async function friendshipSearchHandle(handle) {
config_js_1.log.verbose(PRE, 'friendshipSearchHandle(%s)', handle);
return PUPPET.throwUnsupportedError();
}
exports.friendshipSearchHandle = friendshipSearchHandle;
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
// }
config_js_1.log.info(PRE, 'friendshipAdd(%s, %s)', contactId, JSON.stringify(option));
const isUser = await this.manager.isWhatsappUser(contactId);
if (!isUser) {
throw (0, whatsapp_error_js_1.default)(error_type_js_1.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);
}
}
exports.friendshipAdd = friendshipAdd;
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);
}
}
exports.friendshipAccept = friendshipAccept;
//# sourceMappingURL=friendship.js.map