Skip to content

Commit

Permalink
Fixed the issue of incompatible interface by adding a simple, string …
Browse files Browse the repository at this point in the history
…based one as an option.
  • Loading branch information
michalrud committed Dec 7, 2018
1 parent 007751e commit 38df2d5
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 13 deletions.
26 changes: 20 additions & 6 deletions lib/TeleIrc.js
Expand Up @@ -416,7 +416,7 @@ class TeleIrc {

/**
* Sends a message to telegram.
* @param messageString - The message to send.
* @param {String} messageString - The message to send.
*/
queueTelegramMessage(messageString) {
this.tgRateLimiter.queueMessage(messageString);
Expand Down Expand Up @@ -447,21 +447,35 @@ class TeleIrc {

/**
* Sends a message to the IRC channel.
* @param {String} message - The message to send to the IRC channel.
* @param {(String|Object)} input - The message to send to the IRC channel.
* @param {String} input.from - Name of the user from which the message was received.
* @param {String} input.message - Actual message to be sent.
*
* If `input` is provided as string, message is forwarded as-is. Otherwise, a prefix is
* generated. Messages longer than config.irc.maxMessageLength will be splitted into
* multiple messages.
*/
sendMessageToIrc(from, message) {
sendMessageToIrc(input) {
var prefix = "";
var message = "";
if (typeof input === "string") {
message = input;
}
else {
prefix = this.config.irc.prefix + input.from + this.config.irc.suffix + " ";
message = input.message;
}
const ircbot = this.ircbot;
const messagePrefix = this.config.irc.prefix + from + this.config.irc.suffix + " ";
const channel = this.config.irc.channel;
const maxLength = this.config.irc.maxMessageLength;

message.toString().split(/\r?\n/).filter(function(line) {
return line.length > 0;
}).forEach(function(line) {
var linesToSend = ircbot._splitLongLines(line, maxLength - messagePrefix.length, []);
var linesToSend = ircbot._splitLongLines(line, maxLength - prefix.length, []);

linesToSend.forEach(function(toSend) {
ircbot.say(channel, messagePrefix + toSend);
ircbot.say(channel, prefix + toSend);
});
});

Expand Down
5 changes: 4 additions & 1 deletion lib/TelegramHandlers/TgMessageHandler.js
Expand Up @@ -36,7 +36,10 @@ class TgMessageHandler {
}

let username = TgHelpers.ResolveUserName(from);
this._action(username, userMessage);
this._action({
from: username,
message:userMessage
});
}
}

Expand Down
12 changes: 6 additions & 6 deletions tests/TgMessageHandlerTests.js
Expand Up @@ -48,9 +48,9 @@ exports.TgMessageHandler = {
let uut = new TgMessageHandler(
prefixSuffixConfig,
true,
(actualUsername, actualMessage) => {
assert.strictEqual(expectedMessage, actualMessage);
assert.strictEqual(expectedUsername, actualUsername);
(input) => {
assert.strictEqual(expectedMessage, input.message);
assert.strictEqual(expectedUsername, input.from);
assert.done();
}
);
Expand All @@ -67,9 +67,9 @@ exports.TgMessageHandler = {
let uut = new TgMessageHandler(
prefixSuffixConfig,
true,
(actualUsername, actualMessage) => {
assert.strictEqual(expectedMessage, actualMessage);
assert.strictEqual(expectedUsername, actualUsername);
(input) => {
assert.strictEqual(expectedMessage, input.message);
assert.strictEqual(expectedUsername, input.from);
assert.done();
}
);
Expand Down

0 comments on commit 38df2d5

Please sign in to comment.