2.0.0 • Published 2 years ago

aztgbot v2.0.0

Weekly downloads
3
License
Apache-2.0
Repository
github
Last release
2 years ago

AZTGBot

Alynx Zhou's zero-dependency Telegram Bot API implemention.

npm-version npm-downloads node-version github-license

Usage

$ npm i -s aztgbot

Example

Echo Bot with BotMaster and BotServant

import {
  BotMaster,
  BotServant,
  BotAPI,
  BotLogger,
  botUtils
} from 'aztgbot'

class EchoBot extends BotServant {
  constructor(botAPI, identifier, botID, botName) {
    super(botAPI, identifier, botID, botName)
  }

  async processUpdate(update) {
    if (update['message'] != null &&
        update['message']['text'] != null) {
      await this.botAPI.sendChatAction(
        update['message']['chat']['id'],
        'typing'
      )
      await this.botAPI.sendMessage(
        update['message']['chat']['id'],
        update['message']['text'],
        {'replyToMessageID': update['message']['message_id']}
      )
    }
  }
}

new BotMaster(
  new BotAPI(process.argv[2]),
  EchoBot,
  botUtils.perFromID,
  {'botLogger': new BotLogger(true)}
).loop()

Media Bot with BotPoller Directly

import {
  BotPoller,
  BotAPI,
  botUtils
} from 'aztgbot'

class MediaBot {
  constructor(token) {
    this.botAPI = new BotAPI(token)
    this.botPoller = new BotPoller(this.botAPI, this.onUpdates.bind(this))
  }

  loop() {
    process.on('SIGINT', () => {
      this.botPoller.stopPollUpdates()
      process.exit(0)
    })
    this.botPoller.startPollUpdates()
  }

  async onUpdates(updates) {
    for (const update of updates) {
      if (update['message'] != null &&
          update['message']['text'] != null) {
        await this.botAPI.sendChatAction(
          update['message']['chat']['id'],
          'typing'
        )
        await this.botAPI.sendMediaGroup(update['message']['chat']['id'], [
          new botUtils.InputMediaPhoto(new botUtils.InputFile('1.png')),
          new botUtils.InputMediaPhoto(new botUtils.InputFile('2.png')),
          new botUtils.InputMediaPhoto(new botUtils.InputFile('3.png'))
        ], {'replyToMessageID': update['message']['message_id']})
      }
    }
  }
}

new MediaBot(process.argv[2]).loop()

License

Apache-2.0

Other

Docs: Here

2.0.0

2 years ago

1.0.11

2 years ago

1.0.12

2 years ago

1.0.10

2 years ago

1.0.9

3 years ago

1.0.8

4 years ago

1.0.7

4 years ago

1.0.6

5 years ago

1.0.5

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago

0.3.7

5 years ago

0.3.6

6 years ago

0.3.5

6 years ago

0.3.4

6 years ago

0.3.3

6 years ago

0.3.2

6 years ago

0.3.1

6 years ago

0.3.0

6 years ago

0.2.0

6 years ago

0.1.3

6 years ago

0.1.2

6 years ago

0.1.1

6 years ago

0.1.0

6 years ago