From 02655b6bbbeadc4b790b1ded7f5719f9392e2642 Mon Sep 17 00:00:00 2001
From: Adhidarma Hadiwinoto <adhisimon@gmail.com>
Date: Wed, 18 Mar 2015 15:14:42 +0700
Subject: [PATCH] sendPM wrapper

---
 index.js | 28 ++++++++++++++++++++++------
 1 file changed, 22 insertions(+), 6 deletions(-)

diff --git a/index.js b/index.js
index 66f2022..9f3e26c 100644
--- a/index.js
+++ b/index.js
@@ -22,6 +22,23 @@ function isAdmin(user) {
   return (admins.indexOf(user) >= 0);
 }
 
+function sendPM(destination, message) {
+    try {
+        logger.info("Sending to " + destination + ": " + message);
+        YahooMessenger.sendPM(destination, message);
+    }
+    catch (e) {
+        logger.info("Something wrong");
+        logger.info(e);
+        logger.info("Try to reconnecting to yahoo messenger");
+        YahooMessenger.login(config.yahoomessenger.username, config.yahoomessenger.password);
+        return false;
+    }
+
+    return true;
+
+}
+
 function broadcast(destinations, message, exclude) {
     var destinations = destinations.split(',');
     var destinationCount = destinations.length;
@@ -32,8 +49,7 @@ function broadcast(destinations, message, exclude) {
             continue;
         }
 
-        logger.info('Sending message to ' + destination);
-        YahooMessenger.sendPM(destination, message);
+        sendPM(destination, message);
     }
 }
 
@@ -44,8 +60,8 @@ var _keepAliveLoop = function() {
         YahooMessenger.keepAlive();
     }
     catch(e) {
-        logger.error("Something wrong");
-        logger.error(e);
+        logger.info("Something wrong");
+        logger.info(e);
         logger.info("Try to reconnecting to yahoo messenger");
         YahooMessenger.login(config.yahoomessenger.username, config.yahoomessenger.password);
         return;
@@ -154,7 +170,7 @@ function onYmPM(data) {
             }
 
             logger.info('Forward to ' + target + ': ' + messageToForward);
-            YahooMessenger.sendPM(target, '@' + partner + ': ' + messageToForward);
+            sendPM(target, '@' + partner + ': ' + messageToForward);
 
         } else if (message.charAt(0) == '+') {
             target = message.split(' ', 1).join();
@@ -166,7 +182,7 @@ function onYmPM(data) {
             }
 
             logger.info('Clean forward to ' + target + ': ' + messageToForward);
-            YahooMessenger.sendPM(target, messageToForward);
+            sendPM(target, messageToForward);
         }
 
     }
-- 
1.9.0