wechaty.js 1.2 KB
Newer Older
Huan (李卓桓)'s avatar
Huan (李卓桓) 已提交
1 2
const EventEmitter = require('events')
//const Util = require('util');
3 4


Huan (李卓桓)'s avatar
Huan (李卓桓) 已提交
5 6 7 8 9 10
const Puppet      = require('./puppet')
const PuppetWeb   = require('./puppet-web')

const Message     = require('./message')
const Contact     = require('./contact')
const Group       = require('./group')
11 12 13

class Wechaty extends EventEmitter {
  // cookie,Uin, Sid,SKey
Huan (李卓桓)'s avatar
Huan (李卓桓) 已提交
14
  constructor(puppet) {
15
    super()
Huan (李卓桓)'s avatar
Huan (李卓桓) 已提交
16 17 18 19 20 21 22 23 24 25
    puppet = puppet || 'web'

    switch(puppet) {
      case 'web':
        this.puppet   = new Puppet.Web()
        break
      default:
        throw new Error('Puppet unknown: ' + puppet)
        break
    }
26 27 28 29 30 31 32 33 34 35 36 37

    this.puppet.on('message', (e) => {
      this.emit('message', e)
    })
    this.puppet.on('login', (e) => {
      this.emit('login', e)
    })
    this.puppet.on('logout', (e) => {
      this.emit('logout', e)
    })
  }

Huan (李卓桓)'s avatar
Huan (李卓桓) 已提交
38 39 40
  init()          { return this.puppet.init() }
  currentUser()   { return this.puppet.currentUser() }
  send(message)   { return this.puppet.send(message) }
41

Huan (李卓桓)'s avatar
Huan (李卓桓) 已提交
42
  ding()          { return 'dong' }
43 44
}

Huan (李卓桓)'s avatar
Huan (李卓桓) 已提交
45
Puppet.Web = PuppetWeb
46

Huan (李卓桓)'s avatar
Huan (李卓桓) 已提交
47 48 49 50 51 52
Object.assign(Wechaty, {
  Puppet:     Puppet
  , Message:  Message
  , Contact:  Contact
  , Group:    Group
})
53 54

module.exports = Wechaty