/** * Wechaty - https://github.com/chatie/wechaty * * @copyright 2016-2018 Huan LI * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ // tslint:disable:no-console import { PuppetPadchat } from '../src/' /** * * 1. Declare your Bot! * */ const puppet = new PuppetPadchat() /** * * 2. Register event handlers for Bot * */ puppet .on('logout', onLogout) .on('login', onLogin) .on('scan', onScan) .on('error', onError) .on('message', onMessage) /** * * 3. Start the bot! * */ puppet.start() .catch(async e => { console.error('Bot start() fail:', e) await puppet.stop() process.exit(-1) }) /** * * 4. You are all set. ;-] * */ /** * * 5. Define Event Handler Functions for: * `scan`, `login`, `logout`, `error`, and `message` * */ function onScan (qrcode: string, status: number) { // Generate a QR Code online via // http://goqr.me/api/doc/create-qr-code/ const qrcodeImageUrl = [ 'https://api.qrserver.com/v1/create-qr-code/?data=', encodeURIComponent(qrcode), ].join('') console.log(`[${status}] ${qrcodeImageUrl}\nScan QR Code above to log in: `) } function onLogin (contactId: string) { console.log(`${contactId} login`) puppet.messageSendText({ contactId, }, 'Wechaty login').catch(console.error) } function onLogout (contactId: string) { console.log(`${contactId} logouted`) } function onError (e: string) { console.error('Bot error:', e) /* if (bot.logonoff()) { bot.say('Wechaty error: ' + e.message).catch(console.error) } */ } /** * * 6. The most important handler is for: * dealing with Messages. * */ async function onMessage (messageId: string) { const payload = await puppet.messagePayload(messageId) console.log(JSON.stringify(payload)) } /** * * 7. Output the Welcome Message * */ const welcome = ` Puppet Version: ${puppet.version()} Please wait... I'm trying to login in... ` console.log(welcome)