UNPKG

wechaty-puppet-padplus

Version:
81 lines 3.54 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const xml_to_json_1 = require("./xml-to-json"); const wechaty_puppet_1 = require("wechaty-puppet"); const friendship_event_message_parser_1 = require("./friendship-event-message-parser"); function friendshipRawPayloadParser(rawPayload) { return __awaiter(this, void 0, void 0, function* () { if (friendship_event_message_parser_1.friendshipConfirmEventMessageParser(rawPayload)) { /** * 1. Confirm Event */ return friendshipRawPayloadParserConfirm(rawPayload); } else if (friendship_event_message_parser_1.friendshipVerifyEventMessageParser(rawPayload)) { /** * 2. Verify Event */ return friendshipRawPayloadParserVerify(rawPayload); } else if (yield friendship_event_message_parser_1.friendshipReceiveEventMessageParser(rawPayload)) { /** * 3. Receive Event */ return friendshipRawPayloadParserReceive(rawPayload); } else { throw new Error('event type is neither confirm nor verify, and not receive'); } }); } exports.friendshipRawPayloadParser = friendshipRawPayloadParser; function friendshipRawPayloadParserConfirm(rawPayload) { return __awaiter(this, void 0, void 0, function* () { const payload = { contactId: rawPayload.fromUserName, id: rawPayload.msgId, timestamp: rawPayload.createTime, type: wechaty_puppet_1.FriendshipType.Confirm, }; return payload; }); } function friendshipRawPayloadParserVerify(rawPayload) { const payload = { contactId: rawPayload.fromUserName, id: rawPayload.msgId, timestamp: rawPayload.createTime, type: wechaty_puppet_1.FriendshipType.Verify, }; return payload; } function friendshipRawPayloadParserReceive(rawPayload) { return __awaiter(this, void 0, void 0, function* () { const tryXmlText = rawPayload.content; const jsonPayload = yield xml_to_json_1.xmlToJson(tryXmlText); // , { object: true }) if (!jsonPayload.msg) { throw new Error('no msg found'); } const padplusFriendshipPayload = jsonPayload.msg.$; const friendshipPayload = { contactId: padplusFriendshipPayload.fromusername, hello: padplusFriendshipPayload.content, id: rawPayload.msgId, stranger: padplusFriendshipPayload.encryptusername, ticket: padplusFriendshipPayload.ticket, timestamp: rawPayload.createTime, type: wechaty_puppet_1.FriendshipType.Receive, }; return friendshipPayload; }); } //# sourceMappingURL=friendship-raw-payload-parser.js.map