From 4f3e91223c75ee70705de468ae640c0e12b6a349 Mon Sep 17 00:00:00 2001 From: Adhidarma Hadiwinoto <adhisimon@gmail.com> Date: Tue, 17 Mar 2015 23:30:25 +0700 Subject: [PATCH] relay message from admin --- index.js | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/index.js b/index.js index d81e280..1b83833 100644 --- a/index.js +++ b/index.js @@ -22,12 +22,16 @@ function isAdmin(user) { return (admins.indexOf(user) >= 0); } -function broadcast(destinations, message) { +function broadcast(destinations, message, exclude) { var destinations = destinations.split(','); var destinationCount = destinations.length; for (var i=0; i < destinationCount; i++) { - destination = destinations[i] + destination = destinations[i]; + if (destination == exclude) { + continue; + } + logger.info('Sending message to ' + destination); YahooMessenger.sendPM(destination, message); } @@ -85,6 +89,7 @@ function onYmLoginSuccesful(data){ } function onYmPM(data) { + var direction = 'IN'; if (config.globals.debug == 1) { console.log(data); @@ -100,15 +105,13 @@ function onYmPM(data) { loggedPM = loggedPM.slice(0, 10); } - direction = 'IN'; - partner = data.sender; - if (partner = data.sender) { + if (partner == data.user_id) { partner = data.target_user; direction = 'OUT'; } - var message = striptags(data.message) + var message = striptags(data.message).trim(); logger.info('New ' + direction + ' message from ' + data.sender + ' to ' + data.target_user + ': ' + message); @@ -129,7 +132,23 @@ function onYmPM(data) { sentdate ); - broadcast(config.yahoomessenger.report_to, '@' + data.sender + ': ' + message); + broadcast(config.yahoomessenger.report_to, '@' + data.sender + ': ' + message, partner); + + if ((direction == 'IN') && (isAdmin(partner))) { + if (message.charAt(0) == '@') { + target = message.split(' ', 1).join(); + target = target.slice(1); + + var messageToForward = message.replace('@' + target, '').trim(); + if (messageToForward == '') { + return; + } + + logger.info('Forward to ' + target + ': ' + messageToForward); + YahooMessenger.sendPM(target, '@' + partner + ': ' + messageToForward); + } + + } } function onYmBuddyAddRequest(data) { -- 1.9.0