From d4f3507916effc29602a5d8665e6dc4c380672b0 Mon Sep 17 00:00:00 2001
From: Adhidarma Hadiwinoto <me@adhisimon.org>
Date: Thu, 21 Jul 2016 14:42:08 +0700
Subject: [PATCH] retry sending message if failed

---
 index.js | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/index.js b/index.js
index 1364170..8839b05 100644
--- a/index.js
+++ b/index.js
@@ -42,7 +42,11 @@ function getChatId(partner) {
 
 }
 
-function sendMessage(destination, message) {
+function sendMessage(destination, message, retry) {
+    if (retry === null || retry === undefined) {
+        retry = 10;
+    }
+
     var chat_id = getChatId(destination);
 
     if (!chat_id) {
@@ -52,7 +56,16 @@ function sendMessage(destination, message) {
 
     logger.info('Sending reply to ' + destination + '(' + chat_id + '): ' + message);
 
-    bot.sendMessage(chat_id, message);
+    try {
+        bot.sendMessage(chat_id, message);
+    }
+    catch(e) {
+        logger.warn('Exception on sendMessage ' + e, {destination: destination, message: message, retry: retry, error: e});
+        if (retry) {
+            setTimeout(sendMessage, 10000, destination, message, --retry);
+        }
+    }
+
 }
 
 bot.getMe().then(function (me) {
-- 
1.9.0