Skip to content

Commit

Permalink
src/telegram: Add metadata argument in message event (and friends)
Browse files Browse the repository at this point in the history
References:

  * FR: #409
  * PR: #413
  • Loading branch information
GochoMugo committed Nov 18, 2017
1 parent 3722c71 commit 49df0c6
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 11 deletions.
4 changes: 3 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,9 @@ This project adheres to [Semantic Versioning](http://semver.org/).

Added:

* Add support for Node.js v9
1. Add `metadata` argument in `message` event (and
friends e.g. `text`, `audio`, etc.) (#409) (by @jlsjonas, @GochoMugo)
1. Add support for Node.js v9 (by @GochoMugo)

Changed:

Expand Down
6 changes: 4 additions & 2 deletions doc/usage.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,19 @@
<a name="events"></a>
## Events

*TelegramBot* is an event-emitter that emits the following events:
*TelegramBot* is an [EventEmitter](https://nodejs.org/api/events.html#events_class_eventemitter)
that emits the following events:

1. `message`: Received a new incoming [Message][message] of any kind
1. Depending on the properties of the [Message][message], one of these
events will **ALSO** be emitted: `text`, `audio`, `document`, `photo`,
events may **ALSO** be emitted: `text`, `audio`, `document`, `photo`,
`sticker`, `video`, `voice`, `contact`, `location`,
`new_chat_members`, `left_chat_member`, `new_chat_title`,
`new_chat_photo`, `delete_chat_photo`, `group_chat_created`,
`game`, `pinned_message`, `migrate_from_chat_id`, `migrate_to_chat_id`,
`channel_chat_created`, `supergroup_chat_created`,
`successful_payment`, `invoice`, `video_note`
1. **Arguments**: `message` ([Message][message]), `metadata` (`{ type?:string }`)
1. `new_chat_participant`, `left_chat_participant` are **deprecated**
1. `callback_query`: Received a new incoming [Callback Query][callback-query]
1. `inline_query`: Received a new incoming [Inline Query][inline-query]
Expand Down
17 changes: 9 additions & 8 deletions src/telegram.js
Original file line number Diff line number Diff line change
Expand Up @@ -531,14 +531,15 @@ class TelegramBot extends EventEmitter {

if (message) {
debug('Process Update message %j', message);
this.emit('message', message);
const processMessageType = messageType => {
if (message[messageType]) {
debug('Emitting %s: %j', messageType, message);
this.emit(messageType, message);
}
};
TelegramBot.messageTypes.forEach(processMessageType);
const metadata = {};
metadata.type = TelegramBot.messageTypes.find((messageType) => {
return message[messageType];
});
this.emit('message', message, metadata);
if (metadata.type) {
debug('Emitting %s: %j', metadata.type, message);
this.emit(metadata.type, message, metadata);
}
if (message.text) {
debug('Text message');
this._textRegexpCallbacks.some(reg => {
Expand Down

0 comments on commit 49df0c6

Please sign in to comment.