From 5da7b700443af07db201af4d5ef49fa8c1f33526 Mon Sep 17 00:00:00 2001 From: Adam Horden Date: Thu, 6 Oct 2022 17:39:14 +0100 Subject: [PATCH] **bug/slack_api** - Fix bug :bug: introduced by Slack API changes :nerd_face: :boom:. - Update documentation :books: :boom:. Signed-off-by: Adam Horden --- README.md | 6 ++++++ lib/bot.js | 39 +++++++++++++++++++++------------------ 2 files changed, 27 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index de25937..95cc114 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,9 @@ +:warning: + +**The upstream project `slack-irc` by Martin Ek is no longer maintained.** + +**This fork is been maintained by [@adamhorden](https://www.github.com/adamhorden) :nerd_face:.** + # slack-irc [![Join the chat at https://gitter.im/ekmartin/slack-irc](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/ekmartin/slack-irc?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![Build Status](https://travis-ci.org/ekmartin/slack-irc.svg?branch=travis)](https://travis-ci.org/ekmartin/slack-irc) [![Coverage Status](https://coveralls.io/repos/github/ekmartin/slack-irc/badge.svg?branch=master)](https://coveralls.io/github/ekmartin/slack-irc?branch=master) > Connects Slack and IRC channels by sending messages back and forth. Read more [here](https://ekmartin.com/2015/slack-irc). diff --git a/lib/bot.js b/lib/bot.js index d22cba3..d57dc47 100644 --- a/lib/bot.js +++ b/lib/bot.js @@ -254,27 +254,30 @@ class Bot { return; } - const currentChannelUsernames = slackChannel.members.map(member => - dataStore.getUserById(member).name - ); - - const mappedText = currentChannelUsernames.reduce((current, username) => - highlightUsername(username, current) - , text); + this.slack.web.conversations.members(slackChannel.id).then( resp => { + const currentChannelUsernames = resp.members.map(member => + dataStore.getUserById(member).name + ); + + const mappedText = currentChannelUsernames.reduce((current, username) => + highlightUsername(username, current) + , text); + + let iconUrl; + if (author !== this.nickname && this.avatarUrl) { + iconUrl = this.avatarUrl.replace(/\$username/g, author); + } - let iconUrl; - if (author !== this.nickname && this.avatarUrl) { - iconUrl = this.avatarUrl.replace(/\$username/g, author); - } + const options = { + username: this.slackUsernameFormat.replace(/\$username/g, author), + parse: 'full', + icon_url: iconUrl + }; - const options = { - username: this.slackUsernameFormat.replace(/\$username/g, author), - parse: 'full', - icon_url: iconUrl - }; + logger.debug('Sending message to Slack', mappedText, channel, '->', slackChannelName); + this.slack.web.chat.postMessage(slackChannel.id, mappedText, options); - logger.debug('Sending message to Slack', mappedText, channel, '->', slackChannelName); - this.slack.web.chat.postMessage(slackChannel.id, mappedText, options); + }); } } }