Commit c9fecc1795a89010a9c0ca07a745dfc801019f18

Authored by Adhidarma Hadiwinoto
1 parent 5d4c6be3c5
Exists in master

debug chat id

Showing 1 changed file with 1 additions and 1 deletions Inline Diff

1 var telegram = require('node-telegram-bot-api'); 1 var telegram = require('node-telegram-bot-api');
2 var logger = require('./logger.js').start(); 2 var logger = require('./logger.js').start();
3 var http = require('http'); 3 var http = require('http');
4 var evo = require('./evo-im.js'); 4 var evo = require('./evo-im.js');
5 5
6 var config = require('./config.json'); 6 var config = require('./config.json');
7 7
8 evo.start({ 8 evo.start({
9 config: config, 9 config: config,
10 logger: logger 10 logger: logger
11 }); 11 });
12 12
13 var chat_ids = {}; 13 var chat_ids = {};
14 14
15 var options = { 15 var options = {
16 webHook: { 16 webHook: {
17 port: config.webhook_port, 17 port: config.webhook_port,
18 key: __dirname+'/key.pem', 18 key: __dirname+'/key.pem',
19 cert: __dirname+'/crt.pem' 19 cert: __dirname+'/crt.pem'
20 } 20 }
21 }; 21 };
22 22
23 var bot = new telegram(config.token, options); 23 var bot = new telegram(config.token, options);
24 bot.setWebHook(config.webhook_prefix + config.token, __dirname+'/crt.pem'); 24 bot.setWebHook(config.webhook_prefix + config.token, __dirname+'/crt.pem');
25 25
26 function deleteChatId(from) { 26 function deleteChatId(from) {
27 delete chat_ids[from]; 27 delete chat_ids[from];
28 } 28 }
29 29
30 function sendMessage(destination, message) { 30 function sendMessage(destination, message) {
31 var chat_id = chat_ids[destination]; 31 var chat_id = chat_ids[destination];
32 32
33 if (!chat_id) { 33 if (!chat_id) {
34 logger.warn('Can not find approriate chat id for ' + destination + '. Abort sending message.'); 34 logger.warn('Can not find approriate chat id for ' + destination + '. Abort sending message.');
35 return; 35 return;
36 } 36 }
37 37
38 logger.info('Sending reply to ' + destination + '(' + chat_id + '): ' + message); 38 logger.info('Sending reply to ' + destination + '(' + chat_id + '): ' + message);
39 39
40 bot.sendMessage(chat_id, message); 40 bot.sendMessage(chat_id, message);
41 } 41 }
42 42
43 bot.getMe().then(function (me) { 43 bot.getMe().then(function (me) {
44 logger.info('Hi my name is %s!', me.username); 44 logger.info('Hi my name is %s!', me.username);
45 }); 45 });
46 46
47 bot.on('text', function (msg) { 47 bot.on('text', function (msg) {
48 logger.info(msg); 48 logger.info('Incoming message (' + msg.chat.id + '): ' + msg.text, {message: msg});
49 49
50 var from = msg.from.username.toUpperCase() + config.msisdn_suffix; 50 var from = msg.from.username.toUpperCase() + config.msisdn_suffix;
51 51
52 var now = Math.floor(new Date().getTime()/1000); 52 var now = Math.floor(new Date().getTime()/1000);
53 53
54 if (now - msg.date > config.message_max_age){ 54 if (now - msg.date > config.message_max_age){
55 var message = "Pesan anda diabaikan, silahkan diulang beberapa saat lagi jika diperlukan: " + msg.text; 55 var message = "Pesan anda diabaikan, silahkan diulang beberapa saat lagi jika diperlukan: " + msg.text;
56 logger.info(message, {msg: msg}) 56 logger.info(message, {msg: msg})
57 //bot.sendMessage(msg.chat.id, message); 57 //bot.sendMessage(msg.chat.id, message);
58 sendMessage(from, message); 58 sendMessage(from, message);
59 return; 59 return;
60 } 60 }
61 61
62 chat_ids[from] = msg.chat.id; 62 chat_ids[from] = msg.chat.id;
63 63
64 var greeting_prefix = "Pesan anda telah diterima:"; 64 var greeting_prefix = "Pesan anda telah diterima:";
65 if (config.greeting_prefix) { 65 if (config.greeting_prefix) {
66 greeting_prefix = config.greeting_prefix; 66 greeting_prefix = config.greeting_prefix;
67 } 67 }
68 68
69 bot.sendMessage(msg.chat.id, greeting_prefix + ' ' + msg.text); 69 bot.sendMessage(msg.chat.id, greeting_prefix + ' ' + msg.text);
70 setTimeout( 70 setTimeout(
71 evo.onMessage, 71 evo.onMessage,
72 300, 72 300,
73 from, msg.text, msg.date * 1000, sendMessage 73 from, msg.text, msg.date * 1000, sendMessage
74 ); 74 );
75 }); 75 });
76 76
77 function dumpChatIds() { 77 function dumpChatIds() {
78 var i = 0; 78 var i = 0;
79 for (var key in chat_ids) { 79 for (var key in chat_ids) {
80 logger.verbose('DUMPED CHAT IDS #' + ++i + ' ' + key + ': ' + chat_ids[key]) 80 logger.verbose('DUMPED CHAT IDS #' + ++i + ' ' + key + ': ' + chat_ids[key])
81 } 81 }
82 82
83 logger.verbose('TOTAL ' + i + ' chat ids'); 83 logger.verbose('TOTAL ' + i + ' chat ids');
84 } 84 }
85 85
86 if (config.dump_chat_ids_interval) { 86 if (config.dump_chat_ids_interval) {
87 setInterval(dumpChatIds, config.dump_chat_ids_interval * 1000); 87 setInterval(dumpChatIds, config.dump_chat_ids_interval * 1000);
88 } 88 }
89 89